|
|
最近看到论坛里面关于免软驱光驱安装原版XP的讨论很热烈,鉴于OEM版XP也可以认为是一种原版XP,而且实用价值更高。但是这种XP大多数都有一个Bug,并不适合直接应用这种方法直接安装,故发此文。文中方法在虚拟机和真实机器中测试通过。
现象:
大多数OEM版本的XP,包括Lenovo、DELL和清华同方的SP1、SP2或SP3原厂OEM XP盘,在光盘启动时按F6加载软盘上面的驱动的情况下,在文本模式安装程序开始复制软盘上面的驱动文件时出错。像这样:
原因:
OEM版一般会修改安装盘中的\i386\winnt.sif文件,加入“OEMPreinstall=Yes”一句,这句的本意是让安装程序复制光盘\$OEM$\目录中部分内容的。但是加入这一句后就会导致文本安装过程中复制载SATA/SCSI驱动出错。
解决办法:
修改OEM版光盘,回避导致出错的语句,同时利用脚本实现那一句本应完成的功能:
1.Winnt.sif文件中OEMPreinstall=Yes参数修改成OEMPreinstall=NO或者空缺
2.在\$OEM$\下建立一个CMD文件,这里命名为OemPreinstall.CMD,内容如下:- @ECHO OFF
- SETLOCAL ENABLEEXTENSIONS
- FOR %%? IN (C D E F G H I J K L M N O P Q R S T U V W X Y Z) DO (
- IF /I "%%?:" NEQ "%SYSTEMDRIVE%" CALL :SUB "%%?:" &&GOTO START)
- GOTO ENDIT
- :START
- IF EXIST %MYOEM%\$1 XCOPY %MYOEM%\$1 %SYSTEMDRIVE%\ /S/I/Q/Y >NUL
- IF EXIST %MYOEM%\$$ XCOPY %MYOEM%\$$ %SYSTEMROOT% /S/I/Q/Y >NUL
- IF EXIST %MYOEM%\$Docs XCOPY %MYOEM%\$Docs "%ALLUSERSPROFILE%\.." /S/I/Q/Y >NUL
- IF EXIST %MYOEM%\$Progs XCOPY %MYOEM%\$Progs %PROGRAMFILES% /S/I/Q/Y >NUL
- :ENDIT
- ENDLOCAL &GOTO :EOF
- :SUB
- IF NOT EXIST %~1\$OEM$ EXIT/B 1
- SET "MYOEM=%~1\$OEM$"
- EXIT/B 0
复制代码 3.建立\$OEM$\CMDLINS.TXT文件,加入以下内容- [COMMANDS]
- "OemPreinstall.cmd"
复制代码 当然这里要指出使用这个方法导致了OemPnpDriverPath参数失效,所以并不适合类似OEM驱动的自动加载。这里会有人问,那么如果恰好在需要安装OEM驱动的情况下有没有办法解决这个F6冲突问题呢?答案是肯定的,利用Txtsetup.sif文件的复制功能.至此问题完全解决
[ 本帖最后由 wangjg 于 2009-11-29 18:09 编辑 ] |
|