-
尝试把windows xp装到移动硬盘上,一些情况
Posted on 十二月 28th, 2008 1 comment首先这个windows xp绝对不是win pe,PE就不用说了,放到U盘或移动硬盘上很容易。
试了把原版XP装到移动硬盘上,快成功了,以下是一些有意思的问题或情况:
1. 有的驱动会出问题,比如我最初在x200上实现装到移动硬盘,后来移到T43再移到台机。 移到台机发现一个有意思的蓝屏,查了一下是intelppm.sys引起的。而这个.sys是 intel cpu的驱动程序。它里面调用了rdmsr读寄存器,换成amd cpu它这一读就异常了intel 又没处理这个异常,就蓝屏了。其实它完全可以在driverentry里调用cpuid判断
一下是不是自己的CPU,不是就return fail,这样就不会有问题了。这个驱动算是写得不好的。这个问题的解决方案就是把intelppm设为手动运行。(SYSTEM_START改为DEMAND_START)。还好CPU的驱动不重要,不装都没事。
2. 写得好点的驱动会判断设备存不存在或对不对,这就带来另一个问题,降低了win的启动速度。它很可能向设备发送一条命令,然后等待响应,可能要等到超时才发现没有设备。在移动硬盘上启动xp,启动画面可能要转9圈。比专为一套硬件安装的要慢一点。此外,在多台机器启动后安装了多个驱动,为了各处启动本身驱动要装得多,也导致变慢。不过还好,不是很慢。影响不大。3. 2导致的另一个结果是,很多驱动启动失败(ms的驱动跟win32 services一样是以服务形式安装在注册表)。这样启动完后进入windows一看事件查看器,一堆的红叉叉。
4. 蓝屏是个很好的东西,内核发现什么不对就调用bugcheck蓝屏。这样我就可以根据它来查找和解决原因。这样蓝屏了无数次后终于实现了可在三台机器都启动。最难查的问题就是没有错误提示的东西。比如我在台机上启动后发现xp的主题出不来,窗口发白。手动在桌面右键那里修改一下就出主题了。这个问题就查不了,没有地方报错,估计只能每次这样手动调了。
5. windows好像还挺聪明的,我的移动硬盘的第一分区只剩下2G左右空间,它启动后很智能的把pagefile放到机器自带硬盘的主分区去了(即平时的C盘)。
-
winpe进程启动顺序
Posted on 十二月 27th, 2008 No comments想用WINPE来做点事情,深山红叶里有个很好的迷你PE盘。只有一点点文件,才几十M。
用windbg调了一下进程启动顺序,发现如下:
首先内核创建第一个用户进程 smss.exe
后来smss.exe创建 csrss.exe
再后 csrss.exe创建winlogon.exe
winlogon创建services.exe, lsass.exe , pelogon.exe等。
如下图:
smss -> csrss.exe
-> winlogon.exe -> services.exe -setup
-> X:\WXPE\system32\lsass.exe -setup
-> PELOGON.EXE PECMD.EXE LOAD %SystemRoot%\SYSTEM32\PECMD.INI => pecmd.exe => showdrive.exe因为smss和csrss是native应用程序,而winlogon开始是win32子系统程序,因此,如果想要做点事的话,还是替换winlogon.exe比较好。这样编程方便。
-
又被HM阴了。
Posted on 十二月 4th, 2008 No comments晕死,经常偷偷摸摸改我的php.ini,这不几天没上又http 500 error了。
extension_dir = “/a/b/c/d/e/f” 是默认值,经常会替换我的
extension_dir = “/m/n/o/p”
另外,php5模式可以识别
extension=/m/n/o/p/gmp.so
而如果切换到 fcgi模式,那个程序笨死了,会找 /a/b/c/d/e/f//m/n/o/p/gmp.so
当然找不到,就500了。
因此要想个办法,既支持 fcgi, 又支持php5模式,做最大的兼容,达到强大的鲁棒性。
绝对路径指 定 extension已不可能,只好换成相对路径。
在我的p目录下建x目录,再在x下建y软链接指向 /m/n/o/p
这样 /m/n/o/p/x/y 与 /m/n/o/p就是一回事了,同时这样也是6层目录,与默认值一致。
把extension那句改为:
extension = ../../../../../../m/n/o/p/gmp.so
这样,不论是不是偷偷摸摸换掉我的 extension_dir 这一句,相对加载时都是先上6层目录,再从头找gmp.so。
测试了一下,fcgi模式和php5模式都兼容。
收工。


