升级硬盘,免重装迁移现有UEFI启动的Windows 8

最近准备换系统硬盘,从原有的40G SSD换成120G的 SSD,虽说重装系统本身只需10分钟,但其后的软件安装等等可能会耗去半天的时间,得不偿失,于是打算把现有系统迁移到新硬盘上。
因为一直是UEFI启动,所以这件事变得简单起来。方案有很多种,先介绍一下我的操作过程。

1. 启动其他盘上的Linux系统,我的是Mint,用GParted把新硬盘分区,这里要注意,分区表选择GPT格式,分区一般按以下结构(全部为主分区):

/sda/sda1      300MB     NTFS      hidden,diag         Windows恢复分区

/sda/sda2      100MB     Fat32      boot                       EFI启动分区

/sda/sda3      128MB     无格式     msftres                 Windows保留分区

/sda/sda4      余下容量    NTFS    msftdata               Windows分区

2. 直接用Gparted复制粘贴旧硬盘的分区到新硬盘的对应分区上,Windows保留分区无法复制,基本也不用去理会,一般不会影响Windows本身

3. 拔掉旧硬盘,启动Windows 8的安装盘(UEFI模式,U盘光盘都可),进入修复计算机->高级选项->命令提示符

4. 用diskpart命令找到新硬盘的EFI分区(diskpart> list disk, select disk X, list partition, select partition X), 给它指定一个盘符(assign letter=S)

5. 退出diskpart,cd /d S:EFIMicrosoftBoot,这个目录中有先前硬盘中的启动菜单BCD,直接删掉它(可能是系统+只读+隐藏,需要attrib S:EFIMicrosoftBootBCD -h -r -s)

6. 执行 bcdboot C:Windows /l zh-CN /s S: /f ALL 恢复Windows的启动记录并更新UEFI启动项

7. 重启,一切OK。

总结起来步骤就是 分区、复制每个分区的文件、修复因磁盘Id变更而无法启动的启动菜单,其实不用Linux,只用Windows 8的安装盘就可以做到,但用Gparted更方便些而已。

接下来可能还需要添加其他启动项,修复恢复菜单之类,我还没有深究,待具体操作后再更新本文。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Time limit is exhausted. Please reload CAPTCHA.