看似简单的操作,实际上出现了几点意外,导致本来认为一个下午可以搞定的事情,实际上花了一天时间,各种折腾,还熬夜了,囧~~。

花在等待 Ghost 制作镜像和还原镜像上的时间比较多,一次操作在半小时到一个小时的样子。

背景

现状

  • 有两台电脑,操作系统均安装到一块固态硬盘上,每台电脑的固态硬盘为唯一启动盘。
  • 两块固态硬盘都只有一个分区,一块是容量为 250G,记为硬盘 A,对应电脑 A,另外一块容量 500G,记为硬盘 B,对应电脑 B。
  • 由于两台电脑定位不同,安装的软件不一样,C 盘空间占用情况差距很大。

需求

调换两块固态硬盘,即将硬盘 A 挂到电脑 B 上,将硬盘 B 挂到电脑 A 上,安装好的操作系统要互换。

需要达到的效果

硬盘调换之后,之前安装好的操作系统和相关软件完全不变,从使用角度看,唯一变的只有 C 盘空间。

我的操作

  1. 将两块硬盘都整个 Ghost 到一个镜像文件(Disk -> To Image)。
    • 期间,硬盘 A 在镜像的时候,有提示错误,大概是说有系统文件,需要运行 checkdisk 之类的,我没有继续,启动老毛桃增强版操作系统,将 c 盘的虚拟内存页面文件 pagefile.sys 和睡眠文件 Hiberfil.sys 删除之后再试,不再有错误提示。这两个文件占用了 20G 左右的空间。
  2. 将硬盘 A 的镜像文件恢复到硬盘 B (Disk -> From Image)。
  3. 将硬盘 B 挂到电脑 A(原来硬盘 A 所在的电脑)上,启动,提示无法找到可启动的操作系统。

    1
    2
    3
    4
    5
    6
    你的电脑/设备需要修复
    无法加载应用程序或操作系统,原因是所需文件丢失或包含错误。
    文件:\windows\system32\winload.efi
    错误代码:0xc000000e

    你需要使用恢复工具...

  4. 我用老毛桃工具,启动恢复,提示恢复成功,但是问题依旧。
    • 在这一步,我记得当时是挂了两块可启动硬盘,当时还可以选择恢复哪块硬盘上的操作系统。
    • 另外,记得有一次硬盘 B 在恢复了硬盘 A 的镜像文件后,为了测试,直接在电脑 B 上启动,能正常启动了的,当时还挂着老毛桃工具 U 盘,但是拿到电脑 A 上,启动时还是报上面的错误。
  5. 用 Ghost 软件打开硬盘 B 的镜像文件,把相应目录下的 winload.efi 文件,复制到硬盘 B 的 c 盘同样的目录下覆盖原来的文件,启动,还是一样的错误提示。
  6. 于是我用分区到分区的镜像方式(Partition -> To Partition),将硬盘 A 的 C 盘(唯一的活动分区)镜像到硬盘 B 的 C 盘(也是唯一的活动分区)。还是同样的启动错误。
  7. 将硬盘 B 的整个硬盘镜像恢复回硬盘 B,在原来的电脑(即电脑 B)上启动,竟然还是报这个错误,用启动恢复工具恢复之后,恢复如初。看来整个硬盘恢复后还需要启动恢复操作,于是我想到,在不破坏原来启动分区(为隐藏分区)的情况下操作,于是删除硬盘镜像,制作了硬盘 B 的 C 盘的镜像备用。
    • 这次使用恢复工具时,只挂了一块带有操作系统的硬盘,之前恢复后启动报错,不知道是不是因为挂了两块有操作系统的硬盘有关。

成功启动的操作

  1. 我把硬盘 B 的那块固态硬盘所有分区删除,重新分一个区,选 GPT/GUID 格式,其余全部默认。
  2. 通过分区到分区的方式镜像硬盘 A 的 C 盘到硬盘 B 的 C 盘,恢复启动,然后挂到电脑 A 上,提示需要修复,按提示操作之后,修复并重启之后,出现了久违的登录界面,这期间大概要花三分钟的样子吧。
  3. 电脑 B 的恢复,没有删除分区,只是将硬盘 B 的 C 盘镜像恢复到硬盘 A 的 C 盘,然后启动,一次成功,没有经过启动修复过程。

总结

  1. 电脑 A 在恢复镜像后第一次启动有一个修复过程,可能跟我的操作有关,在镜像之前,我把虚拟内存文件由 C 盘设置到了 D 盘(C 盘残留了 pagefile.sys 和 Hiberfil.sys),设置之后没有重启而是直接关机了,也就是说,这个设置其实还没有生效,需要在下一次启动之后生效。
  2. 启动修复时,挂载了两块有操作系统的硬盘,就是本文提到的硬盘 A 和硬盘 B ,导致修复后启动不成功,不过,这一点不是很确定。
  3. 整个硬盘镜像,恢复时用默认值,导致启动有问题。理论上,应该不会出现这样的问题(曾经这样操作过,直接一步成功,不过已经过去了很多年,Ghost 软件以及操作系统都不一样了),也许是我操作不当,比如在恢复启动的时候,应该只挂载一块硬盘。如果这样能成功的话,应该能节省我非常多的时间,以后如果再作类似的操作,可以再次尝试一下。
  4. 应该做好重装操作系统的准备。这次操作,只制作了老毛桃工具 U 盘,如果期间镜像备份没做好或者有问题,现有硬盘又启动不了,就只能重装操作系统了,但我还没有下载 windows 10 的安装镜像文件。
  5. 远远超出了我的预期时间,本来认为先制作硬盘 B 的整个硬盘镜像到文件 A.gho,然后从硬盘 A 直接整个硬盘 Ghost 到硬盘 B ,最后恢复镜像文件 A.gho 到硬盘 A,操作系统层面的操作就完事儿的。
  6. 一件我们认为简单的事,哪怕做过,也很有可能因为存在某些我们考虑不到的情况而完全背离我们的经验,从而导致超出我们预期的情况发生,所以,要提前做好最坏的打算。
  7. 这件事,对应到软件开发,非常相似。
    • 开发人员在评估工作量的时候,往往只是凭借自己的工作经验,即便有意预留出三分一的时间,也经常出现实际工作量要远远大于评估的工作量。
    • 这很正常,所以,工作量的评估,也是需要不断完善的,是需要分阶段的,不能一下子说死,必须留有余地。好象扯远了~~