Linux的Ghost-dd命令
dd是linux下常用命令,通常用于设备之间导数据
标准用法:
dd if=/dev/hda of=/dev/hdb
其中if是输入设备,of是输出设备
可用参数包括bs=xxxx 字节大小 count=n 次数
例如dd if=/dev/hda of=/dev/hdb bs=512 count=1 将复制hda的MBR到hdb,512 Bytes.
dd可以有很多很强大的用法,这个小巧的工具完全可以作为Ghost使用,并且也可以通过TCP/IP来Ghost。
dd用来擦除数据Wipe Data
如今不少人都知道了要彻底清除数据,删除是没用的,清空回收站也没用,陈冠希同学肯定不知道。
现在有商业的软件可以删除之后,用空白数据反复写,这样就可以毁尸灭迹。
dd也可以这样做。
dd if=/dev/zero of=/dev/sda conv=notrunc
制作镜像
dd if=/dev/hda1 of=hdimage.img conv=noerror,notrunc
对于光盘,每个扇区是2048字节,因此dd if=/dev/hdc of=/home/kevin/mycd.iso bs=2048 conv=notrunc 将生成光盘iso
克隆硬盘
dd if=/dev/sda of=/dev/sdb notrunc,noerror
网络克隆
通过netcat来实现的,netcat堪称网络调试的瑞士军刀。
目标机上运行 netcat -l -p 1234 | dd of=/dev/hdc bs=16065b
源机上运行dd if=/dev/hda bs=16065b | netcat targethost-192.168.3.33 1234
这里面有一个问题,就是不同大小的分区之间克隆,会是什么样的情况?
答案是:如果80G的硬盘(假设只有一个分区)克隆到250G的分区,250G的分区会变成80G,剩余的空间未分配。
这个时候就需要用分区工具来Resize分区。
你可以选择Partition Magic或者是Acronis Disk Director,一个是无损分区的老牌劲旅,一个是如日中天的后起之秀。
不过这次我选择了开源的Gparted LiveCD,一个原因是USB设备会被识别为可移动存储,至少Acronis Disk Director认不出来。另一个原因,Gparted是LiveCD,相当绿色环保。
命题:80G的旧硬盘上面的系统,迁移到500G的新硬盘,应该如何操作?
Step 1. 使用LiveCD,任何一个发行版的LiveCD都可以,dd命令很流行,几乎所有发行版都带有。
Step 2.分清楚新旧硬盘的设备号,例如,旧硬盘通常是HDA 新硬盘通常是SATA的,因此往往是SDA SDB之类的,弄错了设备号可能会导致严重后果。
Step 3.使用LiveCD 好像比较流行Ubuntu LiveCD,不过其实Gparted LiveCD就够了,不到100M。
Step 4.LiveCD的Terminal窗口,dd if=/dev/hda of=/dev/sdb bs=32256 conv=notrunc,noerror
参数说明:32256表示一次复制一个轨道,一个轨道共有63个扇区,每扇区512个字节,notrunc表示不要跳过空闲处,noerror表示忽略警告
Step 5.用Gparted查看新硬盘,可以看到有大量未分配空间,Resize至100%,Apply,Reboot,搞定!