![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 02:10 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区 » WinGrub的问题 |
| 可打印版本 4,928 / 44 |
| 第1楼 waffle | 发表于 2005-01-09 00:00 |
| 中级用户 发帖 37 积分 230 | |
|
WinGrub的问题 我把Grub装在了u盘的启动扇区上,grldr放u盘根上,menu.lst放u盘/grub目录下。但是启动的时候老说找不到menu.lst,进grub控制台,root一看u盘被当成了fd0,照理说应该找得到menu.lst。从控制台能进其他系统。后来在(hd0,0)上放了个menu.lst马上找到了。请问是什么原因?
|
|
| 第2楼 zdq789 | 发表于 2005-01-09 00:00 |
| 初级用户 发帖 10 积分 182 | |
|
我也有同样的问题,我是把u盘格式化为zip模式,用它启动电脑,在dos下运行grub,可以读出硬盘的menu文件,却读不出u盘上的menu! 而且我还无法把grub装入u盘的mbr,grub能够root出fd(0),但读不出u盘里的stage文件! 但我觉得,你既然能把归入把写入u盘,那grub应该可以读出u盘里的stage,也应该可以读出menu啊! 我是这样做的,root (fd0) setup (fd0)然后提示找不到stage文件,但文件确实存在!你是怎样把grub写入u盘的呢?请教?
|
|
| 第3楼 waffle | 发表于 2005-01-10 00:00 |
| 中级用户 发帖 37 积分 230 | |
|
我的u盘好像只能USB-ZIP启动,FAT16格式,我发现用这种方式启动的时候主板不会理会u盘的扇区0(MBR),而是直接读引导扇区(扇区32),和软盘启动类似。我没有直接在物理机器上装wingrub,而是在虚拟机上的win98装了wingrub,然后把grub装在一个软盘上(实际用的是物理机上的一个软盘镜像),并且把虚拟机里硬盘上的menu.lst删除了,在虚拟机里用软盘启动能从软盘读到menu.lst,一切正常。再把这个软盘的启动扇区(也就是物理机上软盘镜像的第一个扇区)写到u盘的启动扇区(但要保留原本u盘启动扇区的BPB)。
|
|
| 第4楼 waffle | 发表于 2005-01-12 00:00 |
| 中级用户 发帖 37 积分 230 | |
|
又发现个问题,如果用别的格式化工具格式化u盘,GRLDR非但不能找到menu.lst,连cat (fd0)/+TAB都会说没有找到文件。如果用win98的format,也不能找到menu.lst,但是cat (fd0)/+TAB会出来乱码,u盘上找不到文件可能和格式化工具有密切关系。出现乱码表示什么,目录被破坏还是怎么了,在windows系统里可是能正常看到文件的。
|
|
| 第5楼 不点 | 发表于 2005-01-12 00:00 |
| 银牌会员 发帖 1,115 积分 2,491 | |
|
可惜我的机器太旧,不支持 USB 启动。猜想原因应该在 BIOS 上。
|
|
| 第6楼 waffle | 发表于 2005-01-12 00:00 |
| 中级用户 发帖 37 积分 230 | |
|
感觉好像不是BIOS的问题,因为同样的机器和u盘,做成USB-ZIP启动方式的Dos启动盘就一切正常,就跟真的软驱一样,也是用盘符A:。
|
|
| 第7楼 不点 | 发表于 2005-01-13 00:00 |
| 银牌会员 发帖 1,115 积分 2,491 | |
|
似乎与 GRUB4DOS 无关。
那么,问题可能是 GNU GRUB 的软盘处理部分有 BUG 了。我们大家都可以研究一下 GNU GRUB 的源代码,尤其是 asm.S 中有关软盘的处理。 另外,将 USB 仿真为硬盘(USB-HDD)时,出现不出现问题呢?问题都搜集起来,或许能提示我们 BUG 在哪。 |
|
| 第8楼 不点 | 发表于 2005-01-13 00:00 |
| 银牌会员 发帖 1,115 积分 2,491 | |
|
请研究这条消息,看是否有用:
http://lists.gnu.org/archive/html/bug-grub/2004-11/msg00035.html |
|
| 第9楼 不点 | 发表于 2005-01-13 00:00 |
| 银牌会员 发帖 1,115 积分 2,491 | |
|
在上述 http://lists.gnu.org/archive/html/bug-grub/2004-11/msg00035.html 的情况下,用
map (fd1) (hd?) 应当就可以了。也就是,把 (fd1) 当作硬盘 (hd?),其中 ? 是一个你认为空闲的硬盘号码,比如用 0 就行。 |
|
| 第10楼 不点 | 发表于 2005-01-13 00:00 |
| 银牌会员 发帖 1,115 积分 2,491 | |
|
补充:
需要再用一条 map --hook 以便你在 grub 下使用硬盘 (hd?) 中的分区和文件。 该“硬盘” 上的文件应当是类似如下的表示法: (hd?,0) ------------- 第一主分区 (hd?,1) ------------- 第二主分区 (hd?,2) ------------- 第三主分区 (hd?,3) ------------- 第四主分区 (hd?,5) ------------- 第一扩展分区 ...................................... |
|
| 第11楼 不点 | 发表于 2005-01-13 00:00 |
| 银牌会员 发帖 1,115 积分 2,491 | |
|
另外一点提示,或许有用:
如果你能获得 GRUB> 的提示符,在提示符下敲入 root ( 也就是 root,一个空格,一个左括号,然后按键盘上的 TAB 制表键,那么,GRUB 将列出 GRUB 所识别到的系统中全部磁盘的号码。 你看看有没有多余的,如果有的话,那么那个多余的磁盘号码,可能就是你的 USB 盘了。如此,你就可以找到 USB 盘上的所有文件了。 |
|
| 第12楼 waffle | 发表于 2005-01-13 00:00 |
| 中级用户 发帖 37 积分 230 | |
|
USB-HDD方式没法启动,据说一般的u盘是可以在USB-ZIP和USB-HDD两种方式之间切换的,但这种切换只有用厂商发布的专用软件才能完成,遗憾的是我这个u盘没有厂家的专用软件。我的u盘128M,全部容量只分了个主分区,FAT16格式。现在是以USB-ZIP方式启动的,grldr是能加载的,但是它不认u盘上的其他文件。root (+TAB的结果是Grub列出了fd0,hd0,hd1,这符合情况,我机器上是有2块硬盘和1个u盘,u盘被认做了fd0。关于map命令,我总觉得用fd0去map个硬盘似乎不妥当,因为既然系统把u盘认成了fd0,那么就会按照软盘的规范来操作了,而软盘是没有分区的概念的,硬盘又是有分区概念的。然后我map (fd0) (fd2)map --hook然后root (+TAB看到fd0,hd0,hd1,hd2root (hd2,0)结果报错error 19:selected cylinder exceeds maximum supported by BIOS
|
|
| 第13楼 不点 | 发表于 2005-01-14 00:00 |
| 银牌会员 发帖 1,115 积分 2,491 | |
|
为什么不这样呢:
map (fd0) (hd2) map --hook 然后root (+TAB看到fd0,hd0,hd1,hd2然后root (hd2,+TAB (此处显示hd2中的全部分区信息) |
|
| 第14楼 不点 | 发表于 2005-01-14 00:00 |
| 银牌会员 发帖 1,115 积分 2,491 | |
|
不过你贴出的错误信息很能说明问题。基本可以断定,错误仍然属于 BIOS 的。
情况可能是这样的:BIOS 虽然实现了 USB 的扇区读写(int13/ah=02和03),但还有某些功能没有实现,比如 int13/ah=08h,或者 int13/ah=15h,或者这些功能实现得不正确,有错误。这些将直接导致 GRUB 不能承认该实现。 但是,缺少这些实现,又可以使得 DOS 能够正常启动,这就给人一个假象,使得我们误认为 GRUB 有 BUG。 那些写这段 BIOS 程序的人,他们只测试 DOS 能够启动就完事了,其实这里面潜藏着问题的。GRUB 不能正常识别它,这就是一个表现。如果你足够多地测试其它 DOS 软件,你还会发现还有别的程序无法运行,或者得到莫名其妙的结果。 |
|
| 第15楼 waffle | 发表于 2005-01-14 00:00 |
| 中级用户 发帖 37 积分 230 | |
|
map (fd0) (hd2)
map --hook root (hd2,+TAB然后出来3个错,分区0,error 19:selected cylinder exceeds maximum supported by BIOS;分区1,error 19:selected cylinder exceeds maximum supported by BIOS分区3,error 19:selected cylinder exceeds maximum supported by BIOS不知道为什么没有分区2。grub把软盘map成硬盘的根据是什么,软盘没有分区这个概念,grub从哪里搞个分区表出来呢?有什么dos软件可以用到你说的那些bios功能? |
|
| 1 2 3 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |