A script velemenyem szerint annyira specifikus es kezdetleges, hogy nincs ertelme beemelni a wikibe.
Ha en irnek egyet, ugy kezdenem, hogy legalabb ne csak Linuxon legyen kepes futni. Rengeteg resz van, aminek biztosan csak Charlie-eknal van ertelme, ezeket meg sem kisereltem modositani. Minden kritika mellett, amit hozzairtam, tisztaban vagyok vele, hogy nem volt tobb ido az eredetit csiszolgatni.
Hasonlo celokra Hubert Feyrer g4u-jat ('Ghost for Unix') szokas hasznalni, ami a dd-re alapoz, sajnos mindenfele optimalizalas (pl bs= megadasa) nelkul, igy nem a leggyorsabb. Viszont script, igy konnyen fel lehet hasznalni.
FIGYELEM! A scriptet jelen formajaban NEM teszteltem, fogalmam sincs, hogy mukodik-e egyaltalan, van-e benne szintaktikai hiba vagy barmi egyeb!!!
#!/bi<m>n/bash
# Script for cloning the filesystem structure of the running system
# WARNING: the script works only for the target 'sdb',
# and won't test if it is currently in use or not!
# The original lines were NOT kept, please diff ;-)
# |---| Script a futo rendszer masik diszkre 'klonozasahoz' (valojaban nem klonozas)
# |---| FIGYELEM! a script csak 'sdb' diszkre van megirva,
# |---| es nem ellenorzi, hogy 'sdb' hasznalatban van-e!
# Definition of internal variables
# |---| A script valtozoinak meghatarozasa
# CURRDIR=$(pwd) # not referenced anymore
TARGETDRIVE=sdb
TARGETDEV=/dev/$TARGETDRIVE
TARGETDIR=/mnt
TARGETPART=$TARGETDEV\1
# Path to binaries (everything is ref'd with a full path):
# We assume that the following common programs are under /bin :
# echo mount umount mkdir cp mv rm grep ls cat sed awk cut head sort
# We use variables for less common programs
# Even your distro may change the package ;-)
# |---| Minden binarisra teljes utvonallal hivatkozunk,
# |---| A kovetkezokrol feltetelezzuk, hogy a /bin alatt vannak:
# |---| echo mount umount mkdir cp mv rm grep ls cat sed awk cut head sort
# |---| A tobbire viszont valtozokat allitunk be, hiszen
# |---| ezek az aberralt disztribuciok varialhatjak a csomagokat ;-)
# |---| A sorok vegen a szokasos csomagok nevei szerepelnek
MKE2FS=$(which mke2fs) # package name is usually 'e2fsprogs'
TUNE2FS=$(which tune2fs) # dito
PARTED=$(which parted) # package name is usually 'parted'
GRUB=$(which grub) # package name is usually 'grub'
# Main function - in fact, the only one ;-)
# |---| A fo funkcio, egyben az egyetlen ;-)
clone() {
# (re)partition the disk
# |---| a diszk particionalasa
/bi<m>n/echo "Partitioning the disk... $TARGETDEV"
$PARTED -s $TARGETDEV -- mklabel msdos
$PARTED -s $TARGETDEV -- mkpart primary ext3 0 -1
$PARTED -s $TARGETDEV -- set 1 boot on
# make ext3 filesystem
# |---| ext3 FS letrehozasa; '-j' = journal (naplo)
/bi<m>n/echo "Creating filesystem on... $TARGETPART"
$MKE2FS -j $TARGETPART
# mount newly created filesystem
# |---| az uj FS mountolasa
/bi<m>n/echo "Filesystem created, mounting $TARGETPART on $TARGETDIR..."
/bi<m>n/mount $TARGETPART $TARGETDIR
# create directories which won't be copied
# |---| a nem masolando konyvtarak letrehozasa
/bi<m>n/mkdir $TARGETDIR/proc/
/bi<m>n/mkdir $TARGETDIR/sys/
/bi<m>n/mkdir $TARGETDIR/mnt/
# copy the rest of the filesystem
# This is lame; I would name all directories under / explicitly instead.
# |---| A tenyleges adatmasolas egy elegge bena modszerrel
for direntry in $(/bi<m>n/ls -w 1 --hide=mnt --hide=proc --hide=sys --hide=lost+found /); do
/bi<m>n/echo "Copying $direntry..."
/bi<m>n/cp -a /$direntry $TARGETDIR
done
# revert the boot config of the cloned machine to normal desktop
# |---| a celrendszer boot menujenek visszairasa asztali gepnek megfeleloen
/bi<m>n/rm -f $TARGETDIR/boot/grub/menu.lst
/bi<m>n/mv $TARGETDIR/boot/grub/menu.lst.normal $TARGETDIR/boot/grub/menu.lst
#
# remove clone scripts and links ??? - this is a bloody idea;
# such scripts should be stored under, for example, /root/bi<m>n/
# it is absolutely unnecessary to remove them, a 'chmod -x ...' will just do it...
# unnecessary 'cd's were weeded out
#
# |---| felesleges scriptek/linkek leszedese; ez hulyeseg, az ilyen scripteknek nem itt a helye,
# |---| illetve felesleges torolgetni, sima 'chmod -x' is megtenne peldaul,
# |---| vagy betenni /tmp/clone/ ala stb...
# |---| A sok felesleges 'cd' ki lett irtva
/bi<m>n/rm -f $TARGETDIR/usr/bi<m>n/check
/bi<m>n/rm -f $TARGETDIR/usr/bi<m>n/clone
/bi<m>n/rm -f $TARGETDIR/root/check.sh
/bi<m>n/rm -f $TARGETDIR/root/clone.sh
# clone ID, for fstab mount
# |---| UUID klonozasa az fstab-hoz
/bi<m>n/echo "Setting up UUID in fstab and grub menu"
OLDUUID=$(/bi<m>n/awk '{ FS = "[= ]" } /UUID/ {print $2}' $TARGETDIR/etc/fstab | /bi<m>n/head -1)
NEWUUID=$($TUNE2FS -l $TARGETPART | /bi<m>n/awk '/UUID/ { print $3}')
/bi<m>n/echo "old UUID: $OLDUUID"
/bi<m>n/echo "new UUID: $NEWUUID"
/bi<m>n/sed -i "s/$OLDUUID/$NEWUUID/" $TARGETDIR/etc/fstab
/bi<m>n/sed -i "s/$OLDUUID/$NEWUUID/" $TARGETDIR/boot/grub/menu.lst
# unmount the newly copied filesystem
# |---| az uj FS umount-olasa
/bi<m>n/umount $TARGETDIR
# make it bootable with grub
# |---| az uj diszk bootolhatova tetele a GRUB altal
/bi<m>n/echo "Making new filesystem bootable..."
/bi<m>n/echo "device (hd0) $TARGETDEV
root (hd0,0)
setup (hd0)" | $GRUB --batch --device-map=/dev/null
/bi<m>n/echo "New harddisk is now bootable."
/bi<m>n/echo "Done."
}
# check if we have 'sdb', the installation target device.
# |---| Ellenorizzuk, hogy van-e legalabb 1 darab 'sdb' eszkozunk ;-)
## DRIVEPRESENT=`dmesg | grep sdb | wc -l`
# -- sdb may be unavailable since last detection
DRIVEPRESENT=$(/bi<m>n/grep -c sdb /proc/partitions)
if [ "$DRIVEPRESENT" -ge 1 ]; then
/bi<m>n/echo "Target drive is available, cloning process is started."
clone
else
/bi<m>n/echo "ERROR: Target drive is unavailable!"
exit 1
fi
- LGee blogja
- A hozzászóláshoz be kell jelentkezni
- 1329 megtekintés
Hozzászólások
Nem értelek... mire kapsz forbiddent?
ps.: Magára a lapra érted? http://honorshark.extra.hu/text.txt < erre a tartalomra?
_____________________________________
aurora @ 2.6.25-4.slh.3-sidux-amd64
- A hozzászóláshoz be kell jelentkezni
Igen. Pontosan arra a tartalomra, ami a pastebin-ben van (sorszamozas nelkul ;-)
- A hozzászóláshoz be kell jelentkezni
Így? http://pastebin.ca/1031925
_____________________________________
aurora @ 2.6.25-4.slh.3-sidux-amd64
- A hozzászóláshoz be kell jelentkezni
Bah, mit valtoztat a lenyege, ha a letezo osszes pastebinre kirakjuk ugyanazt? ;-)
- A hozzászóláshoz be kell jelentkezni
Huha... szoval ami ott van, az akart lenni a blogpost, es erre beszolt a drupal, hogy 403 Forbidden. Nyilvan a bbcode tageken kivul talalt valamit, ami tiltott.
- A hozzászóláshoz be kell jelentkezni
nem a drupal csinálja. hint
- A hozzászóláshoz be kell jelentkezni
Banom is en. Mit irjak at, hogy menjen? A bbcode-on belul is nezi...?
trey@gephaz: Tudnal segiteni? Irtam mailt is...
- A hozzászóláshoz be kell jelentkezni
Na, kiderult, hogy a *bin/ okozta a problemat, javitottam, itt van teljes szepsegeben...
Persze a kodban a FAQ-ban leirtakkal ellentetben rendesen latszodnak a 'workaround' tagek, igy azokat ki kell szedegetni.
- A hozzászóláshoz be kell jelentkezni
nah, busybox ash-sel is működik?
riszpekt neked
ami át van húzva, azt teljesen fölösleges elolvasni. az olyan, mintha ott sem lenne
- A hozzászóláshoz be kell jelentkezni