网站搜索

如何使用 Clonezilla 将 Windows 10 从 HDD 迁移到 SSD


本教程摘录了如何从具有多个分区(例如 C:D:)的大型 HDD 迁移(也称为克隆)Windows 10 操作系统,到使用包含 Clonezilla 实用程序的 Linux 发行版的较小 SSD。

Clonezilla 实用程序可以从 PartedMagic Linux 发行版 CD ISO 映像运行,也可以直接从 Clonezilla Linux 发行版 CD ISO 映像运行。

本指南假设两个磁盘(旧 HDD 和 SSD)同时物理插入到您的计算机中,并且 Windows 操作系统安装在具有 MBR 分区方案表的磁盘上。 Fdisk 命令行实用程序应将磁盘标签类型显示为 DOS

另请阅读:8 个适用于 Linux 的开源磁盘克隆和备份解决方案

如果磁盘采用 UEFI 的 MBR 布局进行分区,则应克隆所有分区,例如 Windows RE 分区、EFI 系统分区、Microsoft 保留分区和保存 Windows 操作系统分区的 Microsoft 基本数据分区,通常是 C:驱动器。在这种情况下,Fdisk 命令行实用程序应将磁盘标签类型报告为 GPT

在下面的屏幕截图中,您可以查看 MBR 布局样式和从 UEFI 执行的 GPT 分区布局情况下的初始 Windows 分区方案。

磁盘管理中的 MBR 分区布局

磁盘管理中的 GPT 分区布局

步骤1:收缩Windows系统的C:分区

请注意,如果 HDD 中的 Windows C: 分区大于 SSD 的总大小,您将需要减小其大小以适合 SSD。

这一步的计算很简单:

系统保留 + 恢复 + EFI 分区 + Windows C: 分区必须小于或等于 fdisk 等实用程序报告的 SSD 总大小。

1. 要从 Windows 缩小 C: 分区,首先打开命令提示符窗口并执行 diskmgmt.msc打开Windows磁盘管理实用程序,该实用程序将用于缩小卷(假设Windows安装在第二个分区的磁盘开头,在系统保留分区之后)并分配了 C: 字母),以便将其大小减小到最小。

在此步骤中,请随意使用其他分区工具,例如从实时 Linux ISO 运行的 Gparted,以将 C: 驱动器大小减小到最小。

2. 减小 C: 分区的大小后,将 SSD 驱动器插入计算机主板,然后重新启动计算机进入 Clonezilla 实用程序(使用 Clonezilla ISO 映像或< arel=”nofollow” href=”https://partedmagic.com/downloads/” target=”_blank”>Parted Magic ISO),进入 Bash shell 界面并使用以下命令检查两个磁盘分区表和大小。

fdisk -l /dev/sda
fdisk -l /dev/sdb

请注意,第一个磁盘的驱动器名称为 sda,第二个磁盘的驱动器名称为 sdb,依此类推。选择最受关注的磁盘,这样您就不会最终克隆错误的设备并销毁所有数据。

要匹配正确的磁盘源(本例中为 HDD)和磁盘目标 (SSD),请使用 fdisk 命令报告的大小和分区表。 Fdisk 输出将显示 SSD 的大小应小于 HDD 磁盘,并且默认情况下不应创建分区表。

如果是 GPT 磁盘,HDD 分区表应如下图所示。

su -
fdisk -l /dev/sda
fdisk -l /dev/sdb

步骤 2:使用 Clonezilla 克隆磁盘

3. 接下来,使用以下命令之一仅将 MBR(第一阶段引导加载程序 + 分区表)从 HDD 克隆到 SSD 目标磁盘(假设 sda 代表安装 Windows 操作系统的驱动器,sdb 代表 SSD 磁盘)。

dd if=/dev/sda of=/dev/sdb bs=512 count=1
or
sfdisk -d /dev/sda | sfdisk -f /dev/sdb

如果是 GPT 分区样式,您应该克隆前 2048 个字节:

dd if=/dev/sda of=/dev/sdb bs=2048 count=1

或者使用sgdisk实用程序。请注意,如果将分区表从 sda 复制到 sdb,则在使用 sgdisk 时应反转磁盘的顺序。

sgdisk -R /dev/sdb /dev/sda

克隆 MBR/GPT 后,再次使用 -l 标志运行 fdisk 命令来验证两个磁盘上的分区表是否匹配。

fdisk -l /dev/sda
fdisk -l /dev/sdb

4. 现在两个驱动器都应该具有准确的分区表。现在,在目标磁盘上删除 Windows 分区之后的所有分区,以便从一个干净的分区表开始,其中仅包含系统保留和 Windows 所需的条目。

您不会从旧驱动器克隆 D:(或 Windows 后续的其他分区)的数据。您基本上只克隆旧硬盘的前两个分区。稍后,您将使用剩余的未分配空间通过合并 SSD 中的所有未使用空间来扩展 C: 分区。

使用如下所述的fdisk实用程序来删除分区。首先针对您的 SSD 目标驱动器(本例为 /dev/sdb)运行命令,使用 p 键打印分区表,按 d 键开始删除分区并从提示中选择最后一个分区号(在本例中为第三个分区),如下面的屏幕截图所示。

fdisk /dev/sdb

如果您的驱动器在 Windows 分区之后有多个分区,请确保将其全部删除。删除完所有不需要的分区后,再次按 p 键打印分区表,如果现在只列出了两个所需的 Windows 分区,则可以安全地点击 w 键以应用所有更改。

删除最后一个分区的相同过程也适用于 GPT 磁盘,并提到您应该使用 cgdisk 实用程序,该实用程序在操作磁盘布局时可以直观地使用。

不用担心会破坏GPT磁盘末尾的备份分区表,cgdisk会对两个分区表进行适当的更改,并将新的磁盘布局表保存在磁盘末尾自动地。

cgdisk /dev/sdb

最后的 GPT 磁盘报告删除了最后 4.9 GB 分区。

5. 现在,如果一切就绪,启动 Clonezilla 实用程序,选择设备-设备模式,从初学者向导运行并选择部件到本地部件克隆选项。

使用下面的屏幕截图作为指导。

6. 从列表中选择第一个本地分区(sda1 – 系统保留)作为源,然后按Enter 键继续。

7. 接下来,选择本地目标分区,这将是第二个磁盘中的第一个分区 (/dev/sdb1),然后按 Enter > 键继续。

8.在下一个屏幕上选择跳过检查/修复文件系统,然后再次按Enter键继续。

9. 最后,再次按 Enter 键继续,并回答两次 yes (y) 以接受警告并开始克隆过程。

10.第一个分区的克隆过程完成后,选择进入命令行提示符,运行clonezilla并对下一个分区重复相同的步骤(源sda2 – 目标 sdb2 等)。

11.克隆所有 Windows 分区后,重新启动系统并物理拔下 HDD 驱动器,或者更好的是,篡改 BIOS 设置,以便将 SSD 设置为主启动驱动器,而不是旧硬盘。

步骤 3:调整 Windows 分区大小

12.您可以运行Gparted实用程序来检查分区健全性并从Linux扩展Windows分区,或者您可以直接启动到Windows并使用磁盘管理实用程序来做这项工作。下面的屏幕截图说明了如何使用这两个实用程序。

使用 Gparted Live CD 扩展分区

直接从 Windows 使用 Windows 磁盘管理实用程序扩展分区。

就这样! C: 分区现已扩展到 SSD 的最大大小,Windows 现在可以在全新的 SSD 上以最大速度运行。旧硬盘的所有数据都完好无损。

如果您已将硬盘从主板上物理移除,请再次连接硬盘以便使用它。您可以从旧硬盘中删除系统保留分区和Windows分区,并创建一个新分区来代替这两个分区。其他旧分区(D:E: 等)将保持不变。

结论

使用Clonezilla,您还可以选择对分区进行映像并将其保存到外部 HDD 或网络位置。在这种情况下,您还必须使用以下命令之一备份 HDD MBR/GPT,并将 MBR 映像保存到保存 Clonezilla 映像的同一目录中。

MBR 备份到文件:

dd if=/dev/sda of=/path/to/MBR.img bs=512 count=1
or
sfdisk -d /dev/sda > =/path/to/sda.MBR.txt

GPT 备份到文件:

dd if=/dev/sda of=/path/to/GPT.img bs=2048 count=1
or
sgdisk --backup=/path/to/sda.MBR.txt /dev/sda

为了将来从网络位置恢复 Windows 系统,请首先使用以下命令之一从上面保存的映像中恢复 MBR 扇区,然后继续一一恢复每个 Clonezilla 分区映像。

从文件恢复 MBR 映像:

dd if=/path/to/MBR.img of=/dev/sda bs=512 count=1
or
sfdisk /dev/sda < =/path/to/sda.MBR.txt

从文件恢复 GPT 映像:

dd if=/path/to/GPT.img of=/dev/sda bs=2048 count=1
sgdisk - -load-backup=/path/to/sda.MBR.txt /dev/sda

另请阅读:如何使用 Clonezilla 克隆或备份 Linux 磁盘

此方法已在 BIOS 主板和从传统模式 (CSM) 或直接从 UEFI 安装 Windows 的 UEFI 计算机上多次使用,没有任何错误或数据丢失。