如何将硬盘克隆到较小的 SSD?

如何将硬盘克隆到较小的 SSD?

我的笔记本电脑中有一个硬盘,上面有一个 Windows 分区和一个 Ubuntu 分区。我买了一个 SSD 来替换我的硬盘,但它的容量略小。我已经将 SSD 分区为我想要的大小,新磁盘上的每个分区都大于旧硬盘上的已用空间量。

我本来打算使用dd,但它似乎要求分区大小相同。

我如何将旧分区复制到新 ssd 上?我也在复制启动分区,那么如何确保新磁盘可启动,并且新分区与旧分区完全相同(但可用空间较少)?

答案1

不用费心对 SSD 磁盘进行分区。

我建议先缩小旧磁盘上的分区以适应 SSD 的大小,然后将旧磁盘 dd 到新磁盘

但请先进行备份。

答案2

您绝对可以使用 dd,只要较大驱动器上的数据明显小于 SSD,并且超出 SSD 存储限制的区域中不存在任何数据。

只需从源驱动器逐个扇区地直接向 SSD 执行 dd 操作,直到 SSD 已“满”,然后使用分开通过“删除”并“重新创建”具有正确几何形状的截断分区来修复错误的分区表,该分区表表明 SSD 具有比实际更大的几何形状(这不会删除该分区中的数据,它只是更改该分区的开始和结束)。

或者,如前所述,使用类似的工具分区要将分区缩小到小于 SSD 的大小,请使用 dd 进行克隆(这次它将具有正确的几何结构并且没有数据丢失的风险)或克隆兹拉(比 dd 快,因为它只克隆占据您可能已经尝试过(您可能希望仅调整驱动器的某些区域而不是所有内容 - 您仍然需要事先调整分区大小),然后再次调整 SSD 上的分区大小以填充总容量以下的任何空白空间。

答案3

免责声明:我是 WereSync 软件的作者

同步只需一个命令即可完成此操作。使用以下命令安装程序:

pip install weresync

然后运行它:

weresync -C --grub-partition 2 --efi-partition 1 /dev/sda /dev/sdb

这会将数据从 /dev/sda 复制到 /dev/sdb。该-C标志使 weresync 将分区复制到目标驱动器,然后调整它们的大小以适合。--grub-partition是您希望 weresync 安装 grub 的分区号​​,是--efi-partition您希望挂载并传递给 grub-installs 标志的分区号--efi-directory。通常--grub-partition应该是您的根驱动器,因此如果 /dev/sda2 安装在 / 上,请将 2 传递给--grub-partition。如果您的启动文件夹位于单独的分区上,则需要将该数字传递给标志--boot-partition。有关更多详细信息,请参阅WereSync 文档

注意:到目前为止,WereSync 仅支持 GPT 驱动器作为源驱动器。对 MBR 驱动器的支持正在积极开发中。

答案4

使用lsblk获取设备 ID 并执行(不带参数运行)

lsblk -b /dev/sdYY

这是为了获取磁盘的确切大小并从那里。

你可能需要使用分区调整大小以适应。转到 Gparted 右上角的设备选择器,右键单击要调整大小的分区,然后单击“应用”按钮(然后执行 Home run),但要注意手指。然后您就可以“dd”磁盘了。

相关内容