雖然Linux系統可通過tar/cpio/dd等方法直接進行備份,但如果系統正處于運作狀态,并不能保證備份出來的系統是完全幹淨的。由此可通過rescue的skip模式繞過作業系統進行備份,再重建initrd.img、grub可實作跨硬體平台的Linux克隆方法。
以下以RHEL6.2為例做測試,此方法同樣可用于備份Windows系統。
搭建Linux的rescue環境
建立本地rescue環境
# cp -rp /mnt/RHEL6/images/ /boot //從系統CD光牒裡拷貝出images目錄到相應的目錄中
# vi /etc/grub.conf //向grub.conf檔案中添加以下内容
title RHEL6_rescue
kernel /boot/images/pxeboot/vmlinuz rescue
initrd /boot/images/pxeboot/initrd.img
建立基于PXE的rescue環境
另:也可通過系統CD光牒啟動,選擇進入rescue環境
備份/克隆Linux
# mkdir /source /backup
# mdadm -As /dev/md0 //若系統分區建立在RAID上
# lvm vgscan //若系統分區建立在LVM上
# lvm vgchange -a y /dev/Lrhel6
# mount /dev/Lrhel6/root /source //以下根據系統實際情況挂載所有系統目錄
# mount /dev/Lrhel6/home /source/home
# mount /dev/sda1 /source/boot
# mount /dev/Lrhel6/backup /backup
# tar zcvf /backup/os.tgz /source //備份出幹淨的系統檔案
恢複/遷移Linux
啟動系統進入rescue的Skip模式
# fdisk /dev/sdb //對新加入的磁盤進行分區
# mkdir /backup /dest
# mount /dev/sda2 /backup
# mount /dev/sdb2 /dest
# tar zxvf /backup/os.tgz /dest
# vi /dest/etc/grub.conf //根據實際情況編輯grub配置檔案
# vi /dest/etc/fstab //根據實際情況編輯fstab檔案
# rm -rf /dest/etc/mtab //删除mtab檔案,登入系統後将自動建立mtab檔案
# exit
reboot
重新啟動系統進入rescue的Continue模式,重新生産initramfs,并安裝grub
# chroot /mnt/sysimage
# cd /boot
# mkinitrd -f initramfs-$(uname -r).img $(uname -r) //重新生成initramfs檔案
# grub-install --recheck --no-floppy /dev/sda
若提示Could not find device,則退出根分區重裝grub,并指定根分區的路徑
# cp /mnt/sysimage/sbin/grub /sbin
# grub-install --recheck --no-floppy --root-directory=/mnt/sysimage /dev/sda
本文轉自Vnimos51CTO部落格,原文連結:http://blog.51cto.com/vnimos/1151443,如需轉載請自行聯系原作者