朋友的笔记本是在中东买的Toshiba Satellite U300-111,预装的是英文版的Vista系统,回国后想改装为中文版的Windows XP系统,但屡屡失败,所以找我瞧瞧。我本以为不是什么难事,不就是装一个系统而已么!!
一、怀疑分区表
本本拿来后我瞧了一下,硬盘160G,分了两个NTFS的分区,我没有直接插入光盘安装Windows XP,而是先在DOS下用Partion Magic看看其分区情况,谁料一进Partion Magic就提示分区错误"Error…",且不能做任何操作。无奈之下,只好重新启进入Vista,奇怪的是刚刚的D分区这个时候也不见了,只有Vista的系统分区在那。我估计是分区表出了问题,在Dos下用Disk Man察看分区表,貌似这个软件不识别硬盘似的,一运行软件就处于死机状态。用KV3000倒是能够进去,果然发现分区表有问题,按F10进去测试就提示分区表有错误,按F6进入第一扇区发现DPT只有48字节(实际应该有64字节),且搜索不到逻辑磁盘D盘。结合前面的现象,根据对分区表的了解,初步判断是分区表出了问题(后来发现,用随机附带的还原光盘还原到原始的Vista系统后进入KV3000仍然发现DPT只有48字节,但Vista能运行正常,所以这个问题我还没有搞清楚,不知道是否SATA与IDE有区别,但以前接触的SCSI硬盘份区表都是统一的规则)。
既然分区表出了问题,那就重构分区表表,将DPT清0,然后用Fdisk / mbr去重建,但这么做还是不成,Partion Magic还是不认这个分区。没办法,可能只有手工计算来恢复分区表了,虽然以前多次成功手工处理过分区表,但过程十分繁杂和痛苦!!况且这些具体细节的知识也忘得差不多了。在网上搜了一些分区表相关的文章,边看边回忆,没有耐心和经验的人确实是像看天书一样,幸亏大学的时候就摆弄过这个东西了(等有时间我将分区表的知识按照自己的整理一下,写个小程序来自动分析分区信息,免得每次一个一个的算,另外有个工具还不错"进制转换V2.1.exe")。正要硬着头皮开始计算分区信息的时候,不小心发现第7扇区里有内容,且很像MBR的东西,于是我试着将它恢复到第一扇区,重新启动,再进Partion Magic,这次它能识别分区了,意外的惊喜,我不用去算那些复杂的二进制数据了。接着我就用Partion Magic对硬盘重新分区和格式化。
接下来的我将XP安装盘插入系统,开始安装XP系统,开始一切正常,但当文件复制完毕准备安装的时候,提示"安装程序找不到磁盘驱动器",然后就继续不下去了。莫非是NTFS分区的问题?XP是支持NTFS分区的啊!我把所有分区都改成Fat32格式,再安装,依旧找不到硬盘驱动器。
二、基本确定是缺少SATA驱动的问题
在网上搜寻一番,原来是硬盘SATA接口的问题。普通XP安装盘是不带SATA驱动程序的,所以安装的时候是不能识别硬盘的,所以找不到磁盘驱动器,而在IDE接口方式下不存在这个问题。一般在BIOS有个设置SATA接口和IDE接口的开关,但这该死的本本是简版的BIOS,不提供这个开关,所以只能用SATA接口方式了。当然,在安装XP过程中按F6加载SATA驱动也可以,但前提是需要有软驱或基于USB的扩展软驱,而这些我手里都没有。最后唯一可行的办法就是将SATA驱动程序集成到XP的安装程序中了。
网上倒有很多带SATA的Windows XP安装文件可供下载,我下载了两个,以为下载后直接安装就行。苦于没有刻录机,所以就想在VISTA下将安装文件COPY到电脑的D盘下,然后在DOS下运行D盘内的安装程序"i386/winnt"。但还原后的Vista下的两个盘都是NTFS分区的,且Vista下提供转换到FAT32的功能,Partion Magic又认为分区有Error。搜索一番,找到一个工具AcronisDiskDirector10(下载,SN: KNMKZ-QKLE5-H5BE3-S2S5Q-7WF3E),分区功能非常强大,在Vista下安装后能给分区转换格式,我将D盘转换为FAT32格式,将下载的带SATA的XP安装文件COPY到D盘,然后在DOS下运行安装程序,本以为能够安装了,谁知复制文件完毕重新启动时还未进入安装界面就开始出现蓝屏。我也尝试过将纯净的XP ghost文件还原到C盘,启动时也出现蓝屏。我估计是SATA驱动程序不匹配造成的。
三、制作带对应SATA驱动程序的Windows XP安装盘
看来还是只有自己将SATA集成到Windows XP安装程序里了。从文章http://forums.computers.toshiba-europe.com/forums/message.jspa?messageID=106943中得到了很多启发,首先从http://eu.computers.toshiba-europe.com/innovation/download_drivers_bios.jsp?service=EU网站下载SATA驱动程序"stormng-20070828123444.zip",解压缩后"Matrix Storage Manager/F6flpy/ICH8M_32bit"下的文件就是我们要的SATA驱动程序(如果是ICH7M就找对应的文件夹)。在找不到驱动的情况下,可以用驱动精灵在VISTA下提取驱动或者参考http://hi.baidu.com/squalt/blog/item/d72db2516324921c367abe1c.html的做法。
至于如何驱动集成到XP安装程序,可以用软件集成,也可以手工集成。如果用软件集成,可以使用一个比较便捷的工具nLite,在集成驱动程序的同时可以生成ISO镜像文件,http://195.182.196.33/kb0/TSB85017Z0000R01.htm里说得比较详细。如果手工集成,则需要修改I386/txtsetup.sif等文件,文章《Windows XP SP2集成SATA驱动的改进方法》http://lsdn.lynnstudio.net/improve-on-making-windows-xp-setupcd-with-sata-driver-integrated/有比较深入的探讨。
集成完驱动程序后,一开始为免去刻录的麻烦,我把安装程序copy到硬盘上,直接运行硬盘上的winnt来安装,但出现过"不能将文件复制到c:/$WIN_NT$.~LS/I386/i386/NLDRV/001,setup was unable to create the following directory on the target drive"的错误,或者出现"找不到CD安装盘"的错误。将安装程序刻录到CD后再安装就不会出现错误了。另外虽然nLite自带了制作带引导程序的镜像文件的功能,UltraISO也是一个不错的制作ISO的工具。
四、XP系统更新的问题
安装完XP系统后,本来想启用自动更新安装一些补丁的,但更新"用于后台智能传送服务(BITS) 2.0 和WinHTTP 5.1 的更新程序"时总是安装不上,安装SP2补丁也总提示"因为安装在您的系统上的语言和更新的语言不同"。关于语言问题,http://www.2hand.cn/article.asp?id=148阐述得比较好,与HKEY_LOCAL_MACHINE//SYSTEM//ControlSet001//Control//Nls//Language下Install与DefaultLanguage的值有关(健值1004-中文-新加坡、健值0804-中文-中国,健值0409-英文-美国)。
自动更新时无意中安装了微软验证正版的补丁,重启后提示cd key无效,不让进入系统,想了很多办法都无效,只好重新刻录一张带SP2 的安装盘,同时网上找了些Windows的序列号http://hi.baidu.com/wb_zb/blog/item/513eee32703d2345ac4b5f2d.html(列举两个HCQ9D-TVCWX-X9QRG-J4B2Y-GR2TT,T72KM-6GWBP-GX7TD-CXFT2-7WT2B)。
五、安装驱动相关问题
安装完系统后,接下来是安装驱动程序,驱动程序可以在http://eu.computers.toshiba-europe.com/innovation/download_drivers_bios.jsp?service=EU网站下载。但安装完驱动程序后发现系统仍不能识别USB,终于找到http://www.howtogeek.com/forum/topic/usb-root-hub-not-recognized这篇文章,在硬件管理里将带感叹号的"USB Root hub"全部删除后重新启动即可。
遇到的另外一个问题是系统关闭时总提示"结束程序 Sample",经参考文章http://www.computing.net/answers/windows-xp/ending-programsample-on-shutdown/149783.html,卸载驱动"Intel PROset"就OK了。