无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: 527104427
打印 上一主题 下一主题

[分享] ..................................

    [复制链接]
1#
发表于 2012-4-15 20:02:56 | 显示全部楼层
2011aaaaa0808:
系统,你的工具非常强大,经过我的测试,支持一步安装系统。但是有几个小建议:
1.建议增加swap参数,这样就可以全自动了,不需要用户再去交换磁盘的提示了,可以参考夜大的参数--swap默认交换第一和第二块磁盘(静默安装);--swap-ext给出所有磁盘让用户选择。
2.能否当用户的sif=no和srs=no的时候不要再去管(fd0)和(fd1)了?我发现我再使用siso iso=%myisodir% srs=n sif=n 3的时候,我预先加载到(fd0)中的RSR驱动和SIF没有了,我加载 到fd1中的FIRA驱动被你的给替换了。建议设置为no的时候不要去管fd0和fd1了,因为用户可能事先已经加载了相关驱动和文件,似乎你的也应该增加一个--fira=[firax86|firax64]参数,否则无论如何都会加载。
另外,我想问下“只需挂载一次ISO,第二次直接从硬盘启动”是因为你的SISO模块会在第二阶段使用FIRA驱动把原来加载的ISO加载到内存中而可直接使用(第一阶段需要G4D模拟加载,第二阶段是用MS系统来实现的,不需要加载到内存,会模拟一个虚拟光驱并加载ISO)。问下:这是如何实现的,因为发现只有你的模块和夜大的RUN模块我测试具有一步安装功能,。

非常感谢。

[ 本帖最后由 HUNRYBECKY 于 2012-4-15 20:07 编辑 ]
回复

使用道具 举报

2#
发表于 2012-4-16 09:02:35 | 显示全部楼层
非常感谢,我猜想的时把FIRA驱动写入了注册表,还真是这样的。非常感谢。我之所有想你不去管FD0和FD0是因为,你的SISO不加载SIF和SRS也会去管我原来已经加载好的驱动。

再次非常感谢。
回复

使用道具 举报

3#
发表于 2012-4-16 13:00:22 | 显示全部楼层
非常感谢,测试了一上午,还是实现不了一步安装。
我把你下面的代码
cat --locatei=###### --number=1 (0)/TXTSETUP.OEM | set fk0= > nul
if not %fk0%#==# set /A fk0=0x%fk0% > nul
if not %fk0%#==# write --offset=%fk0% (0)/TXTSETUP.OEM value=Parameters,StartOptions,REG_SZ,"cdrom,vmem=find:%iso%;"\r\n > nul
if not %fk0%#==# cat --skip=%fk0% --locate=/ --replace=\\ (0)/TXTSETUP.OEM > nul

中的(0)改为(1),因为我的FIRA驱动在(FD1)中,同时把%iso%替换为/MYISO/MYISO.ISO
一步安装后第二个阶段还是提示插入CD,是不是我哪里弄错了,非常感谢。
回复

使用道具 举报

4#
发表于 2012-4-16 13:03:35 | 显示全部楼层
另外,我是使用的C大的FIRA增强版。
回复

使用道具 举报

5#
发表于 2012-4-16 13:23:11 | 显示全部楼层
测试了一下你的更新--swap参数似乎问题
siso --swap iso=/MYISO/MYISO.ISO srs=n sif=n 3
在加载完ISO并出现磁盘交换信息(信息中没有找到任何磁盘),既然已经--swap为静默方式了,就不应该出现磁盘交换信息了,直接进入安装即可。
回复

使用道具 举报

6#
发表于 2012-4-16 13:27:58 | 显示全部楼层

回复 #125 527104427 的帖子

我看了下C大的FIRADISK.IMG中TXTSETUP.OEM中本身就存在你红色的部分。也就是说是按照你的改造过的。
是不是你的变量%iso%应该支持相对路径吧如/MYISO/MYISO.ISO
因为我使用你的SISO模块安装好后查看注册表中是把相对路径/MYISO/MYISO.ISO加载到虚拟内存光驱中的。

[ 本帖最后由 HUNRYBECKY 于 2012-4-16 13:30 编辑 ]
回复

使用道具 举报

7#
发表于 2012-4-16 13:52:45 | 显示全部楼层
不太明白你说的使用环境,我使用的UD分区。
代码如下

  1. fd2hd && clear
  2. echo 1.加载自制SRS驱动/SRS/MYSRS.IMG到A盘(默认MYSRS.IMG为空白盘)
  3. echo 2.加载自制SRS驱动/SRS/SRS.ISO到A盘(SRS无菜单版模式)
  4. echo 3.加载F6IMG到A盘(F6IMG模式)
  5. echo 4.加载DPMS驱动到A盘(NTBOOT模式)
  6. set /p /u mysrs=请输入SRS驱动对应的数字并回车:
  7. find --set-root --ignore-floppies /SRS/SRS.TXT
  8. if /I "%mysrs%"=="1" && if exist /SRS/MYSRS.IMG && map --mem /SRS/MYSRS.IMG (fd0)
  9. if /I "%mysrs%"=="2" && run --noboot /SRS/SRS.ISO (0xf0) && command SRSF6N (0xf0)/SRS && map --unmap=0xf0 && map --unmap=0x01
  10. if /I "%mysrs%"=="3" && command F6IMG /SRS/F6IMG/
  11. if /I "%mysrs%"=="4" && command /SRS/DPMS.BAT && map (fd0) (fd1) && map (fd1) (fd0)
  12. map --hook && set mysrs= && clear

  13. echo 1.加载/MYISO/FIRADISK.IMG到B盘
  14. echo 2.加载/HYTOOLS/GRUB/NTBOOT/NTBOOT.IMG/winvblk.img到B盘
  15. echo 3.加载/HYTOOLS/GRUB/NTBOOT/NTBOOT.IMG/vboot.img到B盘
  16. set /p /u mymd=请输入SRS驱动对应的数字并回车:
  17. find --set-root --ignore-floppies /MYISO/MYISO.TXT
  18. if /I "%mymd%"=="1" && if exist /MYISO/FIRADISK.IMG  && map --mem /MYISO/FIRADISK.IMG (fd1)
  19. if /I "%mymd%"=="2" && if exist /HYTOOLS/GRUB/NTBOOT/NTBOOT.IMG/winvblk.img && map --mem /HYTOOLS/GRUB/NTBOOT/NTBOOT.IMG/winvblk.img (fd1)
  20. if /I "%mymd%"=="3" && if exist /HYTOOLS/GRUB/NTBOOT/NTBOOT.IMG/vboot.img && map --mem /HYTOOLS/GRUB/NTBOOT/NTBOOT.IMG/vboot.img (fd1)
  21. map --hook && set mymd= && clear

  22. echo 1.复制/MYISO/WINXP.SIF到A盘和B盘
  23. echo 2.复制/MYISO/WIN2K3.SIF到A盘和B盘
  24. echo 3.复制/MYISO/WINNT.SIF到A盘和B盘
  25. set /p /u mysif=请输入SIF应答对应的数字并回车:
  26. if /I "%mysif%"=="1" && set mysif=WINXP.SIF || if /I "%mysif%"=="2" && set mysif=WIN2K3.SIF || if /I "%mysif%"=="3" && set mysif=WINNT.SIF
  27. find --set-root --ignore-floppies /MYISO/%mysif% && clear
  28. if exist /MYISO/%mysif% && fat copy /o /MYISO/%mysif% (fd0)/WINNT.SIF && fat copy /o /MYISO/%mysif% (fd1)/WINNT.SIF ! pause 没有加载自动应答文件%mysif%,任意键继续

  29. echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  30. echo FD0的驱动如下:
  31. ls (fd0)/
  32. echo -e \nFD1的驱动如下:
  33. ls (fd1)/
  34. echo -e \n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  35. set /p /u chab=是否交换的FD0和FD1?回车不交换,输入C交换:
  36. if /I "%chab%"=="C" && map (fd0) (fd1) && map (fd1) (fd0) && map --rehook
  37. set chab= && clear

  38. if not exit /MYISO/MYISO.TXT && set /p /u myisodir=请输入镜像文件目录(如/MYISO/): ! set myisodir=/MYISO/
  39. echo 0.进入命令行
  40. echo 1.生成/MYISO/或自定义目录的自动菜单(RUN模式SRATLF版)
  41. echo 2.生成/MYISO/或自定义目录的自动列表(RUN模式SRATLF版)
  42. echo 3.生成/MYISO/或自定义目录的自动菜单(RUN模式CHENALL版)
  43. echo 4.生成/MYISO/或自定义目录的自动列表(RUN模式CHENALL版)
  44. echo 5.生成/MYISO/或自定义目录的菜单列表(SISO模式)
  45. echo 6.一步安装/MYISO/MYISO.ISO(RUN模式SRATLF版,仅FIRA驱动)
  46. echo 7.一步安装/MYISO/MYISO.ISO(RUN模式CHENALL版,仅FIRA驱动)
  47. echo 8.一步安装/MYISO/MYISO.ISO(SISO模式,仅FIRA驱动)

  48. set /p /u myiso=请选择自动列表或菜单的方式:
  49. if "%myiso%"=="0" && commandline
  50. if "%myiso%"=="1" && RUNS --swap-ext --show.IMG.ISO %myisodir%
  51. if "%myiso%"=="2" && RUNS --swap-ext --autolist --show.IMG.ISO %myisodir%
  52. if "%myiso%"=="3" && run --set-ext=+.iso|.ima|.img|.gz|.bin|.wim|.|/ %myisodir%.automenu
  53. if "%myiso%"=="4" && run --set-ext=+.iso|.ima|.img|.gz|.bin|.wim|.|/ %myisodir%
  54. if "%myiso%"=="5" && siso iso=/MYISO/ srs=n sif=n 3
  55. if "%myiso%"=="6" && RUNS --swap /MYISO/MYISO.ISO
  56. if "%myiso%"=="7" && run /MYISO/MYISO.ISO
  57. if "%myiso%"=="8" && siso --swap iso=/MYISO/MYISO.ISO srs=n sif=n 3
  58. #把FIRA驱动写入注册表实现一步安装ISO,仅支持FIRA驱动
  59. #set iso=/MYISO/MYISO.ISO
  60. #cat --locatei=###### --number=1 (1)/TXTSETUP.OEM | set fk0= > nul
  61. #if not %fk0%#==# set /A fk0=0x%fk0% > nul
  62. #if not %fk0%#==# write --offset=%fk0% (1)/TXTSETUP.OEM value=Parameters,StartOptions,REG_SZ,"cdrom,vmem=find:%iso%;"\r\n > nul
  63. #if not %fk0%#==# cat --skip=%fk0% --locate=/ --replace=\\ (1)/TXTSETUP.OEM > nul

复制代码
回复

使用道具 举报

8#
发表于 2012-4-16 14:08:11 | 显示全部楼层
代码最后我注释调的部分,因为要测试你刚才的新SISO,所以我注释掉了。不好意思。
回复

使用道具 举报

9#
发表于 2012-4-16 14:23:25 | 显示全部楼层
因为FD1后还不知道加载哪个ISO,所以我没有写在map --rehook后,我修改下再测试下。

刚才用你的新版SISO模块,虽然SWAP参数对了,但是又发现两个问题:

1.fd0我原来加载的驱动已经不见了,变成我原来UD隐藏分区的内容了。这个我可能与我的U盘有关系。因为我的U盘被设备成了(ud)=(bd)=(fd0),可见分区识成(fd0,0),奇怪吧?很多东西在我的U盘里会出现奇奇怪怪的问题,如使用ls (fd0)后发现已经加载好的SRS驱动就变成UD分区的内容了。
2.进入系统安装后发现0x0000007b蓝屏,这个一般是没有找到合适的硬盘驱动所致,但是我的电脑DELL200是改为IDE模式,不需要SATA驱动测试的。我也进行了测试不用加载SRS也不会蓝屏。
回复

使用道具 举报

10#
发表于 2012-4-16 14:26:55 | 显示全部楼层
我对我的U盘总结是:
1.不能事先使用fd2hd菜单调用
2.不能使用run img模块,否则会自动交换hd0和hd1从而产生13错误
3.在map前不要使用ls,否则镜像会无法加载到fd中
回复

使用道具 举报

11#
发表于 2012-4-16 14:37:27 | 显示全部楼层
我的电脑大部分都把我的U盘识别成上面的样子,虚拟机中测试和部分电脑又不会。所以有时搞的很头痛。
前几天搞哪个RUN也是,夜大为了适应我这个情况,改了很多东西,所以现在才能正常使用RUN
回复

使用道具 举报

12#
发表于 2012-4-16 14:39:38 | 显示全部楼层
另外,在命令行下有没有命令可以看到TXTSETUP.OEM的内容,以便确定我已经成功把上面的代码写入了TXTSETUP.OEM
回复

使用道具 举报

13#
发表于 2012-4-16 14:41:54 | 显示全部楼层
原帖由 <i>527104427</i> 于 2012-4-16 14:29 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=2423408&ptid=205934" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" /></a><br />

<br />

<br />

<br />
我有一块联想的主板,也是这么折腾人的<br />
<br />
<br />
关于第一个问题,SISO自动处理ZIP的情况,把你的fd0干掉了<br />
<br />
第二个问题, 我的猜想是:因为SISO自动处理ZIP到hd0,然后你原来硬盘的顺序变成hd1、hd2……, ...
<br />


第二个问题,我测试了磁盘交换是OK的,也就U盘变成HD1了,原来的硬盘变成HD0了,应该还有其他问题。如果不弄成SRS=N SIF=N则没有这个问题,应该还是SRS=N参数出了什么问题。
回复

使用道具 举报

14#
发表于 2012-4-16 14:48:06 | 显示全部楼层
我看了下命令使用CAT可以看到我的TXTSETUP最后一行改成了
value=Parameters,startoptions,REG_SZ,"cdrom,vmem=find:\MYISO\MYISO.ISO;"
不过后面还有很多###符号,
回复

使用道具 举报

15#
发表于 2012-4-16 14:51:59 | 显示全部楼层
原帖由 <i>527104427</i> 于 2012-4-16 14:45 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=2423417&ptid=205934" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" /></a><br />

<br />
SRS=N的时候有一个动作:创建一个空白的fd0,用于存放WINNT.SIF,<br />
<br />
如果fd0内找不到WINNT.SIF或txtsetup.oem,则自动干掉fd0<br />
<br />
有可能问题出在这了
<br />


我预先已经加载了SRS和SIF驱动,是否可以增加变量值,如果srs=n sif则按照你现在得处理。如果srs=0 sif=0则完全不用管sif和srs
回复

使用道具 举报

16#
发表于 2012-4-16 14:59:27 | 显示全部楼层
原帖由 <i>527104427</i> 于 2012-4-16 14:49 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=2423422&ptid=205934" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" /></a><br />

<br />
这样就成功了
<br />


测试成功。安装时不提示插入CD了。
郁闷,放到后面就不行,可能后面的其他参数设置有影响。
回复

使用道具 举报

17#
发表于 2012-4-16 15:27:21 | 显示全部楼层
测试通过。
只是不知道老大是否也加个 fira=0的情况就不用管FD1中的fira驱动
回复

使用道具 举报

18#
发表于 2012-4-16 16:13:45 | 显示全部楼层
好的,非常感谢老大。感觉你的模块和S大的RUN模块非常不错。

再次感谢。
回复

使用道具 举报

19#
发表于 2012-4-16 18:49:31 | 显示全部楼层
原帖由 <i>527104427</i> 于 2012-4-16 17:01 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=2423525&ptid=205934" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" /></a><br />

<br />
试试刚上传的版本,去掉了srs=0这个参数,还是用原来的srs=n  sif=n<br />
自动检测AB盘,如果存在,就不再处理,直接跳过
<br />

测试通过,太感谢了。。。。。。。。。。
回复

使用道具 举报

20#
发表于 2012-4-17 13:34:52 | 显示全部楼层
另外,我想问下如何在批处理中设置倒计时,如用户没有选择操作5秒后自动设置默认的选择。
回复

使用道具 举报

21#
发表于 2012-4-17 14:34:02 | 显示全部楼层
感谢,看来第一种方法最简单。
回复

使用道具 举报

22#
发表于 2012-4-17 16:55:20 | 显示全部楼层
还遇到一个问题,如何检测目录是否存在?检测文件很简单,使用IF EXIST /MYISO/MYISO.ISO && command 即可。可是我没有找到检测目录的命令?
刚才又查了下资料说ls可以判断,我还不指导如何使用ls判断(找不到显示错误15,这个错误15有变量吗?),感谢老大再指导下。

[ 本帖最后由 HUNRYBECKY 于 2012-4-17 17:18 编辑 ]
回复

使用道具 举报

23#
发表于 2012-4-17 17:22:01 | 显示全部楼层
找到了,郁闷find --set-root ls %path%
还是非常感谢!

[ 本帖最后由 HUNRYBECKY 于 2012-4-17 17:32 编辑 ]
回复

使用道具 举报

24#
发表于 2012-4-17 18:04:51 | 显示全部楼层
我是找不到就返回菜单,不继续执行,已经测试OK,
不过还是那个倒时自动执行某个操作的命令没有搞定,代码如下:
[code]
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if /I "%myiso:~-1,1%"=="/" && echo 1.生成/MYISO/或自定义目录的自动菜单(RUN模式SRATLF版)
if /I "%myiso:~-1,1%"=="/" && echo 2.生成/MYISO/或自定义目录的自动列表(RUN模式SRATLF版)
if /I "%myiso:~-1,1%"=="/" && echo 3.生成/MYISO/或自定义目录的自动菜单(RUN模式CHENALL版)
if /I "%myiso:~-1,1%"=="/" && echo 4.生成/MYISO/或自定义目录的自动列表(RUN模式CHENALL版)
if /I "%myiso:~-1,1%"=="/" && echo 5.生成/MYISO/或自定义目录的菜单列表(SISO模式)
if /I not "%myiso:~-1,1%"=="/" && echo 1.一步安装/MYISO/MYISO.ISO(RUN模式SRATLF版,仅FIRA驱动)
if /I not "%myiso:~-1,1%"=="/" && echo 2.一步安装/MYISO/MYISO.ISO(RUN模式CHENALL版,仅FIRA驱动)
if /I not "%myiso:~-1,1%"=="/" && echo 3.一步安装/MYISO/MYISO.ISO(SISO模式,仅FIRA驱动)
if /I not "%myiso:~-1,1%"=="/" && echo 4.一步安装/MYISO/MYISO.ISO(G4D原版模式,仅FIRA驱动)
echo -e \n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo
echo 如果五秒内没有选择则自动选择第一项
pause --wait=5 && set isoxz=1 ! set /p /u isoxz=请选择操作方式(G光盘启动,M返回菜单,C命令行):
[/cod]

我这里想如果用户在5秒内没有执行选择的话则设置isoxz=1,也就是5秒没有选择的话执行第一项操作。我看了下你的SISO模块,太长了,而且每个字符的KEY不一样。难找呀。
回复

使用道具 举报

25#
发表于 2012-4-17 23:14:06 | 显示全部楼层
我这个是菜单,不是批处理,所以无法执行。

根据老大的代码修改了下,可以运行了。代码就是有点看不懂,老大是否可以解释下。
回复

使用道具 举报

26#
发表于 2012-4-18 11:14:56 | 显示全部楼层
我是一个G4D代码初学者,在几位前辈的指导下,终于完成了这个玩具.在此,感谢527104427,P大,sratlf大,zxw和CHENALL
1.集成各种SRS驱动方法,如DPMS模式驱动,SRSFN模式驱动,F6IMG模式驱动,或是自制OEM原版驱动。
2.用户可以选择使用WINXP还是WIN2K3的自动应答文件实现自动安装
3.用户可以选择FIRADISK,invblk或是VBOOT,如果是FIRADISK则支持一步安装
4.支持SISO,Z大版RUN,夜大版多种方式一步安装NT5内核操作系统,同时解决了Z大版RUN不能一步完成的问题(如果用户自定的是一个ISO文件如/MYISO/MYISO.ISO)
5.支持Z大版或夜大版自动菜单和自动列表选择安装操作系统(如果用户指定的是一个目录如/MYISO/)
6.自动转换ZIP格式的U盘为HDD格式U盘
7.支持自动交换HD0和HD1,解决了安装系统后无法从硬盘启动的问题.
8.支持加载SRS驱动和自动应答文件SIF后从物理光驱安装系统或返回菜单以便在其他菜单中使用SRS驱动和SIF自动应答文件.
9.支持全自动安装ISO,要求是用户准备了MYISO/MYISO.ISO文件

遗憾:遗憾的是如果用户输入的是目录的话,然后从自动菜单或自动列表中选择的ISO无法实现一步安装,原因在于我无法获取到SISO模块/Z大的RUN/夜大的RUN在选择列表或菜单项目后如何返回选择的ISO路径,不不知道有没有办法解决这个问题.
注意:此菜单项只能为第一个菜单;请用户自行准备/SRS/目录下的驱动和/MYISO/下的目录或指定ISO目录


  1. title ^ALT+0 [0] 预先加载SRS和SIF到A盘,FIRA等驱动到B盘后安装系统或返回菜单
  2. # 0.使用注意:这里把ZIP格式U盘转为HDD硬盘(不能事先使用fd2hd菜单调用);不能使用run img模块,否则会自动交换hd0和hd1从而产生13错误(可使用INSMOD先加载到内存),在map前不要使用ls,否则镜像会无法加载到fd中
  3. fd2hd && clear
  4. set c1=$[0002]
  5. set c2=$[0003]
  6. set c3=$[0004]
  7. set c4=$[0007]
  8. set c5=$[1004]
  9. set c6=$[0104]
  10. set c7=\44[0002]
  11. set c8=\44[0003]
  12. set c9=\44[0006]
  13. set ca=\44[0007]
  14. set cb=\44[0101]
  15. # 1.1.1 事先设置默认的myiso=/MYISO/[MYISO.ISO],如果找不到则提示用户输入目录
  16. find --set-root --ignore-floppies /MYISO/MYISO.ISO && set myiso=/MYISO/MYISO.ISO ! set myiso=/MYISO/
  17. find --set-root --ignore-floppies ls %myiso% && clear ! set /p /u myiso=请输入镜像文件目录或文件(如/MYISO/或/MYISO/MYISO.ISO):
  18. find --set-root --ignore-floppies ls %myiso% || clear && echo && pause --wait=3 没有找到%myiso%,三秒后返回 && goto 0
  19. # 如果指定的是目录则仅生成菜单列表,如果指定的是文件则仅显示一步安装
  20. clear && echo
  21. echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  22. if /I "%myiso:~-1,1%"=="/" && echo 1.生成/MYISO/或自定义目录的自动菜单(RUN模式SRATLF版)
  23. if /I "%myiso:~-1,1%"=="/" && echo 2.生成/MYISO/或自定义目录的自动列表(RUN模式SRATLF版)
  24. if /I "%myiso:~-1,1%"=="/" && echo 3.生成/MYISO/或自定义目录的自动菜单(RUN模式ZXW版)
  25. if /I "%myiso:~-1,1%"=="/" && echo 4.生成/MYISO/或自定义目录的自动列表(RUN模式ZXW版)
  26. if /I "%myiso:~-1,1%"=="/" && echo 5.生成/MYISO/或自定义目录的菜单列表(SISO模式)
  27. if /I not "%myiso:~-1,1%"=="/" && echo 1.一步安装/MYISO/MYISO.ISO(RUN模式SRATLF版,仅FIRA驱动)
  28. if /I not "%myiso:~-1,1%"=="/" && echo 2.一步安装/MYISO/MYISO.ISO(RUN模式ZXW版,仅FIRA驱动)
  29. if /I not "%myiso:~-1,1%"=="/" && echo 3.一步安装/MYISO/MYISO.ISO(SISO模式,仅FIRA驱动)
  30. if /I not "%myiso:~-1,1%"=="/" && echo 4.一步安装/MYISO/MYISO.ISO(G4D原版模式,仅FIRA驱动)
  31. echo -e \n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  32. echo
  33. echo 请选择操作方式(%c3%G光驱启动,C命令模式,M返回菜单%c1%),如果%c6%5秒内%c1%没有选择则自动选择%c3%第一项
  34. calc *0x4cb00=0x1 > nul
  35. pause --wait=5 && set /a keyt=*0x4cb00 && set n=5
  36. checkrange 1:%n% calc %keyt%-48 && set /a isoxz=%keyt%-48 ! if "%keyt%"=="1" && set isoxz=1 ! set isoxz=1
  37. if "%keyt%"=="99" && set isoxz=c ! if "%keyt%"=="67" && set isoxz=C ! if "%keyt%"=="103" && set isoxz=g ! if "%keyt%"=="71" && set isoxz=G ! if "%keyt%"=="109" && set isoxz=m ! if "%keyt%"=="77" && set isoxz=M
  38. # 1.3 SRSF6模块会同时在AB盘生成FIRA和SRS驱动(不带FIRA参数如果找不到驱动则生成空盘),支持原版或是F6格式的OEM驱动,SRSID驱动和SIF驱动;F6IMG在A盘产生驱动(无则生成空盘),支持原版或F6格式OEM X32驱动和--X64位驱动,支持驱动打包为gz(F6IMGZ)或lzma或散开或混合格式;
  39. #     ZWX版的F6IMG则在HOTDLL版的基础上通吃GZ,LMZA和IMG格式;DPMS只支持ISO格式的DMPS专用驱动,找不到驱动时什么也不做(需预加载空A盘,否则再也就无法添加A盘);另外SISO模块支持F6IMG(仅内置),SRSF6N(增加srsf6n /srs.iso方式)和DPMS以及自制IMG,IMA四种方式都包含.
  40. clear && echo
  41. echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  42. echo 1.加载自制SRS驱动/SRS/MYSRS.IMG到A盘(默认MYSRS.IMG为空白盘)
  43. echo 2.加载自制SRS驱动/SRS/SRS.ISO到A盘(SRSF6N无菜单版模式)
  44. echo 3.加载F6IMG到A盘(HOTDLL版F6IMG模式)
  45. echo 4.加载F6IMG到A盘(ZXW版F6IMG模式)
  46. echo 5.加载DPMS驱动到A盘(CHENALL的DPMS模式)
  47. echo -e \n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  48. echo
  49. echo 请选择%c3%SRS驱动%c1%类型,如果%c6%5秒内%c1%没有选择则自动选择%c3%第五项
  50. calc *0x4cb00=0x1 > nul
  51. pause --wait=5 && set /a keyt=*0x4cb00 && set n=5
  52. checkrange 1:%n% calc %keyt%-48 && set /a mysrs=%keyt%-48 ! if "%keyt%"=="5" && set mysrs=5 ! set mysrs=5
  53. find --set-root --ignore-floppies ls /SRS/ && clear
  54. if /I "%mysrs%"=="1" && if exist /SRS/MYSRS.IMG && map --mem /SRS/MYSRS.IMG (fd0) && map --hook
  55. if /I "%mysrs%"=="2" && run --noboot /SRS/SRS.ISO (0xf0) && command SRSF6N (0xf0)/SRS && map --unmap=0xf0 && map --unmap=0x01 && map --rehook
  56. if /I "%mysrs%"=="3" && command F6IMG /SRS/F6IMG/ || if /I "%mysrs%"=="3" && command F6IMGZ /SRS/F6IMGZ/
  57. if /I "%mysrs%"=="4" && command F6IMGN /SRS/F6IMG.IMG || if /I "%mysrs%"=="3" && command F6IMGN /SRS/F6IMG/
  58. if /I "%mysrs%"=="5" && map --mem /SRS/MYSRS.IMG (fd0) && map --hook && clear && echo -e \n正在加载/SRS/DPMS.ISO && command /SRS/DPMS.BAT && if exist (fd1)/TXTSETUP.OEM && map (fd0) (fd1) && map (fd1) (fd0) && map --rehook  
  59. set mysrs= && clear

  60. # 1.4 加载内置虚拟内存驱动,只有FIRADISK.IMG支持一步安装
  61. clear && echo
  62. echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  63. echo 1.加载内置/HYTOOLS/GRUB/NTBOOT/NTBOOT.IMG/FIRADISK.IMG到B盘
  64. echo 2.加载内置/HYTOOLS/GRUB/NTBOOT/NTBOOT.IMG/winvblk.img到B盘
  65. echo 3.加载内置/HYTOOLS/GRUB/NTBOOT/NTBOOT.IMG/vboot.img到B盘
  66. echo -e \n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  67. echo
  68. echo 请选择%c3%虚拟内存%c1%驱动类型,如果%c6%5秒内%c1%没有选择则自动选择%c3%第一项
  69. calc *0x4cb00=0x1 > nul
  70. pause --wait=5 && set /a keyt=*0x4cb00 && set n=3
  71. checkrange 1:%n% calc %keyt%-48 && set /a mymd=%keyt%-48 ! if "%keyt%"=="1" && set mymd=1 ! set mymd=1
  72. find --set-root --ignore-floppies ls /HYTOOLS/GRUB/NTBOOT/ && clear
  73. if /I "%mymd%"=="1" && if exist /HYTOOLS/GRUB/NTBOOT/NTBOOT.IMG/FIRADISK.IMG  && map --mem /HYTOOLS/GRUB/NTBOOT/NTBOOT.IMG/FIRADISK.IMG (fd1)
  74. if /I "%mymd%"=="2" && if exist /HYTOOLS/GRUB/NTBOOT/NTBOOT.IMG/winvblk.img && map --mem /HYTOOLS/GRUB/NTBOOT/NTBOOT.IMG/winvblk.img (fd1)
  75. if /I "%mymd%"=="3" && if exist /HYTOOLS/GRUB/NTBOOT/NTBOOT.IMG/vboot.img && map --mem /HYTOOLS/GRUB/NTBOOT/NTBOOT.IMG/vboot.img (fd1)
  76. map --rehook && set mymd= && clear

  77. # 1.5 把FIRA驱动写入注册表实现一步安装ISO,仅支持FIRA驱动(如果是自动列表或自动菜单则无法实现一步安装,因为不知道RUN和RUNS的返回值是不是%iso%)
  78. # if exist %iso% set myiso=%iso%
  79. if /I not "%myiso:~-1,1%"=="/" && cat --locatei=###### --number=1 (fd1)/TXTSETUP.OEM | set fk0= > nul
  80. if /I not "%myiso:~-1,1%"=="/" && if not %fk0%#==# set /A fk0=0x%fk0% > nul
  81. if /I not "%myiso:~-1,1%"=="/" && if not %fk0%#==# write --offset=%fk0% (fd1)/TXTSETUP.OEM value=Parameters,StartOptions,REG_SZ,"cdrom,vmem=find:%myiso%;"\r\n > nul
  82. if /I not "%myiso:~-1,1%"=="/" && if not %fk0%#==# cat --skip=%fk0% --locate=/ --replace=\\ (fd1)/TXTSETUP.OEM > nul

  83. # 1.6 复制内置SIF到A,B盘以便实现无人值守安装
  84. clear && echo
  85. echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  86. echo 1.复制内置/HYTOOLS/IMGS/WINXP.SIF到A盘和B盘
  87. echo 2.复制内置/HYTOOLS/IMGS/WIN2K3.SIF到A盘和B盘
  88. echo 3.复制内置/HYTOOLS/IMGS/WINNT.SIF到A盘和B盘
  89. echo -e \n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  90. echo
  91. echo 请选择%%c3应答文件%c1%类型,如果%c6%5秒内%c1%没有选择则自动选择%c3%第一项
  92. calc *0x4cb00=0x1 > nul
  93. pause --wait=5 && set /a keyt=*0x4cb00 && set n=3
  94. checkrange 1:%n% calc %keyt%-48 && set /a mysif=%keyt%-48 ! if "%keyt%"=="1" && set mysif=1 ! && set mysif=1
  95. if /I "%mysif%"=="1" && set mysif=WINXP.SIF || if /I "%mysif%"=="2" && set mysif=WIN2K3.SIF || if /I "%mysif%"=="3" && set mysif=WINNT.SIF
  96. if exist /HYTOOLS/IMGS/%mysif% && fat copy /o /HYTOOLS/IMGS/%mysif% (fd0)/WINNT.SIF && fat copy /o /HYTOOLS/IMGS/%mysif% (fd1)/WINNT.SIF ! && clear && pause 没有加载自动应答文件%mysif%,任意键继续
  97. set mymd= && clear

  98. # 1.7 提示是否交换A,B盘以便自动加载驱动,默认不交换(感觉代码多余,改成了显示驱动即可)
  99. clear && echo
  100. echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  101. echo %c3%FD0的SRS%c1%驱动如下:
  102. ls (fd0)/
  103. echo -e \n%c3%FD1的虚拟内存%c1%驱动如下:
  104. ls (fd1)/
  105. echo -e \n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  106. echo
  107. pause --wait=5 以上驱动如不正确可%c3%返回修改%c1%,%c6%5秒后%c1%将执行自动菜单列表或一步安装

  108. # 1.2.1磁盘交换后外部命令RUN会无法使用,出现13错误,可使用INSMOD加载到内存中调用
  109. find --set-root --ignore-floppies ls %myiso% && clear
  110. if /I "%myiso:~-1,1%"=="/" && if /I "%isoxz%"=="1" && RUNS --swap-ext --show.IMG.IMA.GZ.WIM.ISO %myiso%
  111. if /I "%myiso:~-1,1%"=="/" && if /I "%isoxz%"=="2" && RUNS --swap-ext --autolist --show.IMG.IMA.GZ.WIM.ISO %myiso%
  112. if /I "%myiso:~-1,1%"=="/" && if /I "%isoxz%"=="3" && insmod run && map (hd0) (hd1) && map (hd1) (hd0) && map --rehook && run --set-ext=+.iso|.ima|.img|.gz|.bin|.wim|.|/ %myiso%.automenu
  113. if /I "%myiso:~-1,1%"=="/" && if /I "%isoxz%"=="4" && insmod run && map (hd0) (hd1) && map (hd1) (hd0) && map --rehook && run --set-ext=+.iso|.ima|.img|.gz|.bin|.wim|.|/ %myiso%
  114. if /I "%myiso:~-1,1%"=="/" && if /I "%isoxz%"=="5" && siso --swap iso=%myiso% srs=n sif=n 3
  115. if /I not "%myiso:~-1,1%"=="/" && if /I "%isoxz%"=="1" && RUNS --swap %myiso%
  116. if /I not "%myiso:~-1,1%"=="/" && if /I "%isoxz%"=="2" && insmod run && map (hd0) (hd1) && map (hd1) (hd0) && map --rehook && run %myiso%
  117. if /I not "%myiso:~-1,1%"=="/" && if /I "%isoxz%"=="3" && siso --swap iso=%myiso% srs=n sif=n 3
  118. if /I not "%myiso:~-1,1%"=="/" && if /I "%isoxz%"=="4" && clear && map (hd0) (hd1) && map (hd1) (hd0) && map --rehook && echo 正加载%myiso% && find --set-root --ignore-floppies %myiso% && map --mem %myiso% (0xff) && map --rehook && chainloader (0xff)
  119. if /I "%isoxz%"=="G" && cdrom --init && map --hook && chainloader (cd0) && boot
  120. if /I "%isoxz%"=="C" && commandline
  121. command | clear

复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-6-3 08:28

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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