中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS启动盘 & LOGO技术 (启动盘室) » 请教不点,有关GRLDR的U盘写入问题
« [1] [2] »
作者:
标题: 请教不点,有关GRLDR的U盘写入问题 上一主题 | 下一主题
neiljoy
初级用户





积分 132
发帖 58
注册 2006-7-23
状态 离线
『楼 主』:  请教不点,有关GRLDR的U盘写入问题

今天我试着用bootlace.com将GRLDR的引导程序写入到USB_ZIP上。在写之前,我就在想,USB_ZIP在GRUB中是认作FD,但它实际上又有着类似硬盘的MBR和DBR,那么用bootlace写入引导程序时,它会记录在MBR上呢,还是会记录在DBR上。如果写入在DBR扇区上,那么当U盘从GRUB启动后,就进入不了U盘的DOS状态了。果然,这样的情况发生了。
我的问题是,对于USB_ZIP模式的U盘,能否用什么办法将GRLDR写入到MBR中,而不是写入到DBR中?

2006-7-27 22:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fujianabc
金牌会员





积分 3467
发帖 1616
注册 2004-6-21
状态 离线
『第 2 楼』:  

usb如果模拟的是zip,就应该不含mbr,你可以找一些格式化工具重新格式化,使之不包含mbr,u盘的第一个扇区就是dbr。

usboot可以做这样的格式化。

2006-7-27 22:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
neiljoy
初级用户





积分 132
发帖 58
注册 2006-7-23
状态 离线
『第 3 楼』:  

我的U盘在BIOS中是认作USB_ZIP的,而且只有这个USB的启动项,所以要从U盘启动,必须将它格式为USB_ZIP。
  还有,我用了不少格式化工具,格式化后的U盘BIOS都不认,还就是惠普的U盘格式工具才行。

另外,你可能还不太明白我的意思,我就是想让GRUB的引导程序写入MBR,这样从GRUB启动后,也可以进入到U盘的DOS环境下。

[ Last edited by neiljoy on 2006-7-27 at 23:19 ]

2006-7-27 23:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


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

neiljoy 已经说明了,用 bootlace 将 GRLDR 安装在 DBR 是可行的,我是说,它可以成功启动到 GRUB 状态。我猜想你写入的操作是这样的:在 DOS 下执行

bootlace.com  --floppy 0x00

只要你能进入 GRUB,你就可以用 GRUB 的

chainloader (fd0)/io.sys
boot

来启动 U 盘上的 DOS 了,很简单的。

你的 U 盘 BIOS 不支持 USB-HDD 启动,因此,你的 U 盘上的 MBR 失去了它的作用,就像它不存在一样。所以,你就不要设想着把 GRLDR 安装到它上面去了。如果你很感兴趣,想彻底弄明白的话,你倒是可以试试看。然而,如果你安装到 MBR 之后没有达到它的效果,你就不要感到失望了。安装到 U 盘 MBR 的方法其实很简单:把系统启动到一个可以访问 U 盘 MBR 的状态,比如进入了 Windows,然后进入 DOS 提示符状态,执行:

bootlace.com 0x80
然后记住把 GRLDR 拷贝到 U 盘的根目录。

这是假定此时 U 盘被系统确定为 0x80 号硬盘。你用win98 的 fdisk 命令可以发现 U 盘的 BIOS 号码。一般是 0x80, 0x81, 0x82, 或者0x83。

不过,由于 你的 U 盘 BIOS 存在缺陷,GRLDR 在 MBR 的启动也有可能失败,所以,你还得等待我修复了 GRLDR 在 MBR 上的启动代码后,才有可能获得成功。



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





积分 132
发帖 58
注册 2006-7-23
状态 离线
『第 5 楼』:  

用 bootlace 将 GRLDR 安装在 DBR 是可行的,我是说,它可以成功启动到 GRUB 状态。我猜想你写入的操作是这样的:在 DOS 下执行
bootlace.com  --floppy 0x00
只要你能进入 GRUB,你就可以用 GRUB 的
chainloader (fd0)/io.sys
boot
来启动 U 盘上的 DOS 了.

我正是这样作的。但进入DOS这部分我是直接利用menu.lst来执行的。我真疏忽,竟忘记用命令行来进入DOS了。不过,菜单中的
find --set-root /io.sys
chainloader /io.sys
savedefault --wait=2
也应当是可以执行的呀。我过一会儿试一下。

另外,你说的在“Windows,然后进入 DOS 提示符状态,执行:
bootlace.com 0x80
然后记住把 GRLDR 拷贝到 U 盘的根目录”
我担心是否会把U盘认作0X80,万一是我的第一硬盘呢?
我想如果试的话,最好是将我U盘MBR中的0x01b8至0x01ff复盖到GRLDR.MBR的0x01b8至0x01ff,然后再将新生成的grldr.mbr复盖到U盘的头12个扇区中。这样应当更安全些。不知是否行得通?

2006-7-28 08:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
neiljoy
初级用户





积分 132
发帖 58
注册 2006-7-23
状态 离线
『第 6 楼』:  

我用
chainloader (fd0)/io.sys
试过了,回车后即出现:

Will boot MS-DOS 7.x from drvive=0x0
grub>

就结束了(没有死机),并没有进入DOS。当然,我在U盘的根目录下肯定有完整的DOS文件。
看来又遇到麻烦了。

2006-7-28 08:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
neiljoy
初级用户





积分 132
发帖 58
注册 2006-7-23
状态 离线
『第 7 楼』:  

竟然没有键入boot!
可是键入BOOT后却提示:
Type the name of the command Tnterpreter,
而在U盘根目录下和内存盘符下均有这一命令呀!

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

不甘寂寞的人


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

估计 IO.SYS 把其他盘当作启动盘了。你试试在Type the name of the command interpreter 时敲入 A:\command.com

这个问题我也记住了,并在以后找机会解决。

关于安装 GRLDR 到U盘MBR的问题,你可以按照如下步骤操作:

1。把 U 盘最开头的 63 个扇区(当然第一扇区是MBR了),硬拷贝到一个文件中,比如叫做 U_MBR_63

2。用 bootlace.com U_MBR_63 将 GRLDR 安装到 U_MBR_63 上。

3。用 16 进制编辑器观察一下 U_MBR_63 的内容,看看有无异常(应该没有异常)。

4。把 U_MBR_63 再写回到 U 盘上(硬拷贝到 U 盘上,正好覆盖 U 盘最开头的 63 个扇区,不多也不少)。

这样就好了。



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





积分 132
发帖 58
注册 2006-7-23
状态 离线
『第 9 楼』:  

我用A:\command.com  以及在config.sys中使用
shell=a:\command.com /P /E:640或shell=command.com /P /E:640
均试过,仍然找不着command.com,估计这与DBR中U盘参数部分(BPB)有关,因为GRUB获取的参数与DOS获取的参数不尽相同(柱面数不同,因而总扇区数也不同),从而影响了文件的读取。把它作为一个遗留问题吧。反正我可以在DOS下进入GRUB。

另外,我对两个U_MBR_63文件(bootlace前后)作了比较,发现在63个扇区中,仅前面12个扇区不同,但第一扇区(MBR)中分区表部分是没有变化的。
我想文件的读取主要由DBR中BPB部分所决定,而不是MBR,因此复盖U盘的试验我没有进行。即便这样作了,如你所说,同样会失望的。

2006-7-28 14:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
neiljoy
初级用户





积分 132
发帖 58
注册 2006-7-23
状态 离线
『第 10 楼』:  

看来不是我的BIOS或者是U盘的问题,因为我用真实软驱试验,也同样如此,是不是有其它问题呢?

2006-7-28 16:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


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

我也料到会是这样的情况的。猜测可能是因为 IO.SYS 以这种方式启动就无法访问 A: 盘吧。你试着在 C: 盘上放一个 command.com ,然后当询问时回答 c:\command.com 看看行不行。如果能进入 DOS,你再看能否访问 A:盘。如果 A: 盘不能访问,那么 A:盘上的 msdos.sys, config.sys 也都不能访问。所以,你放进 A:\CONFIG.SYS 里面的命令就无法获得执行。



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





积分 132
发帖 58
注册 2006-7-23
状态 离线
『第 12 楼』:  

我试验过了,如果将command.com放到某个分区的根目录下,是可以找到的,当然,这个分区必须是FAT分区。但是,即使找到了command.com,如果键入
A:\>dir
显示:File not found.
可见,此时的系统(应是DOS系统)虽然认软盘,却不能访问A盘上的文件。

启动过程按先后顺序是io.sys、config.sys、msdos.sys、command.com、autoexec.bat…,所以,在config.sys中设置command.com的路径应该是有效的,但问题是此时根本无法访问A盘。

我觉得,解决这一问题还是有实际意义的,现在U盘(包括移动硬盘等)的使用愈来愈普遍。从U盘的GRUB启动后,如果还能够进入U盘的DOS环境,那当然是最好不过了。

2006-7-28 21:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


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

用qemu虚拟机的测试结果是,所有这些都正常。GRUB4DOS中有一个fat12grldr.img文件,就是一个可启动的软盘映像。由于MSDOS不是随便可以发布的,所以,我不能把它包括在GRUB4DOS里面;又由于FreeDOS还不够成熟,所以,我也不想把FreeDOS包括进来。但是,你可以把win98的io.sys 和command.com拷贝到软盘映像fat12grldr.img中。把它制作成真实软盘,或者在虚拟机下测试。我的测试是成功的,如果你的不成功,估计又是由于BIOS的某个BUG造成的(当然MSDOS也可能有BUG)。不过这次我就无能为力了,因为BIOS是硬件厂家的事情,而MSDOS又是软件大亨的杰作,实在不好下手。



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





积分 132
发帖 58
注册 2006-7-23
状态 离线
『第 14 楼』:  

我用fat12grldr.img在真实软驱上试用,可以找到command.com,还没有来得及作进一步的测试。不过,经过对比,我发现昨天的问题出在何处:原来是在使用
bootlace.com --floppy 0x00
时,将原来的第一扇区的引导代码由EB 3C 90 改成了EB 3C 0E!
只要将昨天的引导代码改过来,就可以找到command.com了。

因此,7月22日的和7月25日的bootlace.com估计有bug.不知我的看法是否正确?

2006-7-29 21:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
neiljoy
初级用户





积分 132
发帖 58
注册 2006-7-23
状态 离线
『第 15 楼』:  

我检查了你的bootlace.com,发现确实为EB 3C 90,但不知为什么经
bootlace.com --floppy 0x00
后就变成了EB 3C 0E!

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


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



论坛跳转: