dd完成后,应该记录输入=记录输出

dd完成后,应该记录输入=记录输出

我正在使用以下 cmdsda(500GB)是我的笔记本电脑硬盘(未安装)并且SDDC(500GB) 是我的外部 USB 硬盘

dd if=/dev/sda of=/dev/sdc bs=4096

完成后返回

122096647+0 records in
122096646+0 records out
50010782016 bytes (500GB) copied, 10975. 5 s, 45.6 MB/s

由此可见记录输入!= 记录输出

fdisk -l

回报

Device    Boot  Start   End         Blocks      Id  System
/dev/sda1 *     2048    718847      358407      7   HPFS/NTFS/exFAT
/dev/sda2       718848  977102847   488192000   7   HPFS/NTFS/exFAT

/dev/sdc1 *     2048    718847      358407      7   HPFS/NTFS/exFAT
/dev/sdc2       718848  977102847   976384000   7   HPFS/NTFS/exFAT

这也说明了两者之间的差异堵塞尺寸

另一个问题是正常的DD复制 500GB 需要 3 小时。(笔记本电脑 SSD 到普通非 SSD USB 硬盘)

我在 Windows 上的物理扇区是4096而逻辑扇区是第512章

答案1

目标磁盘必须比源磁盘小几 kB。 “500 GB”作为磁盘大小意味着“至少 500,000,000,000 字节”;您不能指望所有 500 GB 磁盘都具有完全相同的字节数。由于所有分区都具有相同的大小和位置,因此末端不适合的部分无论如何都不会被使用,所以这不是问题。

对于 USB 硬盘来说 45 MB/s 已经相当不错了。但是,如果您使用更合适的工具,您可能会获得稍快的速度:dd强制使用固定的缓冲区大小,这很少是最佳的,并且 4096 确实偏小。我运行基准测试(当然,它们可能与您的系统不匹配)并发现它cat比 更快dd,但如果您获得正确的块大小(通常约为几 MB),则dd可以接近性能。cat但是由于使用dd很棘手,可能会导致数据丢失,最好用简单的cat

cat /dev/sda >/dev/sdc

任何“扇区大小”在这里都是无关紧要的,这对于数据访问性能很重要,但对于进行整个磁盘复制并不重要。

相关内容