2007年3月14日星期三

转移系统记(下)

  新硬盘插上电脑后,启动显示Load OS Error。解决的方法深山红叶WinPE里就有,可惜那时没看到,白白费了很多工夫,走了很多弯路。(解决方法:用软盘启动电脑,以diskedit /m /w模式运行;按Alt+P, 不做任何修改,直接回车;按F2以16进制方式查看,把000001B0 地址行的倒数第二个16进制数值改为80。当然软盘已经被淘汰了,可以用U盘或者WinPE。原因是硬盘分区表中的活动分区标志80H被改成00H以外的其它数值(如被改成FFH)。回想起来复制系统的时候新硬盘的盘符被分配为L、M、N、O而不是C,D,E,F,应该就是问题的起因。)
  当时不知道,以为是SATA(新硬盘)和IDE(光驱)混插的问题,因为光驱一个月放假前还好好的,读不出盘是没有读盘动作而不是红灯猛亮,盘体高速旋转与空气摩擦发出哗哗声的情况。于是想修复安装算了。(又借来光驱)
  修复安装,全新安装都可以分两步,第一步是复制一些文件到硬盘然后重启,第二步才是真的安装。一个灵异的问题发生了:第一步完了,重启之后不是进入第二步而是再来一次第一步,试了几次,又换了盘,仍然如此。又想到可能是SATA和IDE混插问题,死马当活马医,Bios中屏蔽光驱,终于行了……
  不过装的时候比修复安装多复制了一些文件,还要输入CD-Key(修复安装一般是不需要的),估计是由于之前不成功,多次修复安装导致。(更正:修复安装都是需要的)

  装好了,困难才刚刚开始。第一次花了几分钟才进了系统,打开资源管理器一看,盘符是L、M、N、O……微软真是太有才了,连这都还记得……
  由于盘符不是C、D、E、F,快捷方式全都没用了,而且系统启动慢多了。后三个盘的盘符在控制面版的管理工具里就可以改,启动盘就不行了。想了无数的办法,去掉启动程序是必然的了(因为在其他环境里盘符都是C、D、E、F,结合启动速度慢,估计是启动时系统又把盘符改成L,M,N,O),但是没有效果。WinPE光盘启动,尝试了里面的磁盘管理软件,没用。
  WinPE里有个ERD2003可以修改硬盘上系统的设置,改盘符没用,试过修改D盘为活动分区然后复制系统到D盘再启动,无法启动。可能是要把D盘再设为主盘才行,不过没敢试,怕破坏数据。只有先回到原来的状态。
  山重水复疑无路,柳暗花明又一村。google找到了微软的文章:《在Windows 中如何恢复系统/启动驱动器的驱动器号》。简单说来就是修改注册表中的HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices,把\DosDevices\C:这些盘符改成想要的然后重启。我完全照上面说的做了,然而重启之后居然进不了系统(准确地说是卡在进入前夕)……微软岂只有才,简直是天下之才合计十斗而独占其八。
  不过考虑到盘符都改好了,这次再修复安装应该就没问题了。修复安装确实能正常进入系统,盘符也对了。不过,这一切还没有结束……

  重装系统后第一件事该做什么?答曰:打补丁。上Windows Update网站,被要求打补丁前先安装Windows Installer 3.1。灵异的问题又出现了:怎么都装不上(而且安装失败也要重启,此处省略XX次frustrating的失败经历)。期间想看点电影轻松一下,又发现Windows Media Player工作不正常(这倒在意料之中,毕竟原来版本是11,重装降回9会冲突),就连在控制面版里卸载都不成功。实在对微软佩服得五体投地。幸好Windows目录里专门有个WMP11的卸载文件夹,成功卸载后再装上去,可以正常工作了。
  回到Windows Installer上来。手工下载安装文件安装,提示拒绝访问。一开始怀疑是因为某些已装的更新,全部卸载后重试,仍然不行。值得一提的是这个安装失败会立即强制重启,比上次的更甚……又卸载掉IIS和.Net Framework,仍然不行。尝试卸载Windows Installer,但修复安装没有它的卸载……弄了个Windows Install Clean Up,据说可以卸载Windows Installer,但只看到可以卸载通过Windows Installer安装的其他程序……
  上网搜索兼自己摸索后如此解决:进Dos重命名C:\windows\system32\下的msiexec.exe、msi.dll、msihnd.dll(原来拒绝访问的是这几个文件),重启后安装,装完再把它们改回原来的名字。这里再次膜拜一下微软,安装失败的log我看过,说是注册表写入失败。如果能够说明是这几个文件拒绝访问,我想也不至于费那么多工夫。

  到目前为止没有再出现别的问题,可以认为系统转移完毕。如果再出现问题,我会继续更新。

补充:复制系统到新硬盘最简单的方法

  后来又试过西数的硬盘维护工具Western Digital Lifeguard,分区/格式化有两个选项:

1.Add the drive as an additional storage device(把此硬盘作为附加的存储设备)
2.Add the Drive as the new boot device(把此硬盘作为新的启动设备)

选第2个的话,分区/格式化以后会把C盘的所有文件复制过去,连原来在windows中不能复制的ntuser.dat等文件都可以。(这个软件是运行在windows环境的,真不知他们用了什么方法)。这个过程之后会自动关机,然后新硬盘就可以启动了。不过这个程序不会复制windows/installer这个文件夹,会导致Office无法使用等问题,需要自己手动复制。

没有评论: