接上:
3. 配制安装XP文件SETUPLDR.BIN
如果使用NT引导来安装XP的话,需要修改启动扇区文件,这个新的文件还必须位于根目录,这样很不爽。使用GRLDR可以直接引导SETUPLDR.BIN来安装,但因为我们要用到畸形目录,因此必须要修改这个SETUPLDR.BIN。
使用ultraedit打开$WIN_NT$.~BT里的SETUPLDR.BIN
搜索ntdetect.com 在第一个匹配处将其更名为wxp~1\nd.com
再搜索txtsetup.sif,替换为wxp~1\ts.sif,共8处
搜索$win_nt$.~bt,手动将其替换为$winbt~1,剩余的.~bt在左侧全部填入0补充,总计2处。
由以上操作可以看出,我们可以把ntdetect.com和txtsetup.sif放入WXP~1文件夹,将$win_nt$.~bt更名为$winbt~1。
4. 修改setupdd.sy_文件
要想将U盘根目录的$win_nt$.~bt和$win_nt$.~ls更名,还需要更改setupldr.sy_文件,使用winrar或expand命令解压出setupdd.sys文件,用ultraedit打开。
搜索$win_nt$.~bt,手动将其替换为$winbt~1,剩余的.~bt在左侧全部填入0补充,总计3处。
使用tiny hexer (免费软件,我不知道为什么它能找到,而ultraedit不行)搜索文本 $win_nt$.~bt,查找选项为 Ignore capital, unicode (little endian),(或者用ultraeidt在05D7F0,05D800,05D810)找到$.w.i.n._.n.t.$..~.b.t,手动更改为$.w.i.n.l.s.~.1其余的..L.S在左侧全部以 0补充。
由上可以看出,我们修改了启动文件夹和安装源文件夹。
再使用如下命令极限压缩这个文件:
QUOTE:makecab /v3 /D CompressionType=LZX /D CompressionMemory=21 "文件路径\setupdd.sys"
将这个新形成的setupdd.sy_替换原文件即可。
接下来:
请注意首贴grldr配置文件me的第2个选项,这个选项是必须有的,因为复制完XP安装文件首次重启后,需要从这个选项启动XP系统,因此,我们还必须有NTLDR文件,将这个文件放到WXPE目录,用ultraedit修改它,同修改setupldr.bin一样,将ntdetect.com换为wxp~1\nd.com,再将boot.ini全部替换为wxp~1\bi,共10处。
打开记事本,输入以下内容:
QUOTE:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(1)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetectOK,至此,安装XP所需要修改的文件都改完了。
5. 加入PE启动
大家明白了XP的操作过程,加入PE就是小菜一碟了。
在PE的根目录下,都有一个WXPE文件夹,里面有SETUPLDR.BIN和NTDETECT.COM,另外根目录还有一个winnt.xpe文件,内容为以ramdisk启动PE的配置及PE内核所在路径。修改路径后的内容如下:
QUOTE:
[SetupData]
BootDevice="ramdisk(0)"
BootPath="\WXPE\SYSTEM32\"
OsLoadOptions="/minint /fastdetect /rdexportascd /rdpath=\UTOOL~1\WinPE.IS_"
我们需要把这个winnt.xpe文件也放入WXPE目录,继续修改setupldr.bin,查找winnt.xpe全部替换为wxp~1\w.x共9处。
OK,把winnt.xpe重命名为w.x放入WXPE文件夹就行了。当然了,WINPE.IS_要放入UTOOL目录。
6. 收尾
在UTOOL目录里放入相应的img文件,为了保护安装软件,我将这些软件打包成ISO了,用虚拟光驱加载安装,具体的就不写了,搜索我以前的贴子吧。
最后一步,打开winrar,U盘盘符,将wxpe更名为wxp..\,将UTOOL更名为utool..\,将udata更名为udata..\,将$WIN_NT$.~BT和$WIN_NT$.~LS分别更名为$WINBT..\和$WINLS..\,至此,全部畸形目录搞完了。
什么什么,还差最关键一步?好,补上。
那个undoren.cmd文件,无法使用ren命令将正常目录更名为畸形目录的,好在我们有rename.exe哈哈,用上吧。
将rename.exe放入I386文件夹,同undoren.cmd一样,修改txtsetup.sif文件。
ren_fold.cmd内容
QUOTE:
@echo off
SET USBDRIVE=
SET TAGFILE=\$WINBT~1
:: First Limited Range to Prevent Windows No Drive Alert due to Cardreader
:: For case of Repair Install when Drive not found, than Extended Range and
:: Windows No Drive Alert - Press 4x Continue for Cardreader Drives
FOR %%h IN (C D M N O P Q R S T U V W X Y) DO IF EXIST "%%h:%TAGFILE%" SET USBDRIVE=%%h:
if "%USBDRIVE%" == "" (
FOR %%h IN (C D E F G H I J K L M N O P Q R S T U V W X Y) DO IF EXIST "%%h:%TAGFILE%" SET USBDRIVE=%%h:
)
IF EXIST %usbdrive%\$WINLS~1\$OEM$\$1\nul (
xcopy %usbdrive%\$WINLS~1\$OEM$\$1\*.* "%systemdrive%\" /i /k /e /r /y /h
)
IF EXIST %usbdrive%\$WINLS~1\$OEM$\$$\nul (
xcopy %usbdrive%\$WINLS~1\$OEM$\$$\*.* %systemroot% /i /k /e /r /y /h
)
ren %USBDRIVE%\wxp~1\ts.sif ts.bak
ren %USBDRIVE%\$WINBT~1 WINBT
ren %USBDRIVE%\$WINLS~1 WINLS
exit
undoren.cmd内容
QUOTE:@echo off
SET USBDRIVE=
SET TAGFILE=\WINBT
:: First Limited Range to Prevent Windows No Drive Alert due to Cardreader
:: For case of Repair Install when Drive not found, than Extended Range and
:: Windows No Drive Alert - Press 4x Continue for Cardreader Drives
FOR %%h IN (C D M N O P Q R S T U V W X Y) DO IF EXIST "%%h:%TAGFILE%" SET USBDRIVE=%%h:
if "%USBDRIVE%" == "" (
FOR %%h IN (C D E F G H I J K L M N O P Q R S T U V W X Y) DO IF EXIST "%%h:%TAGFILE%" SET USBDRIVE=%%h:
)
echo %USBDRIVE%
ren %USBDRIVE%\wxp~1\ts.bak ts.sif
rename.exe "%USBDRIVE%\WINBT" %USBDRIVE%\$WINBT.\
rename.exe "%USBDRIVE%\WINLS" %USBDRIVE%\$WINLS.\
exit
要做的工作基本结束了。
还有最最最后一个问题,这样的畸形目录如何访问啊?
开始-运行-U:\目录名~1
即将WIN下目录名最后的.换成~1,可能你还不满意,认为麻烦,那好吧,就是U盘根目录放一个正常的目录,如名为LINK:
右键建立快捷方式,名称为utool.lnk,内容为:%windir%\system32\cmd.exe /c "@echo off&start %cd:~0,3%utool~1",将属性起始位置里的内容删除。
同理还可以建立udata.lnk等文件,这样双击link文件就可以访问相应的畸形目录了。
全文完