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

本教程将介绍如何使用Linux Clonezilla实用程序将Windows 10操作系统从具有多个分区(例如C :, D:)的大型HDD迁移到较小的SSD。

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

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

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

另请阅读8开放源码磁盘克隆和备份解决方案为Linux

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

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

磁盘管理的MBR分区布局

检查MBR分区布局

检查MBR分区布局

从磁盘管理的GPT分区布局

检查MBR分区布局

检查MBR分区布局

第1步:收缩C:Windows系统分区

请注意,在Windows的Windows C:分区大于SSD的总大小的情况下,您将需要减小其尺寸以适应SSD。

这个步骤的计算很简单:

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

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

收缩C分区

收缩C分区

随意使用其他分区工具进行此步骤,例如从Live 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.接下来,使用以下命令之一,将HDD(第一级引导加载程序+分区表)从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
验证分区表

验证分区表

现在两个驱动器都应该有精确的分区表。 目标磁盘上现在删除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分区

删除GPT分区

最后的GPT磁盘报告与最后的4,9 GB分区删除。

验证GPT分区表

验证GPT分区表

现在,如果一切都到位,启动Clonezilla工具,选择设备设备模式,从初学者向导运行并选择part-to-local_part克隆选项。

使用下面的屏幕截图指南。

选择Clonezilla设备模式

选择Clonezilla设备模式

选择Clonezilla初学者模式

选择Clonezilla初学者模式

选择Clonezilla本地分区克隆

选择Clonezilla本地分区克隆

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

选择分区以克隆

选择分区以克隆

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

选择本地目标分区

选择本地目标分区

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

跳过检查修复文件系统

跳过检查修复文件系统

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

确认分区更改

确认分区更改

开始克隆分区

开始克隆分区

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

克隆第二分区

克隆第二分区

11.在所有Windows分区被克隆之后, 重新启动系统并实际拔下HDD驱动器,或者更好地篡改BIOS设置,以便将SSD设置为主引导驱动器而不是旧的HDD。

第3步:调整Windows分区大小

12.您可以运行Gparted实用程序来检查分区的完整性,并从Linux扩展Windows分区,或者您可以启动到Windows,并使用磁盘管理实用程序来完成此任务。 下面的屏幕截图说明了如何使用这两个实用程序。

使用Gparted Live CD扩展分区

使用GParted调整分区大小

使用GParted调整分区大小

调整分区大小

调整分区大小

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

扩展Windows分区

扩展Windows分区

选择要扩展的磁盘

选择要扩展的磁盘

就这样! C:分区现在扩展到SSD的最大尺寸,Windows现在可以以全新的SSD的最大速度运行。 旧的HDD具有完整的数据。

再次连接硬盘,以便将其从主板上实际删除。 您可以从旧的HDD中删除系统保留的分区和Windows分区,并创建一个新的分区,而不是这两个。 其他旧分区( D:E:等)将保持不变。

结论

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

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)安装的Windows或直接来自UEFI的UEFI机器上多次使用,没有任何错误或数据丢失。