无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 6054|回复: 7

Grub4Dos启动U盘,bd设备出错?

[复制链接]
发表于 2010-9-16 10:45:55 | 显示全部楼层 |阅读模式
grub4dos:2010-08-12 中文版
U盘格式为HDD,分区引导错码为 NT5.X,引导文件 XDLDR(GRLDR改名),能启动到Grub4Dos环境,但经常不能加载菜单,发现(bd)设备总是指向(hd0,1),实际应该是 (hd0,0)

将菜单全部删除,GRLDR内置菜单中只写一句 commandline,截了两张图,大家帮忙看看什么原因,谢谢。

第1张图中显示的是分区表,0x8280,0x829C,0x82A0等值,此时(bd)设备不能使用,因为没有root 命令,当前设备也不能使用,但(hd0,0)本身是可以访问的。

第2张图是手动改引导设备分区号,当前设备指向引导设备,此时访问正常。

分别在两台笔记本和虚拟机上测试,情况均相同

[ 本帖最后由 tuxw 于 2010-9-16 10:58 编辑 ]
Test-2010-09-16-10-28-26.png
Test-2010-09-16-10-31-00.png
发表于 2010-9-16 16:14:17 | 显示全部楼层
不知是如何引导的,有没有修改过什么东西之类的也没有说清楚.
回复

使用道具 举报

 楼主| 发表于 2010-9-16 21:19:45 | 显示全部楼层
U盘格式HDD,分区格式 FAT32,用 BOOTICE 写 NT5.X 到分区PBR(写PBR时将NTLDR 改名为 XDLDR)

08-12 中文版 GRLDR,内置菜单只有一句:commandline
将 GRLDR 改名为 XDLDR 放入U盘目录 (截上面两幅测试图时,整个U盘只有这一个文件跟启动相关)

[ 本帖最后由 tuxw 于 2010-9-16 21:33 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2010-9-16 21:49:41 | 显示全部楼层
在硬盘上测试,也存在同样的问题


MBR,IBM F11代码
(hd0,0),主分区,NTFS,安装XP
(hd0,1),主分区,FAT32,PBR 用 BOOTICE 写入NT5.X(同时改NTLDR为XDLDR)

将一楼的 XDLDR 放在 (hd0,1) 根目录
重启用 IBM F11 启动 (hd0,1),进入 Grub4Dos 命令行,读得 *0x8208=0x00FFFF,此时不用 (bd) 访问 (hd0,1)。
手动 write 0x8208 0x01FFFF 后,可 ls (bd)/

本过程在VMWare 中测试
回复

使用道具 举报

 楼主| 发表于 2010-9-16 21:54:53 | 显示全部楼层
问一下,怎么将附件中的图片插入正文中间后,不要让后面的附件再显示图片?

我先上传附件,再用插入图片按钮来引用附件地址的话,同一图片会显示两次?跟这里一样:http://bbs.wuyou.net/viewthread. ... ;page=25#pid2033990
回复

使用道具 举报

发表于 2010-9-17 06:48:21 | 显示全部楼层
@tuxw

这是你的使用方法问题。你这种使用方法,不可能获得正确的 (bd) 。

你用 NT5 作为引导代码,是注定不会把分区号码传给 GRLDR 的。只有用 GRLDR 的引导代码才能传递分区号码。

你需要把 NT5 代码换成 GRLDR 的引导代码。或者在 MBR 安装 GRLDR 的引导代码也行。

如果安装在 MBR,那么这个代码会自动将搜索到的 GRLDR 所在分区当作启动设备。

如果安装在分区引导扇区,需要用 bootlace 的 --floppy=P 选项将分区号码进行明确的指定(README 中有如何安装到分区引导扇区的说明)。 否则,代码仍然不能传递正确的分区号码给 GRLDR。
回复

使用道具 举报

发表于 2010-9-17 16:07:44 | 显示全部楼层
一个比较简单的方案:
建议使用默认菜单(不修改内置菜单)
那外置菜单menu.lst所在磁盘就是bd.
回复

使用道具 举报

 楼主| 发表于 2010-9-17 17:06:02 | 显示全部楼层
感谢回复,明白这个原因了

之所以关注这个(bd),主要是为了避免使用find,解决grub4dos启动的不定性问题。

Grub4Dos启动时在根目录下搜索grldr,grldr又按一定的顺序去寻找menu.lst 的方式固然增加了启动的“成功率”,但也增加了启动的不确定性。之所以加上引号,如果启动的并不希望的目标系统,尽管机器启动成功了,对用户来说仍然是失败的。

所以我不太喜欢将Grub4Dos安装到MBR,因为不能确定它在未知的系统环境中会启动到哪里去。
能否不由引导器传分区号给grldr,而是让它自己判断自己的位置?
还有找菜单的方式,我觉得内置菜单优行于/menu.lst较好,这样找菜单的顺序可以由用户完全确定

@chenall
我就是不想使用 menu.lst 才打(bd)的主意,因为grldr找/menu.lst存在不确定性,找到的不一定是我希望的目标。
我的想法是假定(bd)总是能正确,先将它保存下来,然后将 (md)4+8 也保存到内存盘,这样无论有多少级菜单如何跳转,总是能用一个统一的方式 configfile (md)4+8 来返回主菜单。甚至可以在仿真Dos后通过grub.exe直接回到原来的环境(包括引导、当前设备,内置菜单等)
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-19 01:24

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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