无忧启动论坛

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

[分享] RUN 1206 更新 支持磁盘交换,文件检索,自动菜单,自动列表,全自动安装nt5x系统

    [复制链接]
2725#
发表于 2014-7-28 13:45:10 | 只看该作者
sratlf 发表于 2014-7-28 09:21
这个可能还真有点麻烦  因为在进入RUN时会自动记录上次configfile命令加载的菜单文件  返回主菜单也是重 ...

S大,这倒不是问题,因为只是调试时模拟双硬盘,所以发生的特例,正常情况下,双硬盘应该不会有如此情况发生的……
回复

使用道具 举报

2724#
 楼主| 发表于 2014-7-28 09:21:37 | 只看该作者
2011aaaaa0808 发表于 2014-7-27 04:32
S大,真的不好意思,是我没描述清楚,我也终于明白是什么情况了。

实际上是我的硬盘也是grub引导的, ...

这个可能还真有点麻烦  因为在进入RUN时会自动记录上次configfile命令加载的菜单文件  返回主菜单也是重新加载这个被记录下来的菜单文件  并不是通过检索得来的

比如你现在的情况就是记录的是位于hd0上的menu.lst文件  磁盘交换后hd0变成了hd1  返回主菜单时run会尝试加载hd0上的menu.lst文件  如果没有的话会再检索  但是交换后的hd0上也在同样的位置存在一个menu.lst  就直接加载这个menu.lst了。。。
回复

使用道具 举报

2723#
发表于 2014-7-27 09:48:14 | 只看该作者
jh1688 发表于 2014-7-27 07:57
呵呵,昨晚我也多挂了一块USB移动硬盘在机器上,模拟双硬盘,不巧的是我的移动硬盘的U盘的引导是一样的, ...

好 辛苦了 多谢!
回复

使用道具 举报

2722#
发表于 2014-7-27 07:57:23 | 只看该作者
2011aaaaa0808 发表于 2014-7-27 04:32
S大,真的不好意思,是我没描述清楚,我也终于明白是什么情况了。

实际上是我的硬盘也是grub引导的, ...

呵呵,昨晚我也多挂了一块USB移动硬盘在机器上,模拟双硬盘,不巧的是我的移动硬盘的U盘的引导是一样的,你所说的问题本来想今天来告诉你的,现在看来不必了,你已经找到问题的症结了,祝你好运。
回复

使用道具 举报

2721#
发表于 2014-7-27 04:32:43 | 只看该作者
sratlf 发表于 2014-7-25 23:52
双硬盘也不应该出现这种问题  虚拟机测试过六块硬盘  实机测试过三块硬盘加两个usb-hdd  都没出现过从硬 ...

S大,真的不好意思,是我没描述清楚,我也终于明白是什么情况了。

实际上是我的硬盘也是grub引导的,且硬盘上也有menu.lst文件(这个配置文件默认直接进系统),与U盘上的menu.lst(这个配置文件默认不是进系统)内容不一样。在交换磁盘后去搜索menu.lst文件时会先搜索到硬盘上(此时HD0是硬盘,HD2才是U盘)的menu.lst并加载后直接进系统,与我所希望的交换磁盘后依旧加载U盘上的menu.lst的想法不一样。

谢谢
回复

使用道具 举报

2720#
 楼主| 发表于 2014-7-25 23:52:50 | 只看该作者
jh1688 发表于 2014-7-25 21:05
不好意思,你可能误会了,我不会也从不用UD分区,直接用XP格式化后,用BOOTICE写入相关引导项,相关启动 ...

双硬盘也不应该出现这种问题  虚拟机测试过六块硬盘  实机测试过三块硬盘加两个usb-hdd  都没出现过从硬盘启动的情况
回复

使用道具 举报

2719#
发表于 2014-7-25 21:05:03 | 只看该作者
2011aaaaa0808 发表于 2014-7-25 14:02
我的U盘没有做UD分区,直接GRUB安装到U盘,GRLDR和MENU.LST都在根目录下的。在我的双硬盘电脑上测试的, ...

不好意思,你可能误会了,我不会也从不用UD分区,直接用XP格式化后,用BOOTICE写入相关引导项,相关启动文件都在根目录下,但没有双硬盘测试条件,所以帮不了你了……
不过据分析,问题还真有可能出在双硬盘上。
回复

使用道具 举报

2718#
 楼主| 发表于 2014-7-25 14:14:24 | 只看该作者
2011aaaaa0808 发表于 2014-7-25 14:02
我的U盘没有做UD分区,直接GRUB安装到U盘,GRLDR和MENU.LST都在根目录下的。在我的双硬盘电脑上测试的, ...

弄个小测试包吧  或者试试下面的命令

title 交换磁盘顺序
set umark=/boot/grub/umark
if exist (hd0,0)%umark% && command run --swap-all --end exit
回复

使用道具 举报

2717#
发表于 2014-7-25 14:02:25 | 只看该作者
jh1688 发表于 2014-7-25 08:40
我在我的U盘上试着运行了这段,没有任何问题啊!!

能正确返回到U盘,继续下面的操作,会不会是写法 ...

我的U盘没有做UD分区,直接GRUB安装到U盘,GRLDR和MENU.LST都在根目录下的。在我的双硬盘电脑上测试的,从U盘启动执行交换后自动进入hd1上的系统去了。
回复

使用道具 举报

2716#
发表于 2014-7-25 08:40:04 | 只看该作者
本帖最后由 jh1688 于 2014-7-25 08:42 编辑
2011aaaaa0808 发表于 2014-7-24 17:03
title 交换磁盘顺序
set umark=/boot/grub/umark
if exist (hd0,0)%umark% && command run --swap-all


我在我的U盘上试着运行了这段,没有任何问题啊!!

能正确返回到U盘,继续下面的操作,会不会是写法上有什么问题没有,我在菜单的最末加上了boot。

不知道有没有关系,这是我写菜单的一种习惯。
回复

使用道具 举报

2715#
 楼主| 发表于 2014-7-24 18:14:16 | 只看该作者
2011aaaaa0808 发表于 2014-7-24 17:05
title 交换磁盘顺序
set umark=/boot/grub/umark
if exist (hd0,0)%umark% && command run --swap-all
...

弄个最小体积的测试包给我吧  我测试看看  你的是什么环境启动的
回复

使用道具 举报

2714#
发表于 2014-7-24 17:05:23 | 只看该作者
sratlf 发表于 2014-7-24 16:00
完整菜单项写出来我看下  应该没有引导什么启动才对。。。

title 交换磁盘顺序
set umark=/boot/grub/umark
if exist (hd0,0)%umark% && command run --swap-all

/boot/grub/umark这是建立在U盘目录下的用来标识U盘的文件

本来是从U盘grub启动的(此时U盘是hd0),我希望执行这条命令后(此时hd0是硬盘)返回到grub主菜单,结果却自动进入硬盘上的系统去了,所以认为是执行这个命令后默认从hd0启动去了。
回复

使用道具 举报

2713#
发表于 2014-7-24 17:03:21 | 只看该作者
title 交换磁盘顺序
set umark=/boot/grub/umark
if exist (hd0,0)%umark% && command run --swap-all

/boot/grub/umark这是建立在U盘目录下的用来标识U盘的文件

本来是从U盘grub启动的,我希望执行这条命令后返回grub主菜单,结果却自动进入硬盘上的系统去了。
回复

使用道具 举报

2712#
 楼主| 发表于 2014-7-24 16:00:55 | 只看该作者
2011aaaaa0808 发表于 2014-7-24 15:53
从U盘启动后执行run --swap+ext或-all命令交换磁盘相顺序,hd0将不再是U盘,接着就默认从hd0的引导启动了, ...

完整菜单项写出来我看下  应该没有引导什么启动才对。。。
回复

使用道具 举报

2711#
发表于 2014-7-24 15:53:58 | 只看该作者
从U盘启动后执行run --swap+ext或-all命令交换磁盘相顺序,hd0将不再是U盘,接着就默认从hd0的引导启动了,请问,如何执行这交换条命令后默认返回加载U盘上的menu.lst菜单?感谢
回复

使用道具 举报

2710#
发表于 2014-6-15 21:27:47 | 只看该作者
本帖最后由 lps4290 于 2014-6-15 22:35 编辑

来学习,支持s大
回复

使用道具 举报

2709#
 楼主| 发表于 2014-6-10 09:34:14 | 只看该作者
527104427 发表于 2014-6-10 06:47
S大这么晚还没休息

是到家先睡了一会然后起来的。。。
回复

使用道具 举报

2708#
发表于 2014-6-10 06:47:56 | 只看该作者
sratlf 发表于 2014-6-10 00:50
貌似被我改复杂了

S大这么晚还没休息
回复

使用道具 举报

2707#
 楼主| 发表于 2014-6-10 00:50:37 | 只看该作者
527104427 发表于 2014-6-9 23:18
是挺多的,搜少了不好计算,干脆就全搜了吧

貌似被我改复杂了

  1. :root_path
  2. if "%~1"=="" && exit
  3. set tmp=%~1
  4. cat --locatei="%tmp:~-16%" %inipath% | call :hwid_check %~1 %@retval%
  5. if "%tmp%"=="" && exit
  6. if %tmp%<=1024 && calc %tmp% > nul ! calc 1024 > nul
  7. call :get_char %tmp% %@retval% "xA[" || exit
  8. ::tmp值为最近[位置
  9. set /a tmp=%?% + 2 > nul
  10. cat --skip=%tmp% --locate="]" --number=1 %inipath% > nul || exit
  11. calc %?% - %tmp% > nul
  12. cat --skip=%tmp% --length=%@retval% %inipath% > (md)0x200+1
  13. cat --locate=\x2D --replace=\x2F (md)0x200+1 > nul
  14. cat (md)0x200+1 | set /u root=D/M/
  15. set tmp=
  16. exit

  17. ::tmp值为匹配ID位置
  18. :hwid_check
  19. set tmp=
  20. if "%~3"=="" && exit
  21. ::行首为ms_
  22. set tmp=0x%~3
  23. if %tmp%<=512 && calc %tmp% > nul ! calc 512 > nul
  24. call :get_char %tmp% %@retval% "xA" || set ?=-1
  25. calc %?% + 1 > nul
  26. cat --skip=%@retval% --length=3 %inipath% | set tmp=
  27. call Fn.15 "%tmp%" "ms_" && shift 3 && goto :hwid_check
  28. ::不以,或"结尾
  29. calc 0x%~3 + 16 > nul
  30. cat --skip=%@retval% --length=1 %inipath% | set tmp=
  31. if "%tmp%"=="," || if "%tmp%">="0x22" if "%tmp%"<="0x22" || shift 3 && goto :hwid_check
  32. calc 0x%~3 - %~2 + 16 > nul
  33. cat --skip=%@retval% --length=%~2 %inipath% | set tmp=
  34. call Fn.15 "%~1" "%tmp%" && shift 3 && goto :hwid_check
  35. set /a tmp=0x%~3 - %~2 + 16 > nul
  36. exit

  37. :get_char
  38. ::%tmp%起始位置 %~2每段范围 %~3要查找的字符
  39. if %tmp%<=%~2 && set tmp=0 && calc %~1 > nul ! set /a tmp=%tmp% - %~2 > nul && calc %~2 > nul
  40. cat --skip=%tmp% --length=%@retval% --locate="\%~3" %inipath% > nul && exit
  41. if %tmp%<=0 && set tmp= && exit 1
  42. goto :get_char
复制代码
回复

使用道具 举报

2706#
发表于 2014-6-9 23:18:31 | 只看该作者
sratlf 发表于 2014-6-9 22:59
恩  看到了  是不是搜索的多了点。。。

是挺多的,搜少了不好计算,干脆就全搜了吧
回复

使用道具 举报

2705#
 楼主| 发表于 2014-6-9 22:59:28 | 只看该作者
527104427 发表于 2014-6-9 22:40
满足 以 ms_ 开头就行了(行首不为;也包括在内),S大看 #2690 代码

恩  看到了  是不是搜索的多了点。。。
回复

使用道具 举报

2704#
发表于 2014-6-9 22:40:29 | 只看该作者
sratlf 发表于 2014-6-9 22:28
应该是吧  那综合起来就是行首不为 ;   且以 ms_ 开头的是吧  还有其他要求吗

满足 以 ms_ 开头就行了(行首不为;也包括在内),S大看 #2690 代码
回复

使用道具 举报

2703#
 楼主| 发表于 2014-6-9 22:28:16 | 只看该作者
527104427 发表于 2014-6-9 22:19
估计是 DPs.exe 的配置,应该跟搜索ID的位置无关

应该是吧  那综合起来就是行首不为 ;   且以 ms_ 开头的是吧  还有其他要求吗
回复

使用道具 举报

2702#
发表于 2014-6-9 22:19:52 | 只看该作者
sratlf 发表于 2014-6-9 22:06
貌似是和什么配置有关的  找到一个相近的解释  http://forum.driverpacks.net/viewtopic.php?id=3161

估计是 DPs.exe 的配置,应该跟搜索ID的位置无关
回复

使用道具 举报

2701#
 楼主| 发表于 2014-6-9 22:06:23 | 只看该作者
527104427 发表于 2014-6-9 21:51
这有一段奇怪的代码,不知道用来干嘛的

貌似是和什么配置有关的  找到一个相近的解释  http://forum.driverpacks.net/viewtopic.php?id=3161
回复

使用道具 举报

2700#
发表于 2014-6-9 21:51:56 | 只看该作者
sratlf 发表于 2014-6-9 21:47
为exc的为什么不能用。。。

这有一段奇怪的代码,不知道用来干嘛的


1.png (31.63 KB, 下载次数: 190)

1.png

点评

貌似是和什么配置有关的 找到一个相近的解释 http://forum.driverpacks.net/viewtopic.php?id=3161  详情 回复 发表于 2014-6-9 22:06
回复

使用道具 举报

2699#
发表于 2014-6-9 21:47:51 | 只看该作者
本帖最后由 527104427 于 2014-6-9 22:07 编辑
sratlf 发表于 2014-6-9 21:07
怎么还有行首;注释情况。。。  再看看还有什么特殊的没。。。


这样就好了:


  1. :hwid_check
  2. set tmp=
  3. if "%~3"=="" && exit
  4. ::不以 ms_ 开头则继续搜索
  5. cat --length=0x%~3 --locate="\xD\xA" %inipath% > nul
  6. calc %?% + 2 > nul
  7. cat --skip=%@retval% --length=3 --locatei="ms_" %inipath% > nul
  8. calc %?% > nul || shift 3 && goto :hwid_check
  9. ::不以 , 或 " 结尾则继续搜索
  10. ::比如ID为PCI\VEN_1000&DEV_0054,搜到的却是PCI\VEN_1000&DEV_0054&SUBSYS_1F041028
  11. calc 0x%~3 + 16 > nul
  12. cat --skip=%@retval% --length=1 %inipath% | set tmp=
  13. ::加引号比较字符串大小会转为ascii码再比较
  14. if "%tmp%">="0x22" if "%tmp%"<="0x22" || if "%tmp%"=="," || shift 3 && goto :hwid_check
  15. calc 0x%~3 - %~2 + 16 > nul
  16. cat --skip=%@retval% --length=%~2 %inipath% | set /u tmp=
  17. call Fn.15 "%~1" "%tmp%" && shift 3 && goto :hwid_check
  18. ::tmp值为匹配ID位置
  19. set /a tmp=0x%~3 - %~2 + 16 > nul
  20. exit
复制代码
回复

使用道具 举报

2698#
 楼主| 发表于 2014-6-9 21:47:50 | 只看该作者
527104427 发表于 2014-6-9 21:19
还真有,行首为 exc 的也不能要

为exc的为什么不能用。。。
回复

使用道具 举报

2697#
发表于 2014-6-9 21:19:04 | 只看该作者
sratlf 发表于 2014-6-9 21:07
怎么还有行首;注释情况。。。  再看看还有什么特殊的没。。。




还真有,行首为 exc 的也不能要

点评

为exc的为什么不能用。。。  详情 回复 发表于 2014-6-9 21:47
回复

使用道具 举报

2696#
 楼主| 发表于 2014-6-9 21:07:21 | 只看该作者
527104427 发表于 2014-6-9 21:03
S大看一下,这段改成这样应该更严谨一点

怎么还有行首;注释情况。。。  再看看还有什么特殊的没。。。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-7-1 07:45

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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