如何快速更换 windows 系统所在的硬盘为更大的硬盘?

95 天前
 huangya

当前使用的硬盘是大概 500GB ,分了三个区,分区方式为 GPT 。三个区分别为 EFI ,C 盘系统盘,大概 200GB ,还有个 D 盘数据盘,大概 276GB 。现在我想用 1 个 1TB 的新盘替换它。

为了保持无缝和高效过渡。我用一个 U 盘装了 linux live 系统。然后在 linux 系统里面使用了 dd 命令全盘克隆。克隆完后,打开 gparted ,gparted 报分区表错误,这个应该能理解,因为全盘克隆会克隆分区表,但是分区表中应该有些字段会与盘的大小有直接或者间接的联系,另外备份分区表的位置克隆后也不对。这些错误 gparted 会提示是否需要 fix ,我点击了 fix 。fix 后新盘的三个分区在 linux 下能正常挂载读写。我的计划是在新盘启动 windows 之后,使用 windows 的工具扩展 D 盘后面的未分配的空间给 D 盘,C 盘空间大小保持不变。(当然 linux 下面也能扩展)

现在的问题是,当我做完前面这些,把旧盘拔掉,启动电脑的时候,新盘的 windows 不能启动。这个原因是什么呢? 我的理解是克隆完后,新盘的三个分区的 UUID 与旧的是一样的。EFI 分区中还需要修改 windows 系统对应的 BCD 文件吗? BCD 文件在 EFI 分区中的路径是 EFI\Microsoft\Boot\BCD

3471 次点击
所在节点    Windows
37 条回复
b2byco
95 天前
找个 windows PE ,DiskGenius ,工具-克隆磁盘,然后用 pe 修复一下引导就好了,然后再去分区拷贝数据盘的内容之类的就行
mgrddsj
95 天前
个人用过最傻瓜+方便省心的就是傲梅分区助手,系统搬过去新硬盘直接能用,唯一缺点是现在好像要关注它的公众号才能下载
mgrddsj
95 天前
不想用国产软件的话,Clonezilla 我也用过,是基于 Debian 的备份/迁移专用系统,不过只有 Terminal UI 。曾经试过把一个 Win 10 + Fedora 双系统的 256G 硬盘,整个以镜像文件的方式备份到一个大的移动硬盘,再在装上 512G 新硬盘后复原,复原完直接可以用,双系统都没问题。
Dragonish3600
95 天前
sysprep 命令打包系统,然后 ghost 恢复到新硬盘
yg503
95 天前
既然会用 livecd ,我推荐你试试再生龙
kome
95 天前
控制中心 -> backup and restore(windows 7), 选择备份的盘符, 选择备份位置, 做备份就行了(备份后文件为.vhdx).
做一个 Windows 的安装启动盘, 在安装系统前, 选择修复系统, 然后选择已备份的系统, 可以选择全盘恢复, 也可以选择只恢复系统分区.
你可以只恢复系统分区, 进入系统后把系统分区扩大就行, 然后挂载另一个分区的 vhdx, 把文件复制出来就行了.
我在自己的电脑上验证了可行, 但是我的硬件设备是没有变化的, 我想仅仅变更一个硬盘, 应该不涉及硬盘无法驱动等问题.
RobinHuuu
95 天前
恢复引导就行了,方法很多
cowcomic
95 天前
我好像用的也是傲梅,挺好用的,基本上就是傻瓜操作
ntedshen
95 天前
。。。这年头的电脑说真的就是挂个 pe 复制粘贴都能把这事情做完了
bro 你搁这 linuxlivecd 一顿操作猛如虎。。。
huayune
95 天前
前段时间刚好换硬盘,网上找一路,发现个小兵 U 盘,pe 里面有一个系统迁移的,直接从旧硬盘对拷到新硬盘,注意记一下盘符(后面拆下旧的如果盘符没对上记得改对),完事直接拔掉旧的 把新的换上去就好了, 运行一段时间了系统运行一切正常
huayune
95 天前
我是 512G 固态+1T 固态+1T 机械, 把 512G 直接换成了 2T 固态
@huayune
xclimbing
95 天前
BCD 里记录了硬盘的 GUID 和系统分区的 GUID ,所以系统迁移到新硬盘,一定要更新一下 BCD 文件。楼主这个 DD 方式挺新颖啊,这样多浪费时间啊。如果是我,就按需求将新硬盘分区,然后把旧硬盘上的分区用 DiskGenius 之类软件的分区复制功能复制到新分区,然后修复一下引导(更新 BCD )即可。必要时删除新分区 system 注册表中的:HKLM\System\MountedDevice 下的 C:。
Ackvincent
95 天前
傲梅分区助手是一款免费、专业的无损分区工具。可在不丢失数据的情况下管理您的硬盘,完成分区相关的任何操作。

可以在不丢失数据的情况下创建、调整大小、移动、合并和 拆分分区。
在不重新安装的情况下完整安全地将 Windows 系统迁移 到全新的固态硬盘。
轻松将 MBR 转换为 GPT ,充分利用超过 2TB 磁盘的空间。
在 Windows PE 下创建可启动媒体 来管理硬盘分区。
使用擦除磁盘 功能彻底删除磁盘数据,使其不能被恢复,达到较高的数据保密作用。
支持 Windows 11 、Windows 10 、Windows 8.1 、Windows 8 、Windows 7 。
https://www.disktool.cn/download.html
cnbatch
95 天前
既然操作对象是 Windows ,那就不要用 Linux 思维去干这种事
楼上各位给出的 WinPE 迁移方案都适合,照做就行
likuku
95 天前
一年前我也做了类似的事:
用 linux LiveCD 把 旧 SSD 上的 Win10 用 dd 逐个把分区重写到 新的 同品牌同容量 SSD
结果也是 新 SSD 的 win10 起动不了,多次尝试,根据症状搜了下资料,找到了解法,也修复成功了,当时笔记如下,供参考:

# Fix Boot for win10 on New SSD GPT

create win10 x64 rescue system USB, by MS win10 media create tool

under win10 installer usb on rescue command line

diskpart to show part list and change fat32 part number

set a driver number for new ssd part1 fat32 esp

cd fat32 esp by new driver number

fixboot

rebuild bcd

reboot

以上参考资料来自:
https://www.dell.com/support/kbdoc/zh-cn/000124331/如何-在-戴尔-pc-上-修复-windows-7-8-8-1-和-10-的-gpt-硬盘-上-的-efi-启动加载程序
https://www.dell.com/support/kbdoc/zh-cn/000124331/%E5%A6%82%E4%BD%95-%E5%9C%A8-%E6%88%B4%E5%B0%94-pc-%E4%B8%8A-%E4%BF%AE%E5%A4%8D-windows-7-8-8-1-%E5%92%8C-10-%E7%9A%84-gpt-%E7%A1%AC%E7%9B%98-%E4%B8%8A-%E7%9A%84-efi-%E5%90%AF%E5%8A%A8%E5%8A%A0%E8%BD%BD%E7%A8%8B%E5%BA%8F
424778940
95 天前
@mgrddsj 不用吧? 难倒你去的假的网站? https://www.disktool.cn/go/download/PAInstall.zip
424778940
95 天前
最傻瓜的办法
直接 dg 或者傲梅热拷贝过去

清真一些的办法
随便下个微软 windows 的 iso 写 u 盘, 拷贝 dg 或奥梅的 pe 版本进去
启动之后, shift+f10 调出命令行, 直接 notepad.exe 回车然后 ctrl+o 当资源管理器用, 找到你的工具右键运行(不要双击, 不然会记事本打开)
以 dg 为例, 选择磁盘拷贝, 一定选择克隆所有扇区, 不要用其他模式
完成后关机, 拔掉旧的盘, 这一步很重要
开机没意外可以直接启动成功, 之后去磁盘管理直接调整分区大小就完事了

需要注意的点:
1. 你克隆 windows 就不要用 linux 发行版成嘛? 虽然理论上你整盘 dd 也可以
2. 很多工具的普通克隆模式会自作聪明的帮你修改分区表和分区的 GUID, 这会导致 UEFI 启动项不再匹配, BCD 中启动分区也找不到

如果上述办法 somehow 有问题用下面流程, 以 dg 为例
usb pe 盘准备和进入流程参考上面
新盘新建 GPT 分区表, 同时新建 ESP 分区至少 256MB
新盘新建系统分区
分区克隆, 按文件系统结构, 就系统分区到新分区
选中 ESP 分区, 分配驱动器号
cmd 里输入 `bcdboot c:\windows /l zh-cn /f uefi /s e:`, 其中 c 盘是你新系统分区的盘符, e 盘是新盘上 esp 分区盘符
bcdboot 会使用 windows 文件夹中的文件直接重新创建启动文件夹, 不需要想办法拷贝, 也不需要手动修改 bcd
424778940
95 天前
另外补充一点, 有一些 bios 严格按照 efi 标准识别启动目录, 比如一些联想品牌机和 hp 笔记本之类的
如果你的 esp 分区是普通的 fat32 分区, 他并不会当作 esp 处理
因为 GPT 分区表中一般数据分区和 esp 分区的类型 GUID 是不同的, 即便他们都是 fat32 格式, 二者没有关联性

EFI System partition C12A7328-F81F-11D2-BA4B-00A0C93EC93B
Basic data partition EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
Linux filesystem data 0FC63DAF-8483-4772-8E79-3D69D8477DE4

完整列表参考 https://en.wikipedia.org/wiki/GUID_Partition_Table
datocp
95 天前
这种已经很熟练了
1.用 it 天空 pe 里的 diskgenus 备份 efi 引导分区+c 盘镜像为文件
2.对新硬盘进行 gpt 分区,复制 efi 分区和系统分区镜像文件和复制数据分区文件到新硬盘?
这里常见的一个问题,如果双硬盘在线,一不小心重启了,可能导致系统分区,盘符错乱,又得改注册表指定盘符。最好有其它的 3.5 寸/2.5 寸移动硬盘,ssd 移动硬盘,就不需要双硬盘插在电脑上,用 usb 就可以了。
3.电脑只插新硬盘,恢复 efi+系统分区
4.bootice ,pe 里自带的图形 bcd 修复工具,找到硬盘主引导设定为 windows 引导+修改 bcd 文件将系统分区指向新硬盘的指定分区。
flynaj
95 天前
@b2byco
@huayune 就是 1 楼这个才是正确方法,dd 了你也启动不了,要改 BCD 文件。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1150472

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX