有很多关于磁盘克隆工具的问题,并且dd至少被提出过一次。我已经考虑过使用dd自己,主要是因为它易于使用,而且几乎所有可启动的 Linux 发行版都可以使用它。
dd克隆磁盘的最佳方法是什么?我在 Google 上进行了快速搜索,第一个结果是一次明显失败的尝试。使用后有什么我需要做的吗dd,即有什么不能使用的dd?
时不时地,我被告知要提高“dd”的速度,我应该仔细选择合适的“块大小”。
即使在这里,在 ServerFault 上,其他人也写道“ ...最佳块大小取决于硬件... ” (iain)或“ ...完美的大小将取决于您的系统总线、硬盘驱动器控制器、特定驱动器本身,以及每个驱动程序...... ” (克里斯 - s)
由于我的感觉有点不同(顺便说一句:我认为深度调整 bs 参数所需的时间远高于获得的增益,在节省时间方面,并且默认是合理的),今天我刚去了通过一些快速而肮脏的基准测试。
为了降低外部影响,我决定阅读:
和:
在下表中,我报告了我的发现,读取了具有不同“bs”值的 1GB 数据(您可以在此消息的末尾找到原始数字):

基本上得出的结论是:
MMC:使用 bs=4(是的!4 字节),我达到了 12MB/s 的吞吐量。我从 bs=5 及以上得到的最大 14.2/14.3 的值并不那么遥远;
硬盘:bs=10 我达到了 30 MB/s。肯定低于默认 bs=512 获得的 95.3 MB,但......也很重要。
此外,很明显,CPU 系统时间与 bs 值成反比(但这听起来很合理,因为 bs 越低,dd 生成的系统调用数量就越高)。
说了以上所有,现在的问题是:有人可以解释(内核黑客?)这种吞吐量所涉及的主要组件/系统是什么,以及是否真的值得努力指定高于默认值的 bs?
root@iMac-Chiara:/tmp# time dd if=/dev/sdc of=/dev/null bs=1M count=1000
1000+0 …Run Code Online (Sandbox Code Playgroud) 我有一个磁盘,比如 /dev/sda。
这是 fdisk -l:
Disk /dev/sda: 64.0 GB, 64023257088 bytes
255 heads, 63 sectors/track, 7783 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0000e4b5
Device Boot Start End Blocks Id System
/dev/sda1 * 1 27 209920 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 27 525 4000768 5 Extended
Partition 2 does not end on …Run Code Online (Sandbox Code Playgroud) 我想dd通过 Linux 上的 ssh 加密通道使用 netcat 从主机 A 到 B批量复制内容(使用 重新映像磁盘)。
我应该在两端输入什么命令?
我有远程 ssh 访问权限和 root 访问权限。我没有物理访问权限。我不是在寻找涉及启动任何东西的解决方案,我想从当前运行的东西中做到这一点。
操作系统是SL6。有没有办法将所需的所有内容加载到 RAM 中,并使用 dd 或类似方法安全地擦除整个磁盘?显然,这最终会导致一个无法正常工作的盒子,这是我预期的结果。
看起来这应该是可能的。
两个更有趣的补充:
能够 ssh 进入,运行 screen,运行 dd 命令和分离。完成后一周后登录。:)
不知何故有一个进度条?
更新:我现在使用 chroot 选项。正在做:
mkdir /dev/shm/ramdisk/ && cd ramdisk && mkdir bin lib64 && cd /lib64 && cp ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libpthread.so.0 librt.so.1 libtinfo.so.5 /dev/shm/ramdisk/lib64 && cd /bin && cp bash dd /dev/shm/ramdisk/bin && cd /dev/shm/ramdisk && chroot .
哪个有效(!)但我仍然需要 /dev/zero 和 /dev/sda。有什么想法吗?
2012-07-20更新:
mkdir /dev/shm/ramdisk/ && cd /dev/shm/ramdisk && mkdir bin lib64 && cd /lib64 && cp ld-linux-x86-64.so.2 …
我必须交出一台笔记本电脑,包括它的硬盘。由于它没有加密,我想至少快速擦除它。我知道这在 SSD 上不是最佳选择,但我认为比简单易读更好。
现在我正在擦除实时 USB 记忆棒,而且速度非常慢。我不知道这是为什么。当然,除了擦除该设备之外,计算机上几乎没有发生任何事情,所以我想熵可能很低(entropy_avail 说它是 1220)。只是打电话是否同样好
dd if=/dev/random of=/dev/sda1 bs=1k
Run Code Online (Sandbox Code Playgroud)
四次?或者有什么方法可以调用会增加随机性的东西?还是瓶颈在某个地方完全不同?
我有一台 KVM 主机,上面有多个 VM。每个 VM 在主机上使用一个逻辑卷。我需要将 LV 复制到另一台主机。
通常,我会使用类似的东西:
dd if=/the/logical-volume of=/some/path/machine.dd
Run Code Online (Sandbox Code Playgroud)
将 LV 转换为图像文件并使用 SCP 移动它。然后使用 DD 将文件复制回新主机上的新 LV。
这种方法的问题是您需要的磁盘空间是虚拟机在两台机器上占用的磁盘空间的两倍。IE。一个 5GB 的 LV 为 LV 使用了 5GB 的空间,而 dd 副本也为图像使用了额外的 5GB 空间。这对于小型 LV 来说很好,但是如果(就像我的情况一样)您有一个 500GB 的 LV 用于大型 VM,该怎么办?新主机具有1TB硬盘,所以它不能保持一个500GB的DD镜像文件,并有一个500GB的逻辑卷复制到和有房的主机操作系统和房间其他较小的客人。
我想做的是:
dd if=/dev/mygroup-mylv of=192.168.1.103/dev/newvgroup-newlv
Run Code Online (Sandbox Code Playgroud)
换句话说,通过网络将数据直接从一个逻辑卷复制到另一个逻辑卷,并跳过中间映像文件。
这可能吗?
我有 3 张图片。每个映像都是通过克隆(通过 dd)一个分区(这些分区使用 ext3 文件系统格式化)来完成的。一个分区可通过 GRUB1 (CentOS) 启动
如何将它们组合成一个磁盘映像?
(我可以使用 dd 命令复制分区映像,但我不知道如何创建分区表并使引导正常工作)。
我的系统上连接了 8GB USB 驱动器,如下所示:
[root@host]# fdisk -l /dev/sdb
Disk /dev/sdb: 8462 MB, 8462008320 bytes
255 heads, 63 sectors/track, 1028 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x5c0894d9
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 9 72261 e W95 FAT16 (LBA)
/dev/sdb2 10 103 755055 83 Linux
[root@host]#
Run Code Online (Sandbox Code Playgroud)
所以基本上我的 FAT 分区大约是 70 MB,ext2 分区大约是 740MB,其余的空间(~ 7 …
最近我使用 dd 备份了 120 GB 磁盘映像:
dd if=/dev/sda of=backup.img
Run Code Online (Sandbox Code Playgroud)
现在我有一个新的 320 GB 硬盘,想将该备份映像还原到该新磁盘。会跑
dd if=backup.img of=/dev/sdb
Run Code Online (Sandbox Code Playgroud)
做我想做的事?我可以使用剩余的 200 GB 新磁盘吗?
(/dev/sda - 旧的 120 GB 磁盘,/dev/sdb - 新的 320 GB 磁盘,backup.img - 120 GB 磁盘的映像文件)
dd ×10
disk-image ×4
linux ×4
security ×2
boot ×1
clone ×1
files ×1
hard-drive ×1
kernel ×1
lvm ×1
netcat ×1
partition ×1
ssd ×1
ssh-tunnel ×1