无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 7505|回复: 19
打印 上一主题 下一主题

[求助] grub大师,有问题请进!

[复制链接]
1#
发表于 2013-5-26 23:51:31 | 显示全部楼层
第一个问题,看看这里:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=206185

第二个问题,是可以合并的。不过你的语句啰嗦了些,if "%@root:~1,1%"=="f" && find --set-root --devices=f /winpe/xyly_mini.iso && map  /winpe/xyly_mini.iso (0xfa) || find --set-root --ignore-floppies --ignore-cd /winpe/xyly_mini.iso && map  /winpe/xyly_mini.iso (0xfa)
可以换为find --set-root --ignore-floppies --ignore-cd /winpe/xyly_mini.iso && map  /winpe/xyly_mini.iso (0xfa)这最后的一句。

map --e820cycles=3这个防蓝屏的参数最好不要乱用,我的经验是有些机器必须用它,有些机器加上“3”就完蛋。因此你可以加个变量,比如3秒内不按某个键,就自动加上参数并设置为“3”,否则按ESC可免参数,即设置参数为0,按数字0-9变可设置相应参数。
回复

使用道具 举报

2#
发表于 2013-5-27 00:23:36 | 显示全部楼层
其实那文章说得很清楚了。
#*0x82b9的低8位为ud区的设备类型。比如calc *0x82b9&0xff得0x80,说明ud区被格式化为hdd类型
0x82a0是当前根驱动器。
这句话的意思是说,当以fbinist方式启动时,将UD区被格式化成的类型传递给当前根驱动器,即()/
回复

使用道具 举报

3#
发表于 2013-5-27 00:38:17 | 显示全部楼层
这个也很简单,可以把
  1. map --e820cycles=3
  2. map --hook
复制代码
换成这样:
  1. set keyt=
  2. pause --wait=3 && set /A keyt=*0x4CB00
  3. if /i not "%keyt%"=="0x20" map --e820cycles=3
  4. map --hook
  5. set keyt=
复制代码
这样,按空格取消参数,不按键或者按其它任意键则设置参数map --e820cycles=3。
我这样改还没遇到不能过蓝屏这关的。
回复

使用道具 举报

4#
发表于 2013-5-27 00:38:56 | 显示全部楼层
俊采星驰 发表于 2013-5-27 00:38
这个也很简单,可以把换成这样:这样,按空格取消参数,不按键或者按其它任意键则设置参数map --e820cycles ...

你可以简单修改即可弄成自己想要的。
回复

使用道具 举报

5#
发表于 2013-5-27 01:25:31 | 显示全部楼层
zds1210 发表于 2013-5-27 00:56
我想改成按esc键取消参数,代码怎么改?谢谢 了。最好还可以选择其它参数,毕竟 3 -1这俩个参数,还是有 ...
  1. set keyt=
  2. pause --wait=3 && set /A keyt=*0x4CB00
  3. set e820=
  4. if not exist keyt set e820=-1
  5. if exist keyt set e820=%keyt:~-1%
  6. map --e820cycles=%e820%
  7. map --hook
  8. set e820=
  9. set keyt=
复制代码
没测试过,试试吧
回复

使用道具 举报

6#
发表于 2013-5-27 01:32:54 | 显示全部楼层
未按键或者按ESC,应该都没有keyt变量。
如果按0-9,%keyt:~-1%取keyt变量的最后一位字符,即0~9。
请你自行改进吧,最好在虚拟机里敲代码,然后修正之。

那个担心找不到光盘中内核的问题,主要看bios能否识别量产的CD,能的话就能find到。
回复

使用道具 举报

7#
发表于 2013-5-28 00:45:20 | 显示全部楼层
本帖最后由 俊采星驰 于 2013-5-28 01:04 编辑
zds1210 发表于 2013-5-27 11:28
我想改成,按空格键参数为-1,按0-9键得到0-9参数,按其它键或不按键得参数为3。测试好提供给我。这样子比 ...


下面这段应该可以实现,不过由于使用了goto命令,需要把这段代码弄成批处理,然后调用。
  1. set keyt=
  2. pause --wait=3 && set /A keyt=*0x4CB00
  3. set e820=
  4. if /i "%keyt%"=="0x20" set e820=-1
  5. if %keyt%>=0x30 && if %keyt%<=0x39 set e820=%keyt:~-1%
  6. if exist e820 goto E3
  7. set e820=3
  8. :E3
  9. map --e820cycles=%e820%
  10. map --hook
  11. set e820=
  12. set keyt=
复制代码
不加if %keyt%>=0x30 && if %keyt%<=0x39这个判断的话会乱套,末尾为0~9的键多了。
另外不按键时,keyt=0x1
按下ESC,keyt变量不存在。
回复

使用道具 举报

8#
发表于 2013-5-28 12:12:18 | 显示全部楼层
zds1210 发表于 2013-5-28 11:40
感觉这样子修正,不用调用批处理,更加好,不知道对不对?按空格键参数设置为-1,按数字键为0-9,不按键或其 ...

嗯,没有问题。可以弄到你合盘测试了。

点评

测试完全成功了。哈哈。 测试代码如下: title 3.运行win 2003 PE 强化版 echo $[1106] loading win 2003 pe, please wait ... #以下语句在老机中打开,可增加U盘加速的兼容性 #map --mem ()/winpe/WIN03pe.  详情 回复 发表于 2013-5-28 12:49
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-12-25 22:31

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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