dd命令拷贝和恢复镜像
- fdisk -l 查看当前所有分区信息(必须用root)
Device Boot Start End Blocks Id System
/dev/sdb1 2048 1002047 500000 83 Linux
/dev/sdb2 1002048 12002047 5500000 83 Linux
/dev/sdb3 12002048 13002047 500000 83 Linux
/dev/sdb4 13002048 15002047 1000000 83 Linux
- 全盘拷贝命令
dd if=/dev/sdb of=/dev/sdc
- 分区拷贝
dd bs=512 count=[fdisk命令中最大的end数+1] if=/dev/sdb of=name.img
#eg: dd bs=512 count=15002048 if=/dev/sdb of=ghost_linux_latelee.img
- 可压缩拷贝
dd bs=512 count=15002048 if=/dev/sdb | gzip -9 > ghost_linux_latelee.img.gz
- 恢复镜像
dd if=ghost_linux_latelee.img of=/dev/sda
- 恢复压缩镜像
gzip -c -d ghost_linux_latelee.img.gz | dd of=/dev/sda
- 查看进度
watch -n 5 killall -USR1 dd #另一个终端启动root执行
#(注:killall并不是传说中把进程kill掉,而是发送一个指定的信号到指定的进程)
- 读取硬盘mbr扇区
dd if=/dev/sdb of=mbr.bin bs=512 count=1
- 注意:
如果你把镜像恢复到另一台计算机上,你可能会发现你的网卡是eth1,而不是eth0。这是因为
/etc/udev/rules.d/70-persistent-net.rules
文件把你做镜像的计算机的网卡作为eth0登记了。如果你的网络脚本对eth0进行了处理,而没有对eth1进行处理,那么不修改网络脚本,你可能就无法上网了。也许你会希望在做镜像之前,先删除该文件。这样你恢复镜像时,网卡的名字就是eth0,就不会造成你在恢复后的计算机上无法上网的问题了。