中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区 » [求助]用不点最新测试版grub制作usb启动盘的一些困惑
« [1] [2] [3] [4] »
作者:
标题: [求助]用不点最新测试版grub制作usb启动盘的一些困惑 上一主题 | 下一主题
lmle
初级用户





积分 61
发帖 28
注册 2008-5-24
状态 离线
『楼 主』:  [求助]用不点最新测试版grub制作usb启动盘的一些困惑

我一直都是用IO+grub的方式制作的,大部分电脑能启动。但有一批同方的老机,要么自检完在Verifying DMI Pool Data...就过不去了,要么读msdos.sys出错,或找不到command.com什么的(明明是有的)(注:用了许多不同的U盘,不同的方法制作)。看了不点大师的新版grub更新说明,又有了新希望,可替换后,问题依旧。请问:
    1、如果用IO+grub的方式,我想“自动探测磁盘几何参数”功能不会起作用吧,因为grub还没启动。
    2、如果写入MBR,“自动探测磁盘几何参数”会起作用吗? grub的更新是不是也要更新MBR?如果要更新的话,怎样用grubinstall.exe更新?
期待您的帮忙,谢谢!

2008-5-24 13:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 2 楼』:  

“自动探测磁盘几何参数”这个功能主要就是用来对付 U 盘的,目的是解决不同的主板规定了不同的U盘几何参数的问题。谢谢跟踪测试。

在以前,有些人能启动到 DOS,但是,当启动 GRUB.exe 时,虽然能进入 grub 环境,但却不能识别 U 盘上的文件。这其中的一部分原因,就是因为 GRUB 所调用的 BIOS 对 U 盘规定了不正确的 CHS 参数(就是说,BIOS有BUG)。在这种情况下,“自动探测磁盘几何参数”的新功能,也有可能起到作用的。

现在回答你的问题:

1. 如果你还没有启动到 grub 就死机了,那样的死机当然与 grub 无关。这一点你自己一定要先弄清楚。当你确定你的 DOS 无法启动时,你可以用 bootlace 安装 grldr 的引导扇区到你的 U 盘 MBR 上,在理想的情况下,这应该可以成功启动到 grub 环境。

2. 写入 MBR 的 GRLDR 引导代码,是具有“自动探测磁盘几何参数”的功能的。你需要安装到 mbr,因为在 mbr 上的代码也需要“自动探测磁盘几何参数”的功能,以便搜索得到 grldr 文件。此功能是刚刚加入的,所以,grubinst 不一定也加入了此功能。所以,还是用 bootlace 吧。你可以在别的某个机器上用 U盘启动到 DOS,然后用 bootlace 安装。

补充:不要在 U 盘上安装和使用 boot.ini 的启动方式,因为这种方式启动的 grldr 是没有“自动探测磁盘几何参数”功能的,因此启动可能会失败。你可以在 U 盘安装 bootmgr 的方式来启动 grldr.mbr,并且这个 grldr.mbr 应该也是随 grub4dos 一起发布的,即,具有“自动探测磁盘几何参数”功能的。



因为我们亲手创建,这个世界更加美丽。
2008-5-24 13:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lmle
初级用户





积分 61
发帖 28
注册 2008-5-24
状态 离线
『第 3 楼』:  

非常感谢不点大师亲自回答!
我是一个学校的网管,要接触新老很多电脑,用您的新版grub解决了一批能进grub却近不了PE的电脑,谢谢。现在只剩最后一批进不了dos的电脑了。
我使用grub不久,不清楚bootlace.com的用法。我用u盘进dos后,显示为c。是直接用bootlace.com 0x80呢,还是要加参数调用grldr.mbr?明白后马上测试。

2008-5-24 15:01
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 4 楼』:  

如果你的 U 盘是 C:,那么你就直接用 bootlace.com 0x80,然后把 grldr 放到 u 盘根目录。bootlace 应该也是新的,否则老版本没有磁盘参数自适应功能。



因为我们亲手创建,这个世界更加美丽。
2008-5-24 15:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lmle
初级用户





积分 61
发帖 28
注册 2008-5-24
状态 离线
『第 5 楼』:  

我的U盘是falshboot制作的,运行bootlace.com 0x80后出错:
Error: Invalid partition table. Must spedify --floppy explicitly for floppy.
我猜想:u盘启动的DOS显示的C:应该不是真实的U盘吧(可能是内存盘?里面的内容是U盘的文件),dos不认识U盘啊。
现在我该怎么做啊?

[ Last edited by lmle on 2008-5-24 at 03:48 PM ]

2008-5-24 15:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 6 楼』:  

这个问题不严重。你大胆试验便可。

U盘启动后,BIOS 已经把 C: 这个盘符赋予你的 U 盘了,你可以在 DOS 下用 dir C: 列出你的 U 盘的内容,这样你就能够核实一下这个 C: 盘究竟是不是你的 U 盘。

首先把你的 U 盘中的重要东西备份到别处,因为你得重新分区、格式化它。

好了,准备好了之后,你用 U 盘启动到 DOS,用 DOS 的 FDISK 对这个 U 盘进行分区,分区时请尽量保持原来的分区布局和大小都不变。你需要先把 U 盘上的分区全都删除,然后再创建相同大小的分区。

注意,你一定要熟练使用 FDISK。千万不要把你的真实硬盘做掉了!

U 盘启动到 DOS 后,你使用 FDISK 时,C: 盘应该就是你的 U 盘。当你使用 FDISK 时,你可以根据 卷标、磁盘容量 等信息,确定你要做掉的 C 盘一定得是你的 U 盘,否则你不能继续做,免得你的硬盘被弄掉了。

FDISK 做完之后,你需要重启动才能继续。但是,注意你重启后只能先进入硬盘的 WINDOWS,而不是进入 U 盘,因为 U 盘还没有格式化,也没有 DOS。进入 WINDOWS 后,你可以在 Windows 下对这个 U 盘进行格式化的操作。同样注意不要弄错了盘符,导致你的硬盘被破坏。

完了之后,你再把 DOS 的系统文件如 io.sys, msdos.sys, command.com, sys.com, fdisk.exe,bootlace.com 等放到 U 盘根目录中,你也可以在这时就把 grldr 和 grub.exe 放进去。用 sys 命令把 DOS 安装到 U 盘,以便 DOS 能够启动。

好了,此时重启机器,选择从 U 盘启动 DOS,用 bootlace 0x80 把 U 盘的引导扇区改成 GRLDR 的,此时应该成功了,因为微软的 FDISK 所建立的分区表是标准的,可以被 bootlace 识别出来。

[ Last edited by 不点 on 2008-5-24 at 04:15 PM ]



因为我们亲手创建,这个世界更加美丽。
2008-5-24 16:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lmle
初级用户





积分 61
发帖 28
注册 2008-5-24
状态 离线
『第 7 楼』:  

不点大师辛苦了!
看来我知识太浅薄了,连fdisk都搞不定。第一次进U盘fdisk删除分区后,没有创建分区就推出了,再windows分区格式化,接着用flashboot重来。以后几次用fdisk删除分区后,却再也不能用fdisk创建分区,说是没有空余空间(是用fdisk删除分区并提示成功的),到windows后分区还在。
还有,重新分区后,进不了dos,windows又不能sys,还是不能写引导的。

[ Last edited by lmle on 2008-5-24 at 08:23 PM ]

2008-5-24 20:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 8 楼』:  

你能否把 U 盘这个物理设备作为虚拟硬盘传给 VMWARE,在 VMWARE 中用 DOS 的 FDISK 来修理它?

你也可以这样做:

1. 把 U 盘按照扇区精确复制为一个 u.img 文件,注意里面应该有分区表。我听说有些 16 进制工具可以做到这一点,你找找看。

2. 把 u.img 传给 vmware,用 fdisk 和 format 等 dos 工具来操作。然后安装 grldr。注意不要用 flashboot,因为它写的分区表是错误的。

3. 把修理好的 u.img 再写回到 U 盘上。

在理想的情况下,这样的 U 盘就是万能启动的了。

[ Last edited by 不点 on 2008-5-24 at 10:12 PM ]



因为我们亲手创建,这个世界更加美丽。
2008-5-24 21:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lmle
初级用户





积分 61
发帖 28
注册 2008-5-24
状态 离线
『第 9 楼』:  

grub在笔记本中已成功启动!
请不点大师帮忙看一下,操作过程是否正确:我用PartitionMagic重新分区,再用grubinst_gui.exe写入grub引导,在grub中引导u盘的io.sys进入dos,然后用boolace写入新版的grub引导。
明早到学校测试老爷机。

2008-5-24 22:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 10 楼』:  

没错,这样操作是对的。注意,千万不要用那些专有的工具来制作启动盘,那些专有工具,有的是有毛病的,有的是不通用的。甚至有些还故意制造不兼容,让U盘只能在某个品牌的机器上启动。一定要用那些通用工具来制作U盘,才不至于被人绑架。



因为我们亲手创建,这个世界更加美丽。
2008-5-24 23:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lmle
初级用户





积分 61
发帖 28
注册 2008-5-24
状态 离线
『第 11 楼』:  

能得到大师的亲自指导,倍感荣幸。最后还想在请教一个问题:
我的u盘在已测的三台电脑上都被认作hd0,会不会在其他一些电脑上被认作fd0或其他什么的?要不要在menu.lst里作一些特殊的写法?
呵呵,非常希望能一盘走天下啊!

2008-5-24 23:48
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 12 楼』:  

当然有可能了,以前就有很多报道说,同一个U盘有的主板认成 C 盘,有的认成 A 盘。

如果用 grldr 启动,那么就有一个好处是,grldr 所在的磁盘分区,就成为了默认的 root 设备了,也就是说,你可以用不带设备名的 /.../.../filename 来表示 U 盘上的文件了。所以,不管U盘是 A 盘还是 C 盘,文件名问题就解决了。

另外,还有一个不为人知的技巧,就是 root 和 rootnoverify 命令。这两条命令的返回值,可以表示当前 的 root 设备是否是硬盘。

当返回值是 TRUE 时,表示当前的 root 设备是硬盘,反之,
当返回值是 FALSE 时,则表示当前的 root 设备是软盘。

举例来说,你想从 U 盘启动 grldr 而又希望能够放心地、可靠地启动硬盘上的 XP,就可以这样:
title boot XP in my real hard drive
rootnoverify && map (hd0) (hd1)
rootnoverify && map (hd1) (hd0)
rootnoverify && map --hook
find --set-root --ignore-floppies /ntldr
chainloader /ntldr
boot
下面我简单解释一下上面这个菜单。当你的 U 盘是硬盘时,就执行
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
目的是交换 (hd0) 和 (hd1),这样,你的真实硬盘将变成 (hd0) ,于是你才能成功启动 XP。
当 U 盘是软盘时,上述三条 map 就不会执行,于是你也能安全地启动你的硬盘上的 XP 了。

[ Last edited by 不点 on 2008-5-25 at 12:10 AM ]



因为我们亲手创建,这个世界更加美丽。
2008-5-25 00:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lmle
初级用户





积分 61
发帖 28
注册 2008-5-24
状态 离线
『第 13 楼』:  

测试了五种不同主板的电脑,只成功了两台,三台不成功的提示各不相同:
1、清华同方的一台提示:
           Missing MBR-helper.
2、acer的搜索不到grldr,可明明是有的啊。
3、一台联想的更怪,好像grub的mbr根本不存在一样,直接用根目录的io.sys启动了,删除io.sys后,说找不到系统了。

[ Last edited by lmle on 2008-5-25 at 11:32 AM ]

2008-5-25 10:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 14 楼』:  



  Quote:
1、清华同方的一台提示:Missing MBR-helper.

很好!只要能显示这条信息,就说明我们的 MBR 代码已经起作用了。剩下的只是找出为何不能加载 MBR 上其余的引导扇区的原因了(肯定是 BIOS 的某个 BUG)。需要你继续配合测试,我们共同克服这个难关。虽然失败了,但这一形势已经处于我们的掌控之中了。如果不出所料,我们有望在最近几天或者几个礼拜就把它攻破。

由于你不能进入 DOS,所以,我们缺乏通常的 debug 调试手段。因此这一问题是迄今为止最难对付的问题了。我们只能依赖于不断修正和改变 U 盘上 MBR 的代码来进行调试了。我会仔细研究这个问题,设计一套调试方案的,请等着。

现在你可以把你的 U 盘上的分区布局说一说,例如,U 盘的容量,各个分区的大小,CHS 的值,等等以及其他你认为重要的信息。

能否把你的 U 盘开头的 128K 传上来?可以用一个十六进制工具来截获。

  Quote:
2、acer的搜索不到grldr,可明明是有的啊。

这个情况比清华同方的要稍好。我们先不管它,等到清华同方的解决掉之后再来处理它。

  Quote:
3、一台联想的更怪,好像grub的mbr根本不存在一样,直接用根目录的io.sys启动了,删除io.sys后,说找不到系统了。

这个情况就更好了,只要能启动 DOS,你就可以启动 GRUB.EXE 了。我们最后收拾它。

[ Last edited by 不点 on 2008-5-25 at 11:42 AM ]



因为我们亲手创建,这个世界更加美丽。
2008-5-25 11:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lmle
初级用户





积分 61
发帖 28
注册 2008-5-24
状态 离线
『第 15 楼』:  

我的U盘是爱国者迷你王1G的,全部分为一个区。在能启动的电脑上用geometry (hd0,0)命令显示如下:
drive 0x80(LBA):C/H/S=125/255/63,Sector Cont/Size=2008125/512
Partition num:0, Filesystem type is fat, partition type 0xb
u盘的头125k用什么软件取得?等一会再传吧。
补充说明:
五台电脑中,有四台是可以用flashboot格式化,再用IO+grub启动的。只有一台同方电脑不能,却能用flashboot的freeDos+98的IO.sys、msdos.sys、command.com和一个freeDos的一个sys文件启动,但不能运行grub。会显示一条信息和一长串的数字,同时PC喇叭一直响着“嘀”声,没记下来。

[ Last edited by lmle on 2008-5-25 at 12:43 PM ]

2008-5-25 12:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] [4] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: