无忧启动论坛

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

加载USB驱动后启动GRUB.EXE菜单显示中文乱码

[复制链接]
跳转到指定楼层
1#
发表于 2008-8-22 01:31:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在BIOS设置USB启动,U盘(NT+GRLDR)启动正常。因设置BIOS过于麻烦,所以在XP启动菜单BOOT.INI中调用GRLDR加载虚拟软盘进入纯DOS中加载USB驱动。然后在纯DOS中运行U盘中的GRUB.EXE,这样就无须BIOS支持,对不支持USB启动的老主板有用。能运行USB中的WINPE。但MENU.LST菜单中文显示乱码,也无法显示背景图。


最终用 PLoP Boot Manager 解决了问题,

title PLoP Boot Manager
find --set-root /plpbt.bin
kernel /plpbt.bin

[ 本帖最后由 gwerdf 于 2009-3-2 23:27 编辑 ]

plpbt.rar

23.32 KB, 下载次数: 368, 下载积分: 无忧币 -2

2#
发表于 2008-8-22 08:45:45 | 只看该作者
和USB驱动没什么关系吧。我想应该是GRLDR的问题,选用汉化的GRLDR就行了,另外你的中文字库的路径是否正确?检查一下吧。
回复

使用道具 举报

3#
 楼主| 发表于 2008-8-22 09:45:04 | 只看该作者
grldr和grub.exe都是最新的0808的、支持中文的。已经用遍了网上能找到的方法试了,什么注意大小写、加find --set-root 以及 find --set-root --ignore-floppies 、更改U盘文件显示属性、给BACK.XPM、FONTS、都加.GZ后缀名............都不行,直接用U盘启动一点问题都没有。是真的grub.exe文件有大bug还是?以下是我的menu.lst清单

default 0
timeout 30

fontfile /USBOOT/FONTS.GZ
splashimage /USBOOT/BACK.XPM.GZ

title [0] 启动 WinPE 维护系统
find --set-root /LDRXPE
chainloader /LDRXPE
boot

title [1] 启动深山红叶 DOS 工具箱
find --set-root /USBOOT/DOS98.IMG
map --mem /USBOOT/DOS98.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
boot

title [2] 启动 MAXDOS 工具箱
find --set-root /USBOOT/MAXDOS.IMG
map --mem /USBOOT/MAXDOS.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
boot

title [3] 效率源硬盘修复系统
find --set-root /USBOOT/XLYBIG.IMG
map --mem /USBOOT/XLYBIG.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
boot

title [4] 从硬盘启动
root (hd1,0)
map +1 (hd0)
chainloader +1

title [5] 从光盘启动
chainloader (cd0)
rootnoverify (cd0)
boot

title [6] Grub 命令行模式
commandline

title [7] 重新启动
reboot

title [8] 关闭计算机
halt
回复

使用道具 举报

4#
发表于 2008-8-22 17:58:47 | 只看该作者

问题在fontfile文件没有执行

fontfile /USBOOT/FONTS.GZ可能没有执行
最好将中文字体文件fonts复制到每个盘的根目录,看哪个起作用,,因为fontsfile默认会搜索根目录、boot文件夹、boot\grub文件夹、而且级别不同,与改名无关。

[ 本帖最后由 yfwang0798 于 2008-8-22 20:04 编辑 ]
回复

使用道具 举报

5#
发表于 2008-8-22 22:23:44 | 只看该作者
当你在 DOS 下使用 USB 驱动之后,你的 DOS 可以识别 U 盘,但 进入 grub.exe 之后,DOS 将不复存在, DOS 的 USB 驱动当然也无影无踪了。此时在 grub 中是无法访问 U 盘的。这就是

fontfile /USBOOT/FONTS.GZ
splashimage /USBOOT/BACK.XPM.GZ

这两条命令执行失败的原因。至于说为什么

find --set-root /LDRXPE
chainloader /LDRXPE

能够成功执行,则可能是因为你的(虚拟的或者真实的)硬盘或软盘上有 /ldrxpe 文件。
回复

使用道具 举报

6#
 楼主| 发表于 2008-8-22 23:06:46 | 只看该作者
首先感谢不点百忙中关注我的问题,您说的情况我也试了把硬盘里的WINPE卸载干净后再次运行,得出的结果还是一样,而且U盘里的WINPE也可以正常启动。
dos里autoexec.bat清单:

devload usbaspi.sys /e /v /norst
devload di1000dd.sys /dR
@echo off
set upan=r
if exist %upan%:\setup\grub.exe goto start
set upan=s
if exist %upan%:\setup\grub.exe goto start
set upan=t
if exist %upan%:\setup\grub.exe goto start
set upan=u
if exist %upan%:\setup\grub.exe goto start
set upan=v
if exist %upan%:\setup\grub.exe goto start
set upan=w
if exist %upan%:\setup\grub.exe goto start
set upan=x
if exist %upan%:\setup\grub.exe goto start
set upan=y
if exist %upan%:\setup\grub.exe goto start
set upan=z
if exist %upan%:\setup\grub.exe goto start
echo no usb disk
pause
goto exit
:start
%upan%:
cd \setup
grub.exe
goto exit
:exit


boot.ini调用grldr的内置清单:

timeout 0
default 0
find --set-root /USBDRV.IMA
map --mem /USBDRV.IMA (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
boot

[ 本帖最后由 gwerdf 于 2008-8-22 23:22 编辑 ]
回复

使用道具 举报

7#
发表于 2008-8-22 23:15:30 | 只看该作者
你可能在 dos 之下已经把某个磁盘映像文件(比如通过 hmload 工具)放在内存中了。这个内存虚拟盘被 grub4dos 侦测到,因此,内存虚拟盘里面的 ldrxpe 文件可以被 grub 发现。如果你在映像之中也放上 /USBOOT/FONTS.GZ 等文件,则它们也会被找到。
回复

使用道具 举报

8#
 楼主| 发表于 2008-8-22 23:32:14 | 只看该作者
我曾经用这个U盘在别的机上(老机,根本不支持USB启动)试过,而且从来就没有装过WINPE。能启动U盘PE,问题还是一样。
回复

使用道具 举报

9#
发表于 2008-8-24 15:23:48 | 只看该作者
这就可以确定,你是用内存盘来放置 PE 的文件的。既然你已经说了,BIOS 不支持 U 盘启动,那么你一定是把 PE 放在内存盘中了,否则 PE 的文件就不可能被 grub4dos 找到。你也可以把 fonts 等文件也放在内存盘,这样就没有问题了。
回复

使用道具 举报

10#
 楼主| 发表于 2008-8-24 23:09:18 | 只看该作者
不点,直到现在您还在用臆测的思想来考虑问题,我加载的USBDRV.IMA只有320K,总共才7个文件(纯DOS必备文件3个文件、USB驱动文件USBASPI.SYS、给USB分配盘符文件DI1000DD.SYS、加载USB驱动文件devload.com、自动运行文件AUTOEXEC.BAT).而在列出的AUTOEXEC.BAT清单里没有任何复制的动作。PE在内存的说法从何谈起,而且在AUTOEXEC.BAT已经说得非常清楚启动GRUB.EXE是进入USB的SETUP中执行的。您为什么不实践一下再来下结论。坐在那里想上几天的结果就是PE还是放在内存盘里?
回复

使用道具 举报

11#
 楼主| 发表于 2008-8-25 01:20:04 | 只看该作者
不点原话:当你在 DOS 下使用 USB 驱动之后,你的 DOS 可以识别 U 盘,但 进入 grub.exe 之后,DOS 将不复存在, DOS 的 USB 驱动当然也无影无踪了。此时在 grub 中是无法访问 U 盘的。

我的实践证明这个观点完全是错误的,不知道不点是如何得出这样的结论?我刚实验了一下,在进入GRUB.EXE之后,选第7项,也就是:
title [6] Grub 命令行模式
commandline
在 GRUB> 键入 QUIT 退出 GRUB ;屏幕上显示的竟然是 SETUP> ;运行DOS的内部命令没一点问题,事实完全证明此时DOS环境依然存在,GRUB.EXE完全是依附DOS而运行的。既然DOS还存在,那么用devload.com加载的USB驱动也肯定是存在的。SETUP> 这个符号已经证明了一切,因为在我的所有盘所有分区根目录中只有U盘里有 SETUP 这个文件夹。
回复

使用道具 举报

12#
发表于 2008-8-25 09:54:44 | 只看该作者
原帖由 gwerdf 于 2008-8-24 23:09 发表
不点,直到现在您还在用臆测的思想来考虑问题,我加载的USBDRV.IMA只有320K,总共才7个文件(纯DOS必备文件3个文件、USB驱动文件USBASPI.SYS、给USB分配盘符文件DI1000DD.SYS、加载USB驱动文件devload.com、自动运行文件AUTOEXEC.BAT).而在列出的AUTOEXEC.BAT清单里没有任何复制的动作。PE在内存的说法从何谈起,而且在AUTOEXEC.BAT已经说得非常清楚启动GRUB.EXE是进入USB的SETUP中执行的。您为什么不实践一下再来下结论。坐在那里想上几天的结果就是PE还是放在内存盘里?


抱歉,你这个情况我还是第一次碰到,确实有些奇怪。其实不要太过于看重我说的话,因为我和其他人一样,回答问题难免要采用臆测的方法。

我现在再猜测一下。假定你的 USB 驱动特别牛(纳闷,怎么其开发者不广告一下呢?),能够被 grub4dos 的中断恢复机制所承认(闯过了中断探测恢复过程),这样,进入 grub 后,其驱动仍然存在。那么在这样的情况下,你进入 grub 之后,仍然可以访问你的 U 盘的内容。

你不是可以进入 grub 的命令行吗?你就在命令行下敲入命令,寻找你的 U 盘的内容,看看是否 U 盘可以被 grub 识别出来。如果你能找到 ldrxpe 文件,你也应该可以找到 fonts 等文件。这种情况以前没出现过,你得当一次探索者了。请你一定多加尝试,看看能否给大家带来新的惊喜。

原帖由 gwerdf 于 2008-8-25 01:20 发表
不点原话:当你在 DOS 下使用 USB 驱动之后,你的 DOS 可以识别 U 盘,但 进入 grub.exe 之后,DOS 将不复存在, DOS 的 USB 驱动当然也无影无踪了。此时在 grub 中是无法访问 U 盘的。

我的实践证明这个观点完全是错误的,不知道不点是如何得出这样的结论?我刚实验了一下,在进入GRUB.EXE之后,选第7项,也就是:
title [6] Grub 命令行模式
commandline
在 GRUB> 键入 QUIT 退出 GRUB ;屏幕上显示的竟然是 SETUP>;运行DOS的内部命令没一点问题,事实完全证明此时DOS环境依然存在,GRUB.EXE完全是依附DOS而运行的。既然DOS还存在,那么用devload.com加载的USB驱动也肯定是存在的。SETUP> 这个符号已经证明了一切,因为在我的所有盘所有分区根目录中只有U盘里有SETUP 这个文件夹。


进入 grub 之后,DOS 的程序代码早已被 grub.exe 当作数据备份到绝对地址 2M 之处了。DOS 只是一个死的 DOS,无法起作用。当你敲入 quit 时,grub 又从绝对地址 2M 处把 DOS 的现场加以恢复,这样 DOS 又活了起来。

一个死的 DOS 是不能运作的,所以在 grub 之下,你不能调用 DOS。但是,DOS 下的驱动,则可能会是一个例外。那些超级的驱动程序设计者,有可能针对 grub.exe 的特点,写出了一个可以被 grub4dos 使用的 DOS 驱动程序。一个什么样的 DOS 驱动可以被 GRUB 使用呢?答案很简单,只要 DOS 驱动编写成完全不调用 DOS 而(最多)只调用 BIOS,则这样的 DOS 驱动都可能被改造成与 grub4dos 兼容的形式。
回复

使用道具 举报

13#
 楼主| 发表于 2008-8-25 23:57:17 | 只看该作者
在这里鄙人先声明一下:就这个话题,这是最后一次发帖。
经过本人一再测试(这很难,因为我的电脑知识仅仅是懂得一点皮毛,研究这种艰涩难懂的机器语言不如去多看看那上下起伏的K线图来得惬意),就我个人意见完全可以认定(菜单中文乱码及无法显示背景图现象)是 "GRUB.EXE" 这个文件有 BUG 。为了避免这种不愉快现象在测试中又发现了 “GRUB.EXE” 的另一个 BUG :把启动 WINPE 菜单内置到 GRUB.EXE 中让 GRUB.EXE 直接启动 PE ,为了避免出错特地下载了 2008.01.01 的 GRUBMENU.EXE 导入,并且导出看了确定无误后才重新启动电脑。但等来结果却是 GRUB.EXE 依然故我地把 U 盘的 MENU.LST 加载并显示出来。就好比召来一位上房妹,对她说我很孤独,你陪我聊聊天就可以了,但她还是迅速脱光衣服躺到床上等你来...........哈哈,离题了!最后奉劝不点还是去检查检查你那宝贝吧,别人是不会给你解决什么问题的,就如我在这里发帖求助一样。真应了那句话:股市是没有救世主的!!!
回复

使用道具 举报

14#
发表于 2008-8-26 07:36:54 | 只看该作者
牛人一个。


回复

使用道具 举报

15#
发表于 2008-8-26 08:35:50 | 只看该作者
gwerdf,有人说了,grub4dos 需要憎恨者。因此,你实际上也是在帮助 grub4dos。没关系的,总有人会关注此问题的。不过憎恨之余,你最好还是研究一下 grub 的命令行,不要总是使用图形界面的程序。不要对命令行感到畏惧,一旦你掌握了命令行,你会上瘾的。我真的很遗憾你碰巧是一个不使用命令行的人,否则,此问题的谜底马上就能揭晓了。还有没有其他志愿者帮助测试这个问题?

grub.exe 在没有命令行参数的情况下,默认就是启动当前目录下的 menu.lst 文件。即使你把某个 menu.lst 文件内置到 grub.exe 中,它也是不会优先的。没想到这点困难就把你挡住了。要有耐心一点。
回复

使用道具 举报

16#
发表于 2008-8-26 09:48:52 | 只看该作者
山不言高
海不言深
天不言阔

毛主席说: 凡事要抓住最重要的。
何须浪费时间……
回复

使用道具 举报

17#
发表于 2008-8-26 22:49:05 | 只看该作者
1。对字体和背景文件的加载,省略分区标示而采用相对路径的方式是方便灵活,但进grub4dos的方式和过程千变万化,进grub4dos环境后的默认的分区并不是总与字体背景文件所在分区是相同的。

所以要正确加载,强烈建议楼主在menu.lst的开始部分,在字体背景加载前加上一条find --set-root语句:
find --set-root  /USBOOT/FONTS.GZ
(请记住set前面是两个短横)

2.好像曾经看到有人说过对于某些主板,在启动前就插入u盘,在dos下不加载驱动就能看到u盘,加载usb驱动后可能出现两个usb盘符。
对于这种不要驱动就能识别U盘的主板,grub4dos当然也能启动主板识别到的U盘中的pe.

3。知之为知之,不知为不知。判断一个软件的bug,并不是靠一个人的主观愿望。就是楼主用到的devload.com,di1000dd.sys都不是没有问题的软件,它们也有兼容性问题和漏洞。

4.不是每个人都有不点那样的好脾气,强烈建议楼主在炒股之余,学习一下中国传统美德。否则没有人愿意帮助一个无知,自满而且出言不逊的人。

[ 本帖最后由 zw2312914 于 2008-8-26 23:23 编辑 ]
回复

使用道具 举报

18#
发表于 2008-11-15 16:58:51 | 只看该作者
请问怎么能把微软内存检测做到这个启动菜单里
回复

使用道具 举报

19#
发表于 2008-11-15 17:03:01 | 只看该作者
请问怎么能把微软内存检测做到这个启动菜单里
我把内存检测工具做到这个启动菜单里后
上面就显示乱码
这个怎么处理?
请各位大峡指教
回复

使用道具 举报

20#
发表于 2008-12-16 13:56:17 | 只看该作者
怎么到最后问题还是没解决啊
回复

使用道具 举报

21#
发表于 2009-2-8 03:26:03 | 只看该作者

回复 #1 gwerdf 的帖子

fontfile (fd0)/boot/fonts
或者
find --set-root /boot/fonts(可以随便建个文件)
fontfile /boot/fonts

[ 本帖最后由 tbecomeo 于 2009-2-8 03:56 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-16 07:04

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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