備份檔案
要複製系統的硬碟,視自己的狀況,可以直接接上電腦,也可以用 USB 界面連接。首先,依據原系統的規劃及使用狀況,在新的硬碟上,建立分割區。由於 CentOS 5 的 bootloader 使用 GNU GRUB 0.97,硬碟的 partition table 只能用 MBR ,不能使用 GPT。
我所用的硬碟分割規劃如下
檔案系統 容量 已用 可用 已用% 掛載點
/dev/sda3 23G 16G 6.3G 72% /
/dev/sda5 19G 6.9G 11G 40% /home
/dev/sda1 243M 26M 205M 12% /boot
/dev/sda6 244G 170G 62G 74% /opt
然後,依次複製每個分割區的檔案,其中 -xdev 的選項,是只讀取該分割區的檔案。mount /dev/sda1 /mnt/hdd
cd /boot
find ./ -xdev -print0 | cpio -pa0V /mnt/hdd
mmount /dev/sda3 /mnt/hdd
cd /
find ./ -xdev -print0 | cpio -pa0V /mnt/hdd
mount /dev/sda5 /mnt/hdd
cd /home
find ./ -xdev -print0 | cpio -pa0V /mnt/hdd
針對要複製的目錄,重複執行上述步驟。重建 initrd
要下載 CentOS 5.x 的 ISO 來執行 linux rescue重建 initrd 才行
mkdir /mnt/sysimage
mount /dev/sda3 /mnt/sysimage
mount --bind /proc /mnt/sysimage/proc
mount --bind /dev /mnt/sysimage/dev
mount --bind /sys /mnt/sysimage/sys
chroot /mnt/sysimage
mount /dev/sda1 /boot
cp -p /boot/initrd-$(uname -r).img /boot/initrd-$(uname -r).img.bak
mkinitrd -f -v /boot/initrd-2.6.18-371.el5.img 2.6.18-371.el5
執行及進入 grub 後grub> root (hd0,0)
grub> setup (hd0)
修改 grub.conf,重新開機。
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-400.1.1.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-400.1.1.el5 ro root=UUID=bfe28135-6004-4078-ae40-14dbbf727354 rhgb quiet
initrd /initrd-2.6.18-400.1.1.el5.img
title CentOS (2.6.18-92.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-92.el5 ro root=LABEL=/ rhgb quiet
initrd /initrd-2.6.18-92.el5.img
在 grub 中,硬碟編號由 hd0 開始。root 是設定系統的分割區,可以用 root=/dev/sda3,也可以用 label 或 uuid。用 /dev/sda3 來指定,當接線改變,或硬碟編號改變,會有找不到 root device 的困擾,用 uuid 則可確保找到正確的分割區。使用指令 blkid,可以列出分割區的 uuid。
沒有留言:
張貼留言