使用 dd 将分区复制到另一个分区,同时使用物理驱动器

18 partitioning dd

我不确定如何在主题中更好地解释这一点,因此“问题”可能不正确。但在这里。我有三个硬盘。驱动器 A 是 320GB 驱动器,驱动器 B 是 80GB 驱动器,驱动器 C 是 1TB 驱动器。我已将数据从 80 GB 驱动器复制到 1TB 驱动器,并将调整分区大小(以便接下来可以从 320 GB 驱动器复制数据)。

我的问题是:如果我在 1TB 驱动器上启动操作系统,我可以使用 dd 将 320 GB 驱动器复制到该物理驱动器上的另一个分区吗?我知道我不应该复制活动分区(这意味着如果我正在运行该操作系统,我将无法从 320 GB 驱动器复制数据)。

我的理由是:我尝试使用 Acronis TrueImage、分区管理器和 Image 4 DOS/Linux(两个应用程序),复制数据需要一个多星期的时间。这意味着有一个星期,我无法使用计算机,这是不可接受的(除非这是我唯一的选择)。我希望这行得通,所以我至少可以在复制时使用计算机。

如果必须,我可以启动到 Live CD(不是真正的首选选项)或使用“驱动器 B”,但我想尽快删除该驱动器。

Mic*_*enn 21

是的,鉴于以下两个条件为真,您想要做的将正常工作:

  1. 您要添加的分区上没有(挂载的)文件系统。
  2. 你dd'ing分区至少尺寸与一个同你dd'ing(即320 GB)。

它能正常工作的原因是分区只是 UNIX 中的文件。它们的内容只有在包含已挂载的文件系统时才具有特殊意义。

假设您有一个如下所示的布局:

1 TB = sda,两个分区,您从中启动的 sda1 和您正在添加的 sda2

320 GB = sdb,一个分区,sdb1,你正在从

您的命令如下所示:

dd if=/dev/sdb1 of=/dev/sda2 bs=1M
Run Code Online (Sandbox Code Playgroud)

bs=1M参数用于确保 dd 以大块的形式复制数据,而不是为每个扇区发出请求。


小智 5

一般来说,可以在未安装的情况下 dd 任何分区。如果必须在 dd 运行时挂载源分区进行读取,最好使用 -o ro 参数以只读方式挂载它。

如果你想先启动到源分区 amd 然后使用 dd 复制它,你可以做 mount -o ro,remount / 让它在启动后只读。