|
wlidan
新手上路
网络幽灵
积分 15
发帖 7
注册 2006-8-29
状态 离线
|
『楼 主』:
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文件配置如下:
##################################################################
[menu]
menuitem=M1, Boot with UMBPCI [Real Mode]
menuitem=M2, Boot with EMM386(NOEMS) [Protected Mode]
menuitem=M3, Boot with CD-ROM support [UMBPCI]
menuitem=M5, DOS Tools with VDISK
menuitem=M6, Boot with GRUB
menuitem=M7, Boot only
menucolor=15,1
menudefault=M1,10
[M1]
device=himem.sys /testmem:off /q
device=umbpci.sys
devicehigh=qdma.sys /l
[M2]
device=himem.sys /testmem:off /q
device=emm386.exe noems
devicehigh=qdma.sys /l
[M3]
include M1
devicehigh=VIDE-CDD.SYS /D:IDE-CD
[M5]
include M2
[M6]
device=grub.exe --config-file="/boot/grub/menu.lst"
[M7]
device=himem.sys /testmem:off /q
[COMMON]
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\
############################################################
请大侠们指点迷津!!!
|
|
2006-11-30 04:47 |
|
|
artisticidea
新手上路
积分 16
发帖 8
注册 2006-11-13
状态 离线
|
『第
2 楼』:
不管怎样配置,grub在你的机器上都是无法启动的
grub目前基本上很难应用在USB的启动上
再新的grub版本也是一样的
因为这并不是grub本身的问题
其原因在于目前 bios 存在的一个漏洞,目前只有极少数的主板能够支持grub在usb上作引导
我曾经耗费很大的精力用很多U盘、移动硬盘在十几台主板配置不同的机器上进行过grub的测试——只有在某一次成功的、应该是奇迹般的出现了grub的启动菜单,并且将我U盘上的Linux引导成功,是在一台近期新配的机器上,也就是目前离我左边五六米处的对面寝室同学的电脑,由于对grub失望,也没记下主板类型,不好意思。
|
|
2006-11-30 11:35 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
3 楼』:
谢谢详细的报告。在试图解决它之前,先猜测一下问题会在何处。
从显示的信息来看,查询磁盘参数的 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 ]
|
因为我们亲手创建,这个世界更加美丽。 |
|
2006-11-30 12:02 |
|
|
wlidan
新手上路
网络幽灵
积分 15
发帖 7
注册 2006-8-29
状态 离线
|
『第
4 楼』:
首先要谢谢不点大师的详细分析和指点:)。
经过下午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较新较完善的原因。
再次感谢不点!!!
|
|
2006-12-1 05:55 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
5 楼』:
这次 BUG 报告,不同以往几个关于 U 盘的报告,难度显然是最高的。在 sysoft 时空论坛也有类似的报告(你们两位也可以沟通一下,互相了解情况)。我想,这么稀奇古怪的 BUG 的出现,有 BIOS 的原因,也可能有 GRUB 自己的原因。所以,最终解决掉它,可能要花费比较多的周折。
为了能够简化,请强制进入 GRUB 命令行,不要运行 menu.lst。
你传给 grub.exe 一个不存在的命令,它就会进入命令行:
grub.exe --config-file=non
不执行 menu.lst,grub 就可以减少死机的机会了。所以你先这么试试。
|
因为我们亲手创建,这个世界更加美丽。 |
|
2006-12-1 07:13 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
6 楼』:
12 月 3 日又上载了一个版本,请继续加紧测试。这个问题不解决,我们就不发布正式版。
|
因为我们亲手创建,这个世界更加美丽。 |
|
2006-12-4 05:12 |
|
|
wlidan
新手上路
网络幽灵
积分 15
发帖 7
注册 2006-8-29
状态 离线
|
『第
7 楼』:
好的,在我测试之后再将情况传上来,大家一起探讨,共同促进GRUB的发展!
|
|
2006-12-4 08:33 |
|
|
wlidan
新手上路
网络幽灵
积分 15
发帖 7
注册 2006-8-29
状态 离线
|
『第
8 楼』:
由于最近很忙,12月3日Grub的版本未能做详细的测试,抽空仅在3台机器上试了一下,原来在Config.sys中用“device=grub.exe --config-file="/boot/grub/menu.lst"
”加载启动时中途死机的,现在已能正常显示menu.lst中的中文启动菜单,但进一步选择菜单中的软盘镜像启动时,屏幕显示了“kernel /boot/grub/memdisk.gz”后死机,但在另2台机器上全部正常,由于时间原因未能在更多的机器上测试。
请不点剖析原因,也希望能有更多的网友来测试,一起来促进Grub的发展!
|
|
2006-12-6 11:24 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
9 楼』:
由于怀疑两个 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 ]
|
因为我们亲手创建,这个世界更加美丽。 |
|
2006-12-6 22:02 |
|
|
wlidan
新手上路
网络幽灵
积分 15
发帖 7
注册 2006-8-29
状态 离线
|
『第
10 楼』:
bug机器的型号是清华同方商玑3012,主板BIOS是Award V6.00PG,BIOS版本THTF L4S5M Ver 1.1a ,BIOS日期2002-1-10。
|
|
2006-12-7 22:40 |
|