如何将整个驱动器(或分区)克隆到较小的驱动器(或分区)?

如何将整个驱动器(或分区)克隆到较小的驱动器(或分区)?

我有一块 1TB 的硬盘,设置为 MBR,有 3 个主分区。分区的大小分别为 250GiB、250Gib 和 192GiB。驱动器的剩余部分是未分配的空间。

该驱动器默认自行启动到第一个分区(Windows),但也可以使用 GRUB(安装在另一个硬盘驱动器上)启动到第二个分区(另一个 Windows)。

忽略未分配的空间,我想将整个驱动器克隆到 750GB 驱动器,因为分配的空间可以容纳。我想保留 UUID 和 MBR。如何做到这一点?

答案1

你之前使用过 gparted 吗(http://gparted.org)?我强烈推荐它,而且它是免费的。我会启动 gparted live CD,然后使用友好、友好的 GUI 从那里调整分区大小(确保 Windows 事先已完全关闭并且未处于休眠状态等)。

您的 UUID不应该更改,但在调整分区大小后,你应该运行

sudo blkid

在 gparted 实时环境中的终端上仔细检查 UUID,并在重新启动之前根据需要更新 grub 配置。

答案2

我知道这会起作用,因为我已经做过好几次了——在开始之前先阅读全文!:

  1. 从 Knopix CD/DVD 启动(建议版本 7.0)。这将为您提供一个良好的稳定的工作环境。

  2. 使用gparted或其他磁盘实用程序来确定与源磁盘和目标磁盘相关联的特殊设备文件。请注意,您对与分区相关联的设备文件不感兴趣。例如,您想要的是/dev/sda和之类的东西/dev/sdb,而不是/dev/sda1/dev/sdb2

  3. 确保您已正确识别源磁盘和目标磁盘,然后dd按如下方式将源磁盘复制到目标磁盘。

  4. 假设/dev/sda是源磁盘,/dev/sdb是目标磁盘,则命令将如下所示dd if=/dev/sda of=/dev/sdb bs=10M。这将一次复制 10 兆字节,这应该相当高效。不要在命令中输入错误的源磁盘和目标磁盘,因为一旦开始,就无法回头了。如果输入错误,您实际上已经擦除了源磁盘!

  5. dd将继续运行,直到它抱怨目标磁盘上的空间不足(因为您试图将 1TB 复制到 750GB,但没关系)。您可以尝试找出要复制多少,因为它dd有一个“count”参数,但由于对“mega”的定义存在混淆,我只会让它撕掉。

  6. 最终结果应为一个克隆,包括 750GB 驱动器上的主引导记录、分区表、UUID 和 1TB 驱动器的标签。ddgparted完成后,您可以使用它来确认。

  7. 如果您想在运行 Knopix 时将文件系统挂载到目标驱动器上,请先运行该命令,partprobe以便内核识别目标驱动器上的分区表。然后,您可以根据需要挂载文件系统,方法是先创建挂载点(例如mkdir /sda),然后挂载/dev/sda到那里。不要尝试同时挂载源分区和目标分区,因为 UUID 相同,我感觉系统不会允许这样做。

编辑:关于上述内容,有几点需要提及 1) 我假设 3 个主分区之间没有空间,即它们在源磁盘上是连续的,并且第一个分区前面没有未分配的空间。2) 并且,源磁盘上分区的大小总和必须小于或等于目标磁盘上的可用空间。另一种看待方式是,最后一个分区末尾的字节数必须小于或等于源磁盘上的可用空间。对我来说,这是一组相当罕见的情况,但这就是所问的问题。3) 在更一般的情况下,如果您想要将驱动器克隆到较小的驱动器上,而源驱动器上的数据量可以容纳在较小的驱动器上,那么您需要使用 gparted 之类的实用程序首先缩小源驱动器上的分区,然后移动它们,使它们连续。然后您可以使用上述方法。4
) 我会在原始源驱动器上执行此操作吗?只有当您喜欢冒险时才会这样做。我会先使用“dd”将源驱动器克隆到另一个大小相同或更大的驱动器上,然后先重新配置克隆,再将克隆克隆到较小的驱动器上。如果出现任何问题,它都会发生,包括操作过程中的电源故障。

相关内容