05-01-2009, 13:51
|
|
|
|
חבר מתאריך: 08.11.01
הודעות: 5,735
|
|
בזמנו כתבתי סקריפט שעושה את העבודה הזו.. הכל אונליין בלי Livecd ובלי הורדה של המערכת.
אתה מוזמן לקרוא וליישם אצלך מה שמתאים.
ההבדל היחיד כמעט הוא שאצלי ישנה גם מחיצה עבור /tmp
נבדק על RHEL5
קוד:
#!/bin/bash
#Netanel Attali - EDS Tnuva 2008.
#ALT_DISK is the disk to which Grub will install the MBR. In other words, the disk from which the system will boot. (Not to be confused with the /boot partition)
ALT_DISK=/dev/sdb
ALT_BOOT=/dev/sdb1
ALT_ROOT=/dev/alt_vg00/alt_lv_root
ALT_TMP=/dev/alt_vg00/alt_lv_tmp
ALT_SWAP=/dev/alt_vg00/alt_lv_swap
ORG_BOOT=`awk '{print $1,$2}' /etc/fstab | grep /boot$ | awk '{print $1}'`
ORG_ROOT=`awk '{print $1,$2}' /etc/fstab | grep /$ | awk '{print $1}'`
ORG_TMP=`awk '{print $1,$2}' /etc/fstab | grep /tmp$ | awk '{print $1}'`
ORG_SWAP=`awk '{print $1,$2}' /etc/fstab | grep swap$ | awk '{print $1}'`
#LABEL_BOOT=`blkid $ORG_BOOT -s LABEL -o value`
#LABEL_ROOT=`blkid $ORG_ROOT -s LABEL -o value`
#LABEL_TMP=`blkid $ORG_TMP -s LABEL -o value`
#LABEL_SWAP=`blkid $ORG_SWAP -s LABEL -o value`
umount /alt/{root,boot,tmp}
for I in $ALT_BOOT $ALT_ROOT $ALT_TMP ;do echo formatting $I ; mke2fs -j $I;done
#e2label $ALT_BOOT alt_$LABEL_BOOT
#e2label $ALT_ROOT alt_$LABEL_ROOT
#e2label $ALT_TMP alt_$LABEL_TMP
mkswap $ALT_SWAP
mkdir -p /alt/{root,boot,tmp}
mount $ALT_ROOT /alt/root
mount $ALT_BOOT /alt/boot
mount $ALT_TMP /alt/tmp
mount
cd /alt/root ; dump -f - / | restore -r -f -
cd /alt/boot ; dump -f - /boot | restore -r -f -
cd /alt/tmp ; dump -f - /tmp | restore -r -f -
grub-install --recheck --root-directory=/alt $ALT_DISK
sed "s:$ORG_BOOT:$ALT_BOOT:" /alt/root/etc/fstab > /alt/root/etc/fstab.tmp;mv -f /alt/root/etc/fstab.tmp /alt/root/etc/fstab
sed "s:$ORG_ROOT:$ALT_ROOT:" /alt/root/etc/fstab > /alt/root/etc/fstab.tmp;mv -f /alt/root/etc/fstab.tmp /alt/root/etc/fstab
sed "s:$ORG_TMP:$ALT_TMP:" /alt/root/etc/fstab > /alt/root/etc/fstab.tmp;mv -f /alt/root/etc/fstab.tmp /alt/root/etc/fstab
sed "s:$ORG_SWAP:$ALT_SWAP:" /alt/root/etc/fstab > /alt/root/etc/fstab.tmp;mv -f /alt/root/etc/fstab.tmp /alt/root/etc/fstab
sed "s:$ORG_ROOT:$ALT_ROOT:" /alt/boot/grub/grub.conf > /alt/boot/grub/grub.conf.tmp;mv -f /alt/boot/grub/grub.conf.tmp /alt/boot/grub/grub.conf
mkinitrd -f --fstab=/alt/root/etc/fstab /alt/boot/initrd-`uname -r`.img `uname -r`
sync;sync;sync
cd;umount /alt/{root,boot,tmp}
_____________________________________
לבלוג שלי - Sandbox
Pinky: Ha ha ha ha, Troz!
Brain: What is troz?
Pinky: Why that's Zort in a mirror. Huh huh, Troz!
|