记录一个无聊的实验

过年前后,做了一个无聊的实验。之前的一块硬盘上有一份 Windows XP,系统分区的盘符阴差阳错不是 C 而是 E。突然想实践一下,如何能把 E 纠偏回 C。

为了不破坏原始副本,老夫另找了一块小硬盘,上面原来也是一份 Windows XP,直接把所有文件删除清空,然后把 E 的那份用 DiskGenius 采用克隆分区-复制所有文件的方式克隆了一份过来。

然后,又做了这些工作:

  1. 打开 boot.ini,把引导命令行内的分区编号调整正确;
  2. 用 PE 引导后,到注册表里把 MountedDevices 里的盘符分配调整正确;
  3. 在 PE 里,把目标系统 \Windows\System32\config 下的 SYSTEMSOFTWARE(后来还追加了 DEFAULT)这几个注册表单元文件加载进来,将其中所有的路径相关的键值中的 E 替换成了 C

然后拔除 PE 引导盘,尝试从硬盘引导。

先说结果:这份手工处理后的 Windows XP 处在一种非常奇特的状态下。直接引导会失败,而且其失败非常彻底,既不显示什么 Operating system missing,也不显示什么 NTLDR not found,过了 BIOS 阶段直接就是黑屏,字符界面下一个插入提示符在左上角孤单地闪烁,不再有任何后续。

使用 bootice 工具,对 MBR、PBR,分区激活状态等均进行过修复,无果;NTLDR 和 ntdetect.com 也重新覆盖过,无果。而且按照理解,如果 NTLDR 被加载起来后出错的话,好歹应该有点提示信息才对的,然而什么都没有。看前面,黑洞洞。

那么,前面提到的“奇特”又何指呢?是因为在某次用 PE 盘操作时,引导菜单上误选了 PE 自带的“从本机硬盘启动”功能,发现 PE 竟然可以把 Window XP 成功引导起来,而且,嘿嘿,系统盘确实就是 C 了,老夫改的相当全面完整,系统中除了少数快捷方式引用还是 E 之外,功能一切正常。

哪位大神指点一下,它自身不能正常引导的可能性?

更新

这个问题在 Google 上搜索爬帖,其实还是有不少人遇到的,可以参看下图。

加上前些时也并不是没有搜过,所以一度绝望,接近放弃了。BUUUUUT,在最后的关头——真的是最后关头,因为已经决定看完这最后一个帖子就先搁置了——没想到迎来了转机。帖子地址是 https://forums.tomshardware.com/threads/windows-xp-boots-to-black-screen-blinking-cursor.3627870/。作者在主帖中说的,他自己是个老鸟,曾经经受几百台电脑的 Windows XP 系统,也遇到了跟老夫同样的问题,而且也是,已经鼓捣了好几天而没有进展。但在 4 楼的追帖里,他说自己把问题解决了。

老夫把刚刚关机收起来的电脑又打开,照猫画虎,果然也获成功。使用的工具是老朋友 bootice,对象也是老朋友 PBR,但这里比较 tricky 的地方在于,PBR 不能让 bootice 安装直觉上 Windows XP 所对应的 NTLDR 那个版本的,而要安装更新的 BOOTMGR 那个版本的。做了这个调整后,果然如作者以及成龙大哥所说,duang,Windows XP 可以引导了!

这份 Windows XP 还有一个怪异的地方需要记录一下。当使用 PE 将之引导成功后,系统中原有的 X1400 显卡驱动必然导致蓝屏,老夫是多次经由 PE 引导至安全模式下才找到原因的,就把 X1400 的驱动卸载掉了。但是再次引导进入的话,系统会提示找到新硬件(当驱动卸载不干净时甚至是直接更新),这时如果更新驱动,就会立即再次蓝屏。然而当修复 PBR 成功后,正常引导系统,将显卡驱动更新正常,则不会蓝屏。

发表回复

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