一.源机器分区情况: hda1 为:boot(启动分区) hda2 为:swap(交换分区) hda3 为:boot (根 / 分区) hda4 为:data (数据盘)
#fdisk -l /dev/hda Disk /dev/hda: 11.8 GB, 11811160064 bytes 15 heads, 63 sectors/track, 24411 cylinders Units = cylinders of 945 * 512 = 483840 bytes Disk identifier: 0x0eb4a58f
Device Boot Start End Blocks Id System /dev/hda1 * 1 621 293391 83 Linux /dev/hda2 622 1680 500377+ 82 Linux swap / Solaris /dev/hda3 1681 10147 4000657+ 83 Linux /dev/hda4 10148 24411 6739740 83 Linux
#cat /etc/fstab /dev/hda1 /boot ext2 noauto,noatime 1 2 /dev/hda3 / ext3 noatime 0 1 /dev/hda2 none swap sw 0 0 /dev/hda4 /data ext3 noatime 0 1
备份源机器分区: 1.备份启动分区(boot)到数据盘 dd if=/dev/hda1 | gzip >/data/hda1.gz 2.备份根分区(/) 到数据盘 dd if=/dev/hda3 | gzip >/data/hda3.gz
二,目标机器: 1.使用启动盘启动系统 2.分区:把 boot swap / 这3个分区分成跟源机器一样的大小。 还有分出一个数据盘来存放 源机器备份下来的文件。 #mke2fs /dev/hda1 #mke2fs -j /dev/hda3 #mke2fs -j /dev/hda4 #mkswap /dev/hda2 && swapon /dev/hda2 #mkdir /data #mount /dev/hda4 /data #cat /etc/fstab /dev/hda1 /boot ext2 noauto,noatime 1 2 /dev/hda3 / ext3 noatime 0 1 /dev/hda2 none swap sw 0 0 /dev/hda4 /data ext3 noatime 0 1
3.把源机器的备份文件拉到数据盘 #scp root@192.168.230.132:/data/hda1.gz /data/ #scp root@192.168.230.132:/data/hda3.gz /data/
4.恢复系统: #gzip -dc /data/hda1.gz | dd of /dev/hda1 #gzip -dc /data/hda3.gz | dd of /dev/hda3
5.grub 使用 dd 恢复系统会造成错误,不能启动,所以必须重新配置一下grub #mount /dev/hda3 /mnt/gentoo #mount /dev/hda1 /mnt/gentoo/boot #mount -t proc proc /mnt/gentoo/proc #mount -o bind /dev /mnt/gentoo/dev #chroot /mnt/gentoo /bin/bash #env-update && source /etc/profile >>> Regenerating /etc/ld.so.cache...
# grub Probing devices to guess BIOS drives. This may take a long time.
grub> root (hd0,0) Filesystem type is ext2fs, partition type 0xfd
grub> setup (hd0) Checking if "/boot/grub/stage1" exists... yes Checking if "/boot/grub/stage2" exists... yes Checking if "/boot/grub/e2fs_stage1_5" exists... yes Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 16 sectors are embedded. succeeded Running "install /boot/grub/stage1 (hd0) (hd0)1+16 p (hd0,0)/boot/grub/stage2 /boot/ grub/menu.lst"... succeeded Done.
grub> quit
到此为止,系统已经完全恢复好,重新启动系统。
6.(注意)dd 恢复系统也会造成网卡不能启动:
启动网卡错误表现: #/etc/init.d/net.eth0 start *Starting eth0 * Bringing up eth0 * dhcp * network interface eth0 does not exist * Please verify hardware or kernel module (driver)
查看 /var/log/kennel/Current 日志发现 Mar 21 12:40:04 [kernel] pcnet32.c:v1.35 21.Apr.2008 tsbogend@alpha.franken.de Mar 21 12:40:04 [kernel] pcnet32 0000:02:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18 Mar 21 12:40:04 [kernel] pcnet32: PCnet/PCI II 79C970A at 0x2000, 00:0c:29:94:de:df assigned IRQ 18. Mar 21 12:40:04 [kernel] eth0: registered as PCnet/PCI II 79C970A Mar 21 12:40:04 [kernel] pcnet32: 1 cards_found. Mar 21 12:40:04 [kernel] Floppy drive(s): fd0 is 1.44M Mar 21 12:40:04 [kernel] FDC 0 is a post-1991 82077 Mar 21 12:40:04 [kernel] udev: renamed network interface eth0 to eth1
interface eth0 to eth1 这里有个改名的日志(因为:系统从源电脑备份来的,网卡的mac 记录的是源电脑网卡的mac,跟目标电脑的网卡的mac不匹配,系统会自动识别网卡的mac,并在/etc/udev/rules.d/70-persistent-net.rules 文件中产生一条正确的记录)
A:解决方法一 ls /etc/init.d/ lrwxrwxrwx 1 root root 6 Mar 18 21:54 net.eth0 -> net.lo -rwxr-xr-x 1 root root 30696 Apr 26 2008 net.lo 并没有 net.eth1 启动文件 #cd /etc/init.d/ #ln -s net.lo net.eth1
重新启动网卡 #/etc/init.d/net.eth1 start (ok)
B: 解决方法二 编辑:/etc/udev/rules.d/70-persistent-net.rules 查出ATTR{address} 跟源电脑网卡mac一样的 注掉,重新启动电脑,网卡就可以使用了。 # This file was automatically generated by the /lib/udev/write_net_rules # program run by the persistent-net-generator.rules rules file. # # You can modify it, as long as you keep each rule on a single line.
# PCI device 0x1022:0x2000 (pcnet32) #查出ATTR{address} 跟源电脑网卡mac一样的 注掉 #SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="00:0c:29:95:53:ca", NAME="eth1"
# PCI device 0x1022:0x2000 (pcnet32) SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="00:0c:29:94:de:df", NAME="eth0"
注:查看网卡的mac 可以简单的使用启动盘,启动系统查看。 |
|