Linux DD 命令分区到分区

Linux DD 命令分区到分区

我只是使用 DD 命令将一个分区的内容复制到另一个驱动器上的另一个分区,如下所示:

dd if=/dev/sda2 of=/dev/sdb2 bs=4096 conv=noerror

sda2 分区为 66GB,sdb2 为 250GB。我读到,这样做会浪费我要复制到的驱动器上的额外空间,这是真的吗?

不过,我暂时并不担心失去额外的空间,我只是运行了:

sudo kill -USR1 (PID)

查看 DD 的当前状态,它已经写入了超过 66GB 的数据,它会继续写入数据直到达到 250GB 吗?如果是这样,有没有办法在不破坏它的情况下停止该过程,因为等待它写入​​空白空间似乎是在浪费时间。

答案1

超过 66GB 可能只是一个舍入误差,它只有 66GB 的源数据需要复制,因此无法复制超过这个数据。

请注意,如果在源中发现错误,您应使用syncwith来确保复制的数据最终到达预期的位置。最好先检查源媒体,确保在复制之前没有错误。noerror

所以是的,分区上的额外空间被浪费了。这不仅与分区大小有关,还与您要复制的文件系统的大小有关,在您的例子中是 66GB。但是,根据您使用的文件系统,您通常可以将文件系统扩展到分区的大小。对于 ext 文件系统,您可以使用

resize2fs /dev/sdb2

确保在使用此命令之前先阅读它,并保留您的源,直到您对新磁盘的所有内容都感到满意为止。

使用rsync -ax而不是dd在不同大小的分区之间通常是更好的选择 - 它还允许您为目标选择不同的文件系统类型。

相关内容