无忧启动论坛

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

grub4dos启动问题,请指点

[复制链接]
跳转到指定楼层
1#
发表于 2010-2-5 15:27:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我做了一个grub4dos引导的ISO启动盘,进入中文菜单前有一个英文菜单,有没有办法跳过英文菜单,直接进入中文菜单。或者直接把英文菜单改成中文菜单也行,避免两极菜单影响启动速度。
我的启动文件如下方法制作:
下载 grub4dos-0.4.5a-2010-01-23.zip
提取 chinese目录下的"grldr" (CRC32:4D3E6BC4)
改名为 "grldr.bin"
用 Uedit32 修改 3beac 开始的4个字节为 42 4F 4F 54
保存,然后用UltraISO作为ISO的引导文件
TEST05.rar (269.7 KB, 下载次数: 67)
附件就是
2#
发表于 2010-2-5 16:03:30 | 只看该作者
原帖由 pzppzp 于 2010-2-5 15:27 发表
改名为 "grldr.bin"
用 Uedit32 修改 3beac 开始的4个字节为 42 4F 4F 54


请问这么做是为了什么呢?

至于最开始那个英文菜单是 grldr的内置菜单,你把那个改了就行了
回复

使用道具 举报

3#
 楼主| 发表于 2010-2-5 17:07:40 | 只看该作者
用 Uedit32 修改 3beac 开始的4个字节为 42 4F 4F 54
这样是为了把menu.lst放到BOOT目录下,否则它默认在grub下面找.

那个英文菜单是 grldr的内置菜单,这个要怎么改啊?什么工具改?

最新menu.lst内容如下:(在虚拟机上全部启动正常)
find --set-root /BOOT/FONT.GZ
fontfile /BOOT/FONT.GZ
timeout 20
default 1
title
clear
title [1] 从硬盘启动
          checkrange 0X80 read 0X8280 && map (hd1) (hd0)
          checkrange 0X80 read 0X8280 && map --hook
          chainloader (hd0)+1
title [2] 重启
          reboot
title [3] 关机
          halt
title [4] 启动 CDlinux0.95 标准WEP版
          find --set-root /CDlinux/bzImage
          kernel /CDlinux/bzImage quiet CDL_LANG=zh_CN.UTF-8
          initrd /CDlinux/initrd
title [5] 启动 MS-DOS 7.10
          find --set-root /BOOT/CN_DOS.IMA
          map --mem /BOOT/CN_DOS.IMA (fd0)
          map --hook
          chainloader (fd0)+1
          rootnoverify (fd0)
title [6] 启动 Windows PE
          find --set-root /00PE/SETUPLDR.BIN
          chainloader /00PE/SETUPLDR.BIN
我最终目的是要求刻碟和量产后能在不同的电脑上启动,大家看有什么问题吗?欢迎批评!
附件是新的ISO启动模块 TEST05B.rar (270.05 KB, 下载次数: 50)

[ 本帖最后由 pzppzp 于 2010-2-5 17:20 编辑 ]
回复

使用道具 举报

4#
发表于 2010-2-5 17:55:45 | 只看该作者
晕倒,搞得那么复杂就是改了个目录名啊。。。

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=126637

用这个直接修改内置菜单,要什么目录就什么目录的
回复

使用道具 举报

5#
发表于 2010-2-5 18:09:35 | 只看该作者
好像大部分的习惯都是在前面加个 find
像你这个每个选项都用了
其实这个习惯不是很好,如果硬盘上有同样路径同样名字的文件,很容易导致错误的定位
如果内置菜单最前面有
configfile
那么只要启动设备上有menu.lst,这个就是(bd)和root所在的区
你的文件和目录也都在这个区上
所以根本不需要find这行

如果放到内置菜单中,去掉configfile,那定位就是grldr文件所在分区,也是你的文件和目录所在分区,同样不需要fiind
如果一定要find
为了避免同路径同名的错误定位
可以在find前面加一个判断语句,优先定位到当前分区
例如
find --set-root /BOOT/FONT.GZ
改为
ls /BOOT/FONT.GZ || find --set-root /BOOT/FONT.GZ


另外
title [1] 从硬盘启动
       checkrange 0X80 read 0X8280 && map (hd1) (hd0)
          checkrange 0X80 read 0X8280 && map --hook
          chainloader (hd0)+1

这个方法是没问题的,不过实际上不一定要map为(hd0),因为这个跟启动 /ntldr不一样,也可以这样子启动

checkrange 0x80 read 0x8280 && rootnoverify (hd1)
checkrange 0x80 read 0x8280 || rootnoverify (hd0)
chainloader +1

[ 本帖最后由 NicTense 于 2010-2-5 18:11 编辑 ]
回复

使用道具 举报

6#
 楼主| 发表于 2010-2-5 22:02:52 | 只看该作者
pxe detect
configfile
default 0
timeout 0

title find /BOOT/menu.lst
        errorcheck off
        configfile /BOOT/menu.lst
        find --set-root --ignore-floppies --ignore-cd /BOOT/menu.lst && configfile /BOOT/menu.lst
        errorcheck on
        commandline

title commandline
        commandline

title reboot
        reboot

title halt
        halt
先谢谢 NicTense
我的内置菜单这样行吗?假如其它盘根目录下有BOOT的文件夹,并且里面有menu.lst,
那么有可能会导致错误的定位吗?如果这样,要怎么改写为好???
回复

使用道具 举报

7#
发表于 2010-2-5 22:54:40 | 只看该作者
你这个菜单是优先启动盘根目录的menu.lst
然后是 /boot/menu.lst
都没有,再找其他盘的

你不是说要把中文菜单写进内置菜单吗
那样,这个内置菜单可以替换掉的

pxe detect
这句如果你永远不需要网启的,没必要存在
configfile
这句是告诉grub,如果启动盘根目录存在 menu.lst文件,则转到该菜单
如果你用内置菜单,这行得去掉,要不又跑到根目录的menu.lst去
回复

使用道具 举报

8#
 楼主| 发表于 2010-2-5 23:00:26 | 只看该作者
我永远不需要网启,NicTense您能帮我把外部菜单内置一下吗?
grldr.rar (268.08 KB, 下载次数: 50)
顺便帮我看一下还有什么问题,麻烦了,谢谢!
回复

使用道具 举报

9#
 楼主| 发表于 2010-2-5 23:28:24 | 只看该作者
我还有一点很好奇,现在论坛上的PE和盘,大家都在一个ISO文件里有几种引导方式,EZBBT,
grub4dos等等,不知为什么要弄这么多种,按理说有一种就好了。
回复

使用道具 举报

10#
发表于 2010-2-5 23:43:35 | 只看该作者
grldr.rar (119.96 KB, 下载次数: 42)

改好了,下次要修改用上面那个工具修改好保存就行了

你的菜单写错了1个地方

从硬盘启动那里,由于上面2句决定root到哪个硬盘,所以最后那句只能 chainloader +1 前面不能加(hd0)

顺序被我改了一下,你可以自己用那个工具打开了修改

第一行的title被我取消了,如果你是故意留空行的,那就自己补回去吧,然后把default 后面的数字加1就可以了
回复

使用道具 举报

11#
发表于 2010-2-5 23:46:08 | 只看该作者

回复 #9 pzppzp 的帖子

呵呵,2钟原因
第一种是不甚了了,懂一半不懂一半,原来怎么样就怎么样,照搬,和的时候只要能将其引导就满足了

第二种是为了追求多方式启动,指导思想是越多越好,菜单越眩越好
回复

使用道具 举报

12#
发表于 2010-2-5 23:49:59 | 只看该作者
对了,我在最后加了一个隐藏菜单,命令行模式
当前面那些启动项的文件找不到时,就跳到命令行

另外就是这样内置之后,外面的菜单是作废了的,除非你在内置菜单中增加选项加载

另外就是其实没必要改名为 grldr.bin

[ 本帖最后由 NicTense 于 2010-2-5 23:52 编辑 ]
回复

使用道具 举报

13#
 楼主| 发表于 2010-2-6 10:19:16 | 只看该作者
谢谢了,我今晚量产试试
昨天的版本我量产真机测试,发现PE启动加载映象时,XP安装前搜索硬件,用的时间比较长,可能是需要加载USB2.0驱动吧,因为我的U盘是高速SLC双通U盘,完全发挥出来应该很快的
我知道有很多在PE启动前加USB2.0驱动,但没见过XP安装前加的,不知怎么样?

[ 本帖最后由 pzppzp 于 2010-2-6 10:31 编辑 ]
回复

使用道具 举报

14#
发表于 2010-2-6 10:42:25 | 只看该作者

回复 #13 pzppzp 的帖子

我家里没有不支持usb2.0的老爷机,所以没弄过这个功能

貌似就是用grub加载 plpbt..bin 而已

chainloader /plpbt.bin

关于这个东西详见这个
http://bbs.wuyou.net/forum.php?m ... &extra=page%3D2
回复

使用道具 举报

15#
 楼主| 发表于 2010-2-6 10:57:54 | 只看该作者
您的菜单里有 fallback 8
如果后面的语句中有一句执行失败就跳到菜单8
对吗?

现在的菜单应该不会去搜索其它盘的同路径同名文件吧?

[ 本帖最后由 pzppzp 于 2010-2-6 11:02 编辑 ]
回复

使用道具 举报

16#
发表于 2010-2-6 11:28:22 | 只看该作者

回复 #15 pzppzp 的帖子

是的,即如果你要启动的那些文件找不到就直接跳到命令行

不去搜索其他盘的文件了,这样可以加快速度,而且避免错误

由于你的文件都是放在这个盘上,不会放其他盘,就这么设定了
回复

使用道具 举报

17#
 楼主| 发表于 2010-2-11 09:33:44 | 只看该作者
量产了几个U盘,成功了。
只有关机命令在一台技嘉945GC主板上死机,据说是grub4dos毛病
回复

使用道具 举报

18#
发表于 2010-2-11 11:35:14 | 只看该作者

回复 #17 pzppzp 的帖子

halt命令的确不是所有机子都能正常关机的
这个不能说是毛病吧,只能说兼容性不好,我也有一个笔记本用不了halt
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-5-17 22:24

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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