![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 03:09 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区 » Grub安装到USB移动硬盘的问题 |
| 可打印版本 3,881 / 9 |
| 第1楼 wlidan | 发表于 2006-11-30 04:47 |
| 新手上路 发帖 7 积分 15 | |
|
Grub安装到USB移动硬盘的问题 我有一块USB接口的移动硬盘,硬盘型号是FUJITSU MHT2040AH,40G,分3个区,主分区1.9G FAT32,已安装DOS系统,能正常引导并运行DOS下的软件
在DOS的CONFIG.sys中用“device=grub.exe --config-file="/boot/grub/menu.lst"”引导至 Starting cmain()... 时死机,键盘无响应。 DOS启动后在dos提示符下运行grub.exe也是在 Starting cmain()... 时死机,dos启动时未加载emm386.exe,Config.sys文件配置见后,启动详情如下图: ![]() 我又试图将GRUB安装到USB移动硬盘的MBR来引导,在dos下运行 bootlace 0x80, MBR上安装正常完成,提示: Disk geometry calculated according to the partition table: Sectors per track=63, Number ot heads=255 Success 但重启后系统运行至 Verfying DMI Pool Data......... 时死机,之后我将硬盘从移动盒中取出通过大小硬盘转接卡直接连到主板IDE1口,GRUB能正常从MBR引导,启动menu.lst中菜单,菜单中的每一个启动项均能正常运行。 GRUB我用的是grub_for_dos-2006-11-26最新版,GRUB的相关文件如menu.lst,stage1,stage2等文件均在移动硬盘\boot\grub\下,grldr在移动硬盘根目录下, 不知为何在USB上却不能启动,郁闷啊.... 我的menu.lst文件内容如下: ######################################################################## # Grub 0.95 中文版配置文件样例, by Gandalf(f22_storm@163.com) # 2004 - 07 - 15 (midified 13:13 2004-11-13) # # 默认延迟时间(秒) timeout 30 # 第一项为默认值 default 5 # Fallback to the second entry. fallback 1 # 设置动画图形菜单文件 gfxmenu /boot/grub/grub_chs.msg # 设置中文支持的字体文件 fontfile /boot/grub/fonts # 设置图形背景文件 splashimage /boot/grub/bj2008.xpm.gz # 使用 TFTP 协议从网络启动一个软盘镜像 # 手工设置 # address = ip 地址 # mask = 子网掩码 # gateway = 网关 # # tftpserver tftp 服务器地址 # 你可以修改 win99.img 为你的软盘镜像,注意: # 可以使用 winzip 压缩,原始大小必须是 1.44/2.88MB # title 从网络软盘镜像文件启动 # ifconfig --address=192.168.200.1 # ifconfig --mask=255.255.255.192 # ifconfig --gateway=192.168.200.5 # tftpserver 192.168.200.5 # kernel (nd)/memdisk.gz # initrd (nd)/win99.zip # 启动另一个功能强大的引导器。注意: # 在它里面界面里,不要做任何保存!!!!! title 运行 Smart BootManager kernel /boot/grub/memdisk.gz initrd /boot/grub/sbm.bin # 本地软盘镜像的使用方法之一。还可使用 4DOS 的功能 # 即 map (xxx)/win98.img (fd0) 的方法。本版本支持。 title 启动本地 Win98 软盘镜像文件 kernel /boot/grub/memdisk.gz initrd /boot/grub/win99.zip # 转到光盘启动 title 从光盘启动系统 scdrom --bootcd title 启动本地 NTFS 软盘镜像文件 kernel /boot/grub/memdisk.gz initrd /boot/grub/ntfs.img # 从本地磁盘的主分区启动 title 从硬盘第一分区启动 rootnoverify (hd0,0) makeactive chainloader +1 # 从移动硬盘主分区启动 title 从移动硬盘启动MS-DOS chainloader (hd0,0)+1 # Change the colors. title 改变菜单颜色 color light-green/brown blink-red/blue ###################################################################### Config.sys文件配置如下: ################################################################## menuitem=M1, Boot with UMBPCI menuitem=M2, Boot with EMM386(NOEMS) menuitem=M3, Boot with CD-ROM support menuitem=M5, DOS Tools with VDISK menuitem=M6, Boot with GRUB menuitem=M7, Boot only menucolor=15,1 menudefault=M1,10 device=himem.sys /testmem:off /q device=umbpci.sys devicehigh=qdma.sys /l device=himem.sys /testmem:off /q device=emm386.exe noems devicehigh=qdma.sys /l include M1 devicehigh=VIDE-CDD.SYS /D:IDE-CD include M2 device=grub.exe --config-file="/boot/grub/menu.lst" device=himem.sys /testmem:off /q DOS=HIGH,UMB,AUTO FCBSHIGH=4,0 FILESHIGH=30 BUFFERSHIGH=20,0 STACKSHIGH=9,256 LASTDRIVEHIGH=Z NUMLOCK=ON SET PATH=C:\; C:\HXR\BIN\; C:\HXGUI\BIN\ ############################################################ 请大侠们指点迷津!!! |
|
| 第2楼 artisticidea | 发表于 2006-11-30 11:35 |
| 新手上路 发帖 8 积分 16 | |
|
不管怎样配置,grub在你的机器上都是无法启动的
grub目前基本上很难应用在USB的启动上 再新的grub版本也是一样的 因为这并不是grub本身的问题 其原因在于目前 bios 存在的一个漏洞,目前只有极少数的主板能够支持grub在usb上作引导 我曾经耗费很大的精力用很多U盘、移动硬盘在十几台主板配置不同的机器上进行过grub的测试——只有在某一次成功的、应该是奇迹般的出现了grub的启动菜单,并且将我U盘上的Linux引导成功,是在一台近期新配的机器上,也就是目前离我左边五六米处的对面寝室同学的电脑,由于对grub失望,也没记下主板类型,不好意思。 |
|
| 第3楼 不点 | 发表于 2006-11-30 12:02 |
| 银牌会员 发帖 1,115 积分 2,491 | |
|
谢谢详细的报告。在试图解决它之前,先猜测一下问题会在何处。
从显示的信息来看,查询磁盘参数的 int13 调用都通过了。它们是:功能 08,48,41,4B。 那么问题应该是发生在读文件的时候了,也就是说,是功能 02(CHS常规读盘) 或者 42(LBA扩展读盘)。 你的 U 盘 BIOS 不支持 LBA,所以无法用 LBA 来访问 U 盘。但是硬盘 81 支持 LBA。 在 DOS 下你可以正常操作,因为 CHS 模式的访问是经典的,不容易出错。 硬盘 81 虽然支持 LBA,但恰恰可能就是因为这个而死机。也就是说,在由 LBA 模式来访问硬盘 81 时,死机了。 虽然硬盘单独使用的时候不曾发生过问题,但是,经由 U 盘启动时,U 盘的 BIOS 起作用。U 盘 BIOS 的错误,就导致访问硬盘 81 时死机。 你可以先拔掉硬盘 81 的连接线,试试看用单一的 U 盘可否进入 GRUB。 另外,从 U 盘启动 DOS 后,你能否在 DOS 下操作硬盘 81 呢?硬盘 81 的大小如何?分区情况如何? 如果纯 DOS 能操作硬盘 81,我们的 GRUB 就有希望。注意,纯 DOS 是指没有 config.sys 和 autoexec.bat 存在的干净 DOS。在纯 DOS 下能否用 copy 命令在 U 盘和硬盘之间互拷? ----------------- 当然还可能是这样一种情况:U 盘 BIOS 提供的几何参数是错误的。GRUB 使用的就是由 BIOS 提供的参数。如果是这样,问题就简化了。我们可以修改 GRUB,使它读取 U 盘的引导扇区,决定一个合适的 CHS 值,从而躲过 BIOS 的 BUG。请你关注一下近期的发布。 刚刚上载了新的 grub.exe 文件在 http://grub4dos.jot.com/ 请下载测试。从你提供的信息来看,GRLDR 从 MBR 启动的方法,目前估计还难以成功。先看看 GRUB.EXE 是否成功再说。 [ Last edited by 不点 on 2006-12-1 at 12:02 AM ] |
|
| 第4楼 wlidan | 发表于 2006-12-01 05:55 |
| 新手上路 发帖 7 积分 15 | |
|
首先要谢谢不点大师的详细分析和指点:)。
经过下午3个小时的测试,算是小有结果。现在看来,前两天我在测试时确实疏忽了一个重要的因素,就是主板BIOS的差异问题、好坏问题。 现在我用原来昨天的配置文件和软件版本,在4台机器上做了测试,结果2台grub能完全正常的运行,另2台则不行。机器均为清华同方的P4 1.7G~2.4G, 只不过正常的2台生产较晚一点罢了。详细情况如下: 先说昨天那台机,清华同方商玑3012,主板BIOS日期2002-1-10,Award V6.00PG,版本THTF L4S5M Ver 1.1a,硬盘40G,IBM IC35L040AVVN07-0, 共7个分区,分别是C:NTFS 5G Win2000Pro系统、D:NTFS 5GWin2KADVS系统、E:FAT32 4G 数据、F:FAT32 1.7G 交换临时文件、G:FAT32 9G 数据 H:FAT32 8.6G 数据 I:FAT32 5G ghost备份。 拔下该硬盘数据线后启动情况依旧,在纯DOS下与USB移动硬盘之间互拷文件正常,下载最新版的Grub依旧。 另一台清华同方超越3000D,测试情况如下 在config.sys加载运行Grub时,屏幕在闪过grub内置菜单后黑屏死机,死机前抢拍的屏幕显示如下图: ![]() 用纯DOS启动后运行Grub也是黑屏死机,抢拍的屏幕显示如下图: ![]() 用最新版Grub在纯DOS启动后运行也是死机,抢拍的屏幕显示如下图: ![]() 在另外2台超越3800D上测试,dos下运行Grub均正常,可能就是主板BIOS较新较完善的原因。 再次感谢不点!!! |
|
| 第5楼 不点 | 发表于 2006-12-01 07:13 |
| 银牌会员 发帖 1,115 积分 2,491 | |
|
这次 BUG 报告,不同以往几个关于 U 盘的报告,难度显然是最高的。在 sysoft 时空论坛也有类似的报告(你们两位也可以沟通一下,互相了解情况)。我想,这么稀奇古怪的 BUG 的出现,有 BIOS 的原因,也可能有 GRUB 自己的原因。所以,最终解决掉它,可能要花费比较多的周折。
为了能够简化,请强制进入 GRUB 命令行,不要运行 menu.lst。 你传给 grub.exe 一个不存在的命令,它就会进入命令行: grub.exe --config-file=non 不执行 menu.lst,grub 就可以减少死机的机会了。所以你先这么试试。 |
|
| 第6楼 不点 | 发表于 2006-12-04 05:12 |
| 银牌会员 发帖 1,115 积分 2,491 | |
|
12 月 3 日又上载了一个版本,请继续加紧测试。这个问题不解决,我们就不发布正式版。
|
|
| 第7楼 wlidan | 发表于 2006-12-04 08:33 |
| 新手上路 发帖 7 积分 15 | |
|
好的,在我测试之后再将情况传上来,大家一起探讨,共同促进GRUB的发展!
|
|
| 第8楼 wlidan | 发表于 2006-12-06 11:24 |
| 新手上路 发帖 7 积分 15 | |
|
由于最近很忙,12月3日Grub的版本未能做详细的测试,抽空仅在3台机器上试了一下,原来在Config.sys中用“device=grub.exe --config-file="/boot/grub/menu.lst"
”加载启动时中途死机的,现在已能正常显示menu.lst中的中文启动菜单,但进一步选择菜单中的软盘镜像启动时,屏幕显示了“kernel /boot/grub/memdisk.gz”后死机,但在另2台机器上全部正常,由于时间原因未能在更多的机器上测试。 请不点剖析原因,也希望能有更多的网友来测试,一起来促进Grub的发展! |
|
| 第9楼 不点 | 发表于 2006-12-06 22:02 |
| 银牌会员 发帖 1,115 积分 2,491 | |
|
由于怀疑两个 int15 的中断调用引起死机,所以,在 12-03 的版本中已经把这两个调用推迟到 multiboot kernel 需要它们的时候才执行,这样你就有可能顺利进入 grub 环境了。事情果然是这样的。
但是,不幸的是,(猜测)memdisk 正好是 multi-boot kernel,所以只要运行 memdisk,就又得执行那两个 int15 中断调用。结果就在这时死机了。 你可以避免使用 memdisk,这样就可以躲过死机。我想,到这种程度,我们该结束了。进一步再研究 multi boot kernel 是否必须有这两个 int15 的执行,有点颇费力气的。而且恐怕研究的结果也仍然是“必须有”。 如果我们把 BIOS 的这一 bug 写入 readme 中,那我们就可以说完成任务了。请报告机器的型号、BIOS 厂家版本信息,以便我把它写入 readme 中。在 readme 中将这样描述:XXX BIOS 的 buggy int15 导致 multi boot kernel 不能被启动。 另外得到报告说,12-03 的 grldr 有问题,不能被 boot.ini 启动。所以现在还要解决这个问题。 [ Last edited by 不点 on 2006-12-6 at 10:06 PM ] |
|
| 第10楼 wlidan | 发表于 2006-12-07 22:40 |
| 新手上路 发帖 7 积分 15 | |
|
bug机器的型号是清华同方商玑3012,主板BIOS是Award V6.00PG,BIOS版本THTF L4S5M Ver 1.1a ,BIOS日期2002-1-10。
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |