如果使用 dd 将较小的设备 HDD1 写入 HDD2,那么 HDD2 的可用空间会发生什么情况?

如果使用 dd 将较小的设备 HDD1 写入 HDD2,那么 HDD2 的可用空间会发生什么情况?

在这种情况下,剩余的空间会发生什么sdb?我认为dd会在开始时写入数据,替换分区表,而可用空间将保持不变(不可用)。

sda= 10 GB sdb= 15 GB

dd if=/dev/sda of=/dev/sdb

我知道可用空间不可用,在运行 dd 之前必须有人将其分区为正确的大小。在这种情况下,我不在乎可用空间。我正在寻找我的问题的技术答案。比如在数据取证层面。

答案1

您的命令将获取 的全部内容/dev/sda并(缓慢地)将其写入 的第一部分/dev/sdb。 的其余部分/dev/sdb将保持不变。

实际上,使用dd您编写的命令将受到每次 512 字节读/写重复系统调用的限制。通过增加缓冲区大小甚至仅使用,您将获得显著更好的性能cat。复制不会有任何区别:

cat /dev/sda >/dev/sdb

您可以通过创建更小的环回设备来测试这些行为

dd if=/dev/zero bs=1M count=100 >/tmp/100M.img
dd if=/dev/urandom bs=1M count=150 >/tmp/150M.img

lda=$(losetup --find --show); echo device $lda
ldb=$(losetup --find --show); echo device $ldb

# Try your commands here
dd if=$lda of=$ldb

现在您可以看到有多少$ldb被覆盖了$lda

相关内容