无忧启动论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 101165|回复: 214

[3楼方法最简单]U盘安装XP方法阐述&打造安全维护U盘

  [复制链接]
发表于 2009-3-10 11:05:31 | 显示全部楼层 |阅读模式
最简单的方法见3楼
==
忘记在I386目录里放rename.exe了,现在补上 Rename.rar (34.84 KB, 下载次数: 1309)

MkMigrateInf2.rar

758 Bytes, 下载次数: 988

发表于 2009-3-10 11:14:33 | 显示全部楼层
不好意思,此楼占用了。

使用附件bt_folder4.cmd来制作启动组文件。

注:此方法无论是removable或fixed盘都可以用来安装XP,什么文件都不用修改,根本不存在盘符错乱和修改boot.ini文件等等问题。

本人已经测试成功
===
如果使用移动硬盘来安装XP,或者使用FIXED类型U盘来安装XP,不能像REMOVABLE类型U盘来安装XP,因为移动硬盘启动后,其本身会被认为第一内置硬盘,这样,XP的启动文件都会安装到这个盘上,并且真正的内置硬盘的盘符会为D(假设只有一块内置硬盘)。
为了解决这个问题,外国鬼子开发了dummy.sys驱动,加入它,可以使FIXED类型的盘变成REMOVABLE的,这样,就可以像以上方法安装XP了。

这里,我们淘汰这种安装方法,因为太麻烦,JACLAZ研究小组发现了更好的使用移动硬盘安装XP的方法。在原理不变的情况下,我对其进行“改进”。

先说原理:

可能有的人打开了我首贴中提到的这个文章:软盘启动后从NTFS分区上读取安装源文件安装Windows2000攻略。里面有这样内容:

[SetupData]
    ;
    ; SetupSourceDevice is optional and specifies the nt device path
    ; of the device to be used as the setup source. This overrides
    ; the CD-ROM or winnt local source.
    ;
    ;SetupSourceDevice = \device\harddisk0\partition1
    ;
    ; SetupSourcePath specifies the path relative to the source device
    ; where the setup source tree is to be found.
    ; All media descriptors are relative to this.
    ;
    SetupSourcePath = "\SIMPCHIN\WIN2000\PRO\"
    MajorVersion = 5
    MinorVersion = 0
    DefaultPath=\WINNT

  这里的英文注视已经非常清晰的告诉我们,SetupSourceDevice参数是可选的,用来确定用来作为安装源设备的NT设备的路径。这个参数将覆盖默认的CD-ROM或NT本地源路径。而SetupSourcePath用来确定安装源文件在源设备上的相对路径。请注意SetupSourceDevice参数的值和C:\Boot.ini内的信息何其相似!如果不大清楚具体值的意义,我们可以对照着猜测一下harddisk0和partition1所代表的具体意义,这该不会很难吧 :-)

  有充分的理由相信修改这两个参数将能够实现我们刚才的思路。假设我们的WIN2K的安装源文件放在用NTFS格式分区的D盘上,路径为D:\WINDOWS2K,则用软盘启动前,我们需要将软盘DISK1上的TXTSETUP.SIF文件的相应参数进行修改:

    SetupSourceDevice = \device\harddisk0\partition2
    SetupSourcePath = "\WINDOWS2K\"

不错,JACLAZ等人修改添加了TXTSETUP.SIF文件中上述红色字部分内容,得到了突出的效果。
方法是加入了SetupSourceDevice = \device\harddisk1\partition1SetupSourcePath = "\自定义路径\i386"

解释一下,将I386文件夹放到移动硬盘第一分区某自定义路径下即可实验安装,不需要ren_fold.cmd,undoren.cmd,finifix4.cmd,rename.exe等文件,而且I386路径也不会被删除。

他们编了个工具,但需要进PE下进行设置,我嫌麻烦,自己搞了一个方法。

使用虚拟机建立一个NTFS分区,用BOOTSECT.EXE写入NT52引导,从I386目录拷贝SETUPLDR.BIN到此分区根目录并重命名为NTLDR,同法拷贝NTDETECT.COM和TXTSETUP.SIF文件到根目录。

使用BT_FOLDERS4.CMD制作启动组文件,放入此NTFS分区名为$WIN_NT$.~BT文件夹。
修改TXTSETUP.SIF文件,在SETUPSOURCEDATA项下加入SetupSourceDevice = \device\harddisk1\partition1,修改SetupSourcePath = "\自定义路径\i386"
OK,使用GHOST对这个分区做一个镜像,放到移动硬盘。

从BIOS设置移动硬盘为第一启动盘并启动,假设启动了GRLDR,则可以通过配置MENU.LST文件,加入一项“为第一内置硬盘克隆入启动镜像”,即启动一个GHOST,自动将上述镜像克隆入内置硬盘第一分区。重新启动系统,选择内置硬盘为第一启动项,OK,剩下的就是XP的安装界面了。

如果不重新格式化目标磁盘来安装,安装后需要手动删除目标磁盘根目录的$WIN_NT$.~BT和txtsetup.sif

[ 本帖最后由 victor888 于 2009-4-24 08:58 编辑 ]

BT_folder4.rar

1.38 KB, 下载次数: 1640

 楼主| 发表于 2009-3-10 11:05:45 | 显示全部楼层
使用畸形目录来保护U盘文件,无疑比使用软件或设定权限更高效,因为操作简单便捷,安全性较高。这样的U盘,要求根目录文件必须尽可能最少,最好没有单独文件,只有文件夹,因为我们使用GRUB4DOS,根目录必须保留GRLDR,如果使用SYSLINUX,则所有文件都可以放入畸形目录(见62楼例子)。这样的U盘即使中毒,也可以很容易手动清除根目录的病毒。

U盘根目录示例
GRLDR                   GRUB4DOS
$XPL.                 XP安装文件
UDATA.                  个人数据
注,以上带 . 的目录名均为WINDOWS下的畸形目录,双击无法打开。

我们现在的操作是将U盘根目录的ntdetect.com、txtsetups.sif放入畸形目录$WINLS.

方法:
以下的操作需要ultraedit或其它超文本编辑器
先在U盘根目录建立正常的XPLS和和UDATA文件夹。


在开始之前,说一下从U盘删除$WIN_NT$.~BT的方法(本人原创)

大家都知道这个文件夹含有启动组文件,所有的这些文件都来自于I386文件夹,那么,我们完全可以修改setupldr.bin文件中的路径,让其指向这个I386所在的文件夹。将migrate.inf和winnt.sif从$WIN_NT$.~BT移动到xpls的I386目录,将txtsetup.sif文件移动到XPLS目录,并重名为ts.sif。删除$WIN_NT$.~BT。

1. 修改SETUPLDR.BIN

使用ultraedit打开I386目录里的SETUPLDR.BIN
  • 搜索ntdetect.com 在第一个匹配处将其更名为xpl~1\nd.com
  • 搜索txtsetup.sif,替换为xpl~1\ts.sif,共8处
  • 搜索$win_nt$.~bt,手动替换为xpl~1\i386,剩余的t在左侧以0补充,总计2处。
2. 修改setupdd.sy_文件

使用winrar或expand命令解压I386目录的setupdd.sy_文件,得到setupdd.sys,用ultraedit打开。
  • 搜索$win_nt$.~bt,手动替换$win_nt$.~bt为xpl~1\i386,剩余bt在左侧填入0补充,总计3处。
  • 使用tiny hexer (免费软件,我不知道为什么它能找到,而ultraedit不行)搜索文本 $win_nt$.~bt,查找选项为 Ignore capital, unicode (little endian),(或者用ultraeidt在05D7F0,05D800,05D810)找到$.w.i.n._.n.t.$..~.l.s,手动更改为x.p.l.~.1.\.i.3.8.6.\将后面的\在左侧全部以0补充。
再使用如下命令极限压缩这个文件:
makecab /v3 /D CompressionType=LZX /D CompressionMemory=21 "文件路径\setupdd.sys"
将这个新形成的setupdd.sy_替换原文件即可。


将ntdetect.com更名为nd.com,将txtsetup.sif更名为ts.sif,两个文件都放入XPLS文件夹。

3. 修改XPLS文件夹内的NTLDR,将boot.ini放入XPLS
从I386目录拷贝NTLDR到XPLS目录,用ultraedit打开,同修改setupldr.bin一样,将ntdetect.com换为xpl~1\nd.com,再将boot.ini全部替换为xpl~1\bi,共10处。

打开记事本,输入以下内容:
[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 /fastdetect
另存为bi文件,放入xpls目录。

OK,至此,安装XP所需要修改的文件都改完了。

加入PE启动
大家明白了XP的操作过程,加入PE就是小菜一碟了。
老毛桃PEISO的根目录下,都有一个WXPE文件夹,里面有SETUPLDR.BIN和NTDETECT.COM,另外根目录还有一个winnt.xpe文件,内容为以ramdisk启动PE的配置及PE内核所在路径。


将SETUPLDR.BIN文件放入XPLS文件夹,用ultraedit打开,将ntdetect.com换为xpl~1\nd.com。查找winnt.xpe全部替换为xpl~1\w.x共9处。

将winnt.xpe文件更名为w.x,并修改内容为:
[SetupData]
BootDevice="ramdisk(0)"
BootPath="\WXPE\SYSTEM32\"
OsLoadOptions="/minint /fastdetect /rdexportascd /rdpath=\XPL~1\UTOOL\WinPE.IS_"

这个w.x文件也放入XPLS目录。
将WINPE.IS_要放入XPLS\UTOOL目录。
注:PE启动后需要加载的外围程序,请自行修改winpe.ini文件外置程序路径。

收尾
在UTOOL目录里放入相应的img文件,为了保护安装软件,我将这些软件打包成ISO了,用虚拟光驱加载安装,具体的就不写了,搜索我以前的贴子吧。

最后一步,打开winrar,U盘盘符,将XPLS更名为xpl..\,将udata更名为udata..\,至此,全部畸形目录搞完了。

ren_fold.cmd内容

@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%\xpl~1\ts.sif ts.bak
ren %USBDRIVE%\XPL~1 XPLS
exit

undoren.cmd内容
@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%\xpls\ts.bak ts.sif
rename.exe "%USBDRIVE%\XPLS" %USBDRIVE%\XPL.\

exit
要做的工作基本结束了,别忘记修改上述menu.lst文件,将第2项$WIN_NT$.~BT修改为XPL~1,将WIN_NT.BT修改为XPLS,保存,导入grldr。
注:对于FAT文件系统,畸形目录XPL~1要写成XPL.\

还有最最最后一个问题,这样的畸形目录如何访问啊?
开始-运行-U:\目录名~1
即将WIN下目录名最后的.换成~1。


接下贴:

[ 本帖最后由 victor888 于 2011-1-29 18:06 编辑 ]

NTDETECT.rar

22.13 KB, 下载次数: 278

cracked NTDETEC.COM

发表于 2009-3-10 12:46:35 | 显示全部楼层
最好能提供软件一步到位,适合没有写保护功能的U盘。
发表于 2009-3-10 12:54:16 | 显示全部楼层
等待中
不知最后能达到什么效果.
发表于 2009-3-10 14:50:11 | 显示全部楼层
支持!关注中..........
发表于 2009-3-10 16:36:15 | 显示全部楼层
关注
ntfs不能建".."的隐藏目录.还是喜欢fat
发表于 2009-3-10 18:39:30 | 显示全部楼层
支持!期待好消息!!
发表于 2009-3-10 19:12:15 | 显示全部楼层
原帖由 yqi99 于 2009-3-10 16:36 发表
关注
ntfs不能建".."的隐藏目录.还是喜欢fat

用winra可改,将wxpe更名为wxp..\,将UTOOL更名为utool..\,将udata更名为udata..\,将$WIN_NT$.~BT和$WIN_NT$.~LS分别更名为$WINBT..\和$WINLS..\,
如建"...\"的隐藏目录,要先格式化fat或fat32,然后转化成ntfs格式就行了

[ 本帖最后由 zxw 于 2009-3-26 12:15 编辑 ]
发表于 2009-3-10 19:17:36 | 显示全部楼层
我也在用NTFS文件格式,就是没办法免疫自动运行的病毒,希望版主继续讲解。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|无忧启动 ( 闽ICP备05002490号

GMT+8, 2014-8-28 19:07

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表