V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
huangya
V2EX  ›  Windows

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

  •  
  •   huangya · 44 天前 · 3225 次点击
    这是一个创建于 44 天前的主题,其中的信息可能已经有所发展或是发生改变。

    当前使用的硬盘是大概 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

    第 1 条附言  ·  44 天前
    @b2byco
    @mgrddsj
    @ntedshen
    @xclimbing

    回复一下为什么用 dd ?
    我个人理解两个原因:
    1 , 我的旧盘满了,用 dd 整盘克隆最快,因为它不需要通过文件系统读文件。我不知道其他工具是不是这样做的。
    2 ,dd 整盘克隆能保留文件系统的文件的元数据,比如某个文件的创建时间等,我不知道其他工具是不是能保留。

    我本人主要工作在 linux 下面,windows 因为某些原因,在某些场合不得不用。所以多多少少有点 linux 思维。
    第 2 条附言  ·  42 天前
    @b2byco
    @mgrddsj
    @ladypxy
    @yg503
    @kome
    @RobinHuuu
    @cowcomic
    @ntedshen
    @huayune
    @xclimbing
    @Ackvincent
    @cnbatch
    @likuku
    @424778940
    @datocp
    @flynaj
    @zhangeric
    @Swimming
    @mie
    @neroxps
    @vopsoft
    @n43635
    @xhcnb
    @sbrdfewxf
    @sheeta
    @shijingshijing
    @hwdq0012
    @zushi000
    @sudo123
    @spongebobsun
    我有新发现,我觉得值得分享。但 V2EX 似乎没有 @本帖所有回复人的功能,所以我挨个 @了。

    在发此帖之前,其中有些方法比如在 PE 下用各种工具修复,在 windows 安装盘使用 bootrec 命令修复我都尝试过了。没有效果。发帖之后,有许多朋友留言使用 DiskGenius 和傲梅助手进行系统迁移,我也照做了。仍然无法启动。

    最后我想到是不是电脑自身的问题,果不其然,把新 ssd 插到家里的电脑就能正常启动了。不能启动的是公司电脑,电脑型号是联想 E98. 11 代平台, 主板的 SSD 对应的接口应该是 PCIE3.0 家里电脑主板是技嘉的,12 代平台,主板的 SSD 对应的接口应该是 PCIE4.0. 新 SSD 是三星的 990EVO PLUS ,支持 PCE4.0 和 PCIE5.0. 但应该向下兼容 3.0 ,只不过会降速。 请各位帮忙分析下,是不是联想这种商业办公电脑,bios 或者其他东西对 ssd 有限制,我暂时没有办法找到另外一块旧的 ssd 相同的型号进行迁移操作系统的测试。
    37 条回复    2025-08-07 18:56:04 +08:00
    b2byco
        1
    b2byco  
       44 天前   ❤️ 1
    找个 windows PE ,DiskGenius ,工具-克隆磁盘,然后用 pe 修复一下引导就好了,然后再去分区拷贝数据盘的内容之类的就行
    mgrddsj
        2
    mgrddsj  
       44 天前 via Android
    个人用过最傻瓜+方便省心的就是傲梅分区助手,系统搬过去新硬盘直接能用,唯一缺点是现在好像要关注它的公众号才能下载
    mgrddsj
        3
    mgrddsj  
       44 天前 via Android
    不想用国产软件的话,Clonezilla 我也用过,是基于 Debian 的备份/迁移专用系统,不过只有 Terminal UI 。曾经试过把一个 Win 10 + Fedora 双系统的 256G 硬盘,整个以镜像文件的方式备份到一个大的移动硬盘,再在装上 512G 新硬盘后复原,复原完直接可以用,双系统都没问题。
    ladypxy
        4
    ladypxy  
       44 天前 via iPhone
    sysprep 命令打包系统,然后 ghost 恢复到新硬盘
    yg503
        5
    yg503  
       44 天前
    既然会用 livecd ,我推荐你试试再生龙
    kome
        6
    kome  
       44 天前
    控制中心 -> backup and restore(windows 7), 选择备份的盘符, 选择备份位置, 做备份就行了(备份后文件为.vhdx).
    做一个 Windows 的安装启动盘, 在安装系统前, 选择修复系统, 然后选择已备份的系统, 可以选择全盘恢复, 也可以选择只恢复系统分区.
    你可以只恢复系统分区, 进入系统后把系统分区扩大就行, 然后挂载另一个分区的 vhdx, 把文件复制出来就行了.
    我在自己的电脑上验证了可行, 但是我的硬件设备是没有变化的, 我想仅仅变更一个硬盘, 应该不涉及硬盘无法驱动等问题.
    RobinHuuu
        7
    RobinHuuu  
       44 天前 via Android
    恢复引导就行了,方法很多
    cowcomic
        8
    cowcomic  
       44 天前
    我好像用的也是傲梅,挺好用的,基本上就是傻瓜操作
    ntedshen
        9
    ntedshen  
       44 天前
    。。。这年头的电脑说真的就是挂个 pe 复制粘贴都能把这事情做完了
    bro 你搁这 linuxlivecd 一顿操作猛如虎。。。
    huayune
        10
    huayune  
       44 天前
    前段时间刚好换硬盘,网上找一路,发现个小兵 U 盘,pe 里面有一个系统迁移的,直接从旧硬盘对拷到新硬盘,注意记一下盘符(后面拆下旧的如果盘符没对上记得改对),完事直接拔掉旧的 把新的换上去就好了, 运行一段时间了系统运行一切正常
    huayune
        11
    huayune  
       44 天前
    我是 512G 固态+1T 固态+1T 机械, 把 512G 直接换成了 2T 固态
    @huayune
    xclimbing
        12
    xclimbing  
       44 天前
    BCD 里记录了硬盘的 GUID 和系统分区的 GUID ,所以系统迁移到新硬盘,一定要更新一下 BCD 文件。楼主这个 DD 方式挺新颖啊,这样多浪费时间啊。如果是我,就按需求将新硬盘分区,然后把旧硬盘上的分区用 DiskGenius 之类软件的分区复制功能复制到新分区,然后修复一下引导(更新 BCD )即可。必要时删除新分区 system 注册表中的:HKLM\System\MountedDevice 下的 C:。
    Ackvincent
        13
    Ackvincent  
       44 天前
    傲梅分区助手是一款免费、专业的无损分区工具。可在不丢失数据的情况下管理您的硬盘,完成分区相关的任何操作。

    可以在不丢失数据的情况下创建、调整大小、移动、合并和 拆分分区。
    在不重新安装的情况下完整安全地将 Windows 系统迁移 到全新的固态硬盘。
    轻松将 MBR 转换为 GPT ,充分利用超过 2TB 磁盘的空间。
    在 Windows PE 下创建可启动媒体 来管理硬盘分区。
    使用擦除磁盘 功能彻底删除磁盘数据,使其不能被恢复,达到较高的数据保密作用。
    支持 Windows 11 、Windows 10 、Windows 8.1 、Windows 8 、Windows 7 。
    https://www.disktool.cn/download.html
    cnbatch
        14
    cnbatch  
       44 天前   ❤️ 2
    既然操作对象是 Windows ,那就不要用 Linux 思维去干这种事
    楼上各位给出的 WinPE 迁移方案都适合,照做就行
    likuku
        15
    likuku  
       44 天前
    一年前我也做了类似的事:
    用 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
        16
    424778940  
       44 天前
    @mgrddsj 不用吧? 难倒你去的假的网站? https://www.disktool.cn/go/download/PAInstall.zip
    424778940
        17
    424778940  
       44 天前
    最傻瓜的办法
    直接 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
        18
    424778940  
       44 天前
    另外补充一点, 有一些 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
        19
    datocp  
       44 天前 via Android
    这种已经很熟练了
    1.用 it 天空 pe 里的 diskgenus 备份 efi 引导分区+c 盘镜像为文件
    2.对新硬盘进行 gpt 分区,复制 efi 分区和系统分区镜像文件和复制数据分区文件到新硬盘?
    这里常见的一个问题,如果双硬盘在线,一不小心重启了,可能导致系统分区,盘符错乱,又得改注册表指定盘符。最好有其它的 3.5 寸/2.5 寸移动硬盘,ssd 移动硬盘,就不需要双硬盘插在电脑上,用 usb 就可以了。
    3.电脑只插新硬盘,恢复 efi+系统分区
    4.bootice ,pe 里自带的图形 bcd 修复工具,找到硬盘主引导设定为 windows 引导+修改 bcd 文件将系统分区指向新硬盘的指定分区。
    flynaj
        20
    flynaj  
       44 天前 via Android
    @b2byco
    @huayune 就是 1 楼这个才是正确方法,dd 了你也启动不了,要改 BCD 文件。
    flynaj
        21
    flynaj  
       44 天前 via Android
    @huayune 还有你这个使用 dd 的 Linux 知识应该是 10 年前的了,在 Linux 下面操作的话,先给新盘分区,efi 直接复制,NTFS 分区用命令 ntfsclone --overwrite /dev/sdc1 /dev/sda1 来复制。修改 BCD 可以用这个脚本 https://github.com/jpz4085/BCD-SYS
    zhangeric
        22
    zhangeric  
       44 天前
    可以进 pe 用 diskgenus 把对应的硬盘直接备份为镜像文件,然后接新盘在还原这个镜像文件,可以选自适应大小,适用于电脑只有一个硬盘位,比较麻烦的就是需要一个比较大的 u 盘或者移动硬盘存储这个镜像文件.
    Swimming
        23
    Swimming  
       44 天前
    diskgenus 不是自带系统迁移功能吗
    mie
        24
    mie  
       44 天前
    ghost 全盘备份,刚把一个 128g 的换到了 500g ,直接还原就行,分区表也不用修复
    neroxps
        25
    neroxps  
       44 天前
    PE 下用傲梅分区助手就行,有个全盘迁移后分区扩容的。无损
    vopsoft
        26
    vopsoft  
       44 天前
    GHOST+1
    系统自带的 Wim 都需要修复分区表 ghost 不用
    另外 drivesnapshot 才是最快(没有之一)
    n43635
        27
    n43635  
       44 天前
    其实最主要还是 EFI 分区信息,新硬盘要修改,其他系统盘数据盘分区直接克隆过去就好
    我自己的的方式是旧的硬盘 EFI 直接不要了,新硬盘直接用 PE 里的“UEFI 引导修复”工具修复就 OK 了傻瓜操作
    xhcnb
        28
    xhcnb  
       44 天前
    PE 下分区克隆, 不要管 EFI 分区, 新硬盘 EFI 分区空着就行
    CD 都克隆后, 修复 UEFI 引导即可
    xhcnb
        29
    xhcnb  
       44 天前
    dd 不一定是最好的, pe 下的磁盘工具也是很 nb 的, linux 下我一般使用 rsync 替代 dd
    1. NTFS 分区克隆, 只会克隆文件, 实际上比 dd 数据量小, 更快
    2. 可以在克隆前划好分区
    3. 元数据会保留
    4. 克隆完成后没有磁盘碎片, 当然现在 ssd 也不关注这个
    sbrdfewxf
        30
    sbrdfewxf  
       44 天前
    DiskGenius 热拷,不光能平移,还能扩盘,不过记得关闭 bit 锁。
    sheeta
        31
    sheeta  
       44 天前
    傲梅,挺好的,用过几次,傻瓜式操作
    shijingshijing
        32
    shijingshijing  
       44 天前
    把两块硬盘挂到一台电脑上,Windows 中使用高版本的 Ghost 克隆,这个是最稳妥的。
    要不就是 U 盘启动 Clonezilla
    mgrddsj
        33
    mgrddsj  
       44 天前 via Android
    @424778940 #16 诶?大概是最近又改回来了?我依稀记得访问的是这个域名,但之前有段时间是要关注微信公众号拿一个码才能用的。
    hwdq0012
        34
    hwdq0012  
       44 天前
    把 d copy 到新硬盘
    把原来的 d 格式化,空间分配给 c
    新硬盘逻辑符改为 d(通常默认就是这样

    复制时 linux 用 rsync
    windows 用 robocopy https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy
    都是多线程复制
    zushi000
        35
    zushi000  
       43 天前 via Android
    太简单了,做个 pe 启动盘,打开分区工具。新硬盘格式化,做成 d 盘,把现在的 d 盘文件复制过去。然后现在的 d 盘删除,把空闲的空间给到 c
    sudo123
        36
    sudo123  
       43 天前
    ghost 就完事
    spongebobsun
        37
    spongebobsun  
       43 天前
    1 、清理下垃圾文件
    2 、dism++ 备份成镜像
    3 、dism++ 恢复镜像到新硬盘
    4 、换上新硬盘

    之前操作过,印象中是这么个步骤
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2556 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 04:21 · PVG 12:21 · LAX 21:21 · JFK 00:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.