移动XP的新情况

我的WINXP移动版,也就是装在移动硬盘上的XP。在应用到我的新电脑(联想LENOVO G455A M320)时,发生了新的情况。

本来,移动的XP应该是,不论在哪里,插到新电脑上,一用USB启动,就自动进入到系统中,这样我不论在什么地方,都可以使用我原来的系统,最熟悉的系统,不用担心要同步文档配置啥的。而且这个绝对不是WINPE能比的,WINPE能在任何电脑上启动XP,但它只是用于维护和简单的使用。而移动版XP的功能是完整的,跟装在机箱内部硬盘的XP一样的功能。

移动的理想是美好的,现实是,在遇到全新的硬件时,它不一定能启动启来,可能发生BSOD 0x000007b错误。在G455A上就遇到了。

由于这个笔记本没有PCI Express Card接口,无法用我高价买的express 1394卡进行kernel debugging。它也没有串口,无法用串口kernel debuging. XP不支持USB kernel debugging, 就算换到vista或win7, 估计ehci的usb debug port也没有导出(有没有导出纯粹看运气,厂商一般不会故意导出)。总而言之,kernel debugging来诊断为什么从USB移动硬盘上启动不了,是没戏了。只能瞎子乱摸了。

说说最后的成果:
1.  HKLM\SYSTEM\MountedDevices下的值 \DosDevice\C: 必须删掉,换了硬件后,后面的二进制可能变了,不删掉此项,可能导致C盘不能挂载,从而发生蓝屏。把此功能加到移动XP的recovery module中。
2. 需要copy安装盘安装时生成的 HKLM\SYSTEM\ControlSet001\Enum\PCI 全目录。由于我在recovery module中copy的是winpe的。跟安装盘的setupldr.bin生成的PCI信息有些差别,导致不能启动。要彻底解决,必须基于安装盘而不是PE重写recovery mode。不过我没有时间搞这玩意儿了。而且接下来可能要研究移动版win7而不是XP了,所以…算了吧。

再说说过程:

由于只能瞎子乱撞的试验,最开始试了很多次都成功不了。后来还是想到,重头再来,在机器上的主硬盘上新装一个全新的XP,先不装驱动,为了省时间,反正能登录进去的XP就行了。然后改注册表重启,使得用winobj看arcnames的时候,可以看到插上电脑的USB移动硬盘的记录。看到后说明,这份COPY的XP已经可以从USB移动硬盘启动。

然后,有了一个成功的版本,也有了一个失败的版本,就让它们不断的逼近吧。这里又出了一个问题:方案上,可以用二分法快速逼近找出问题的关键,也可以用经验为主的方式进行重点排查,我选择了后者,尝试重启若干次,无果。 只好往第一种方法偏,最终发现了1和2这两个结论。少一个也不行。

我以前碰到的电脑,尝试了好多种硬件,都发现只需要COPY WINPE的PCI信息就可以修复成功启动了,但现在这电脑非得要安装时产生的。不知道是不是新硬件搞出的新脾气。

移动版XP以后也没有太大的研究价值了,希望移动版的WIN7会更容易配置。不过VISTA/WIN7的boot配置就够麻烦的了,还是boot.ini来得简洁直观。

我在一些论坛上说移动的操作系统时,总要被人用WIN  PE来拍砖。 其实移动OS是用来替换平时工作学习娱乐所用的OS的,跟WINPE主要用于维护是十分的不同。

你需要背着笔记本从家里到公司,或从宿舍到实验室吗,或者带着它从A地出差到B地吗?如果你在两处都有电脑,用移动的OS肯定好过背一台电脑。现代社会在目标地找或借一台电脑已经不难了,背个硬盘相比于背台笔记本,那肯定是爽了很多。

你需要同步在家里电脑和公司电脑上产生的不同的内容吗?如果用了移动的OS,那所有的文档设置和生产出来的文件都已经在移动硬盘上同步了,根本没有合并和版本选择的烦恼。

LINUX是很容易做成移动的OS的,微软则则不知是有意还是无意制造了一些烦恼,让你的WIN不能在移动硬盘上启动任何一台电脑,只是提供了一个用于维护的WINPE。还好XP和WIN7都是可以做成移动系统的。前者我已经成功了,后者,在网上能找到有些人的成功记录,估计应该不会太难实现。待到有空时,再搞个500G的移动硬盘,试试移动WIN7了。

此条目发表在boot分类目录。将固定链接加入收藏夹。

发表评论

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

*