中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 03:32
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区 » 为移动操作系统打造稳健的引导扇区,请参谋
可打印版本  3,927 / 15
第1楼 不点 发表于 2007-10-27 12:27
银牌会员 发帖 1,115 积分 2,491
为移动操作系统打造稳健的引导扇区,请参谋
为了讨论问题集中起见,我把这篇文章贴在 google 网上论坛──grub4dos邮件列表上了。

要在此论坛发帖,请发电子邮件到 grub4dos@googlegroups.com
要退订此论坛,请发邮件至 grub4dos-unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/grub4dos?hl=zh-CN 访问该论坛
第2楼 frank55555 发表于 2007-10-27 16:36
初级用户 发帖 47 积分 89
我認為用第一種方法好一些.誰做啟動盤(U盤).不對U盤進行格式化呀?
用哪種方法做都要 格式化的.只是你用的工具不同.
但是我不知道你格式化后是什么格式,還是FAT32K嗎?
要是格式變了,就要想一想了.
第3楼 不点 发表于 2007-11-05 10:32
银牌会员 发帖 1,115 积分 2,491
终于完成了第一步。 http://grub4dos.jot.com/ 从 2007-11-05 开始,支持自动调节 CHS 几何参数。

注意:有可能死机。无论是否死机,请测试者都给出反馈,帮助完善这一重要发展步骤。

如果你在普通硬盘上测试,请报告是否死机。希望在普通硬盘上和往常一样,不至于会出现异常。普通硬盘上的测试,就是测试日常使用是否正常罢了。

如果你在 USB 设备上测试,对于 USB 硬盘设备,如果你的 USB 设备以前在不同机器上遇到 CHS 参数问题,导致有些机器能够启动 grldr,而有些机器不能启动 grldr,你试试新版的 grldr.mbr 是否解决了此问题。

对于 USB 软盘设备,你必须把软盘进行分区,并格式化为只含有 一个单一 FAT 分区 的“硬盘”,然后用 bootlace 安装 引导扇区到这个“硬盘”的 MBR,然后,再在不同的主板下进行测试。

测试以前遇到启动困难的,这次是否解决了。测试以前没有问题的,这次是否反而有问题了。

请报告详细一些,以便排解 BUG。
第4楼 wangjf 发表于 2007-11-05 15:29
中级用户 发帖 63 积分 254
在普通硬盘上测试11-05版的10-15版的一样,正常使用。USB设备还未测试。
第5楼 frank55555 发表于 2007-11-07 09:20
初级用户 发帖 47 积分 89
在U盤上一定要安裝嗎?能不能只用GRUB.EXE行不行呀?
第6楼 wangjf 发表于 2007-11-09 17:56
中级用户 发帖 63 积分 254
今天使用GRUB4DOS在U盘上实现USBZIP模式的直接GRUB引导
下面说一下经过,其中有一些不明白的地方。
1. 首先说一下软硬件配置:

U盘芯片:
Chipsbank(芯邦)
CBM2080
B26602-06

HY27UH084G2M_256M
传输速度:full speed(USB2.0)

可惜主版只支持USB1.1所以启动速度比较慢。

GRUB4DOS使用的是2007-11-05的版本。

1. 首先用 芯邦的U盘量产工具低格成可启动的USB-ZIP格式,
USB-ZIP有两种选择:USB-ZIP(32)和USB-ZIP(63)我不知道这两种格式有什么区别。
在我这里格成USB-ZIP(32)可以正常启动进入DOS状态,USB-ZIP(63)方式则启动失败。
或则用其他的U盘格式化工具,只要U盘格式化后能够启动DOS状态就行。

2. 写MBR到U盘。
开始时,我使用grubinst可是并没有成功。不知操作不对还是其他原因造成。后来使用bootlace写入成功。下面是bootlace写入过程

复制DOS系统文件IO.SYS、MSDOS.SYS、COMMAND.COM。和GRUB4DOS包中的bootlace.com文件到U盘根目录。用U盘启动进入DOS。然后在DOS命令行下键入:bootlace.com --floppy --chs 0x00
或则你可以建立一个BAT批处理文件来执行bootlace.com --floppy --chs 0x00命令。
还可以执行如下命令:
bootlace --boot-prevmbr-first --time-out=5 --hot-key=0x3920 --floppy --chs 0x00
(表示安装GRLDR代码到MBR时,默认启动原MBR,即启动原windows xp系统(--boot-prevmbr-first),等待时间5秒(--time-out=5),热键为空格键(--hot-key=0x3920)。

也就是说启动时等待5秒,5秒内不击热键的话,启动windows xp;5秒内击热键则启动grub4dos。见lianjiang写的GRUB4DOS教程1.3.3 通过mbr启动grub)

3. 复制grldr文件到U盘根目录、复制menu.lst菜单文件和其他你要用到的文件到U盘。启动即可(menu.lst最好复制到U盘根目录)

下面是我的menu.lst菜单文件配置。
======================================================
# 默认延迟时间(秒)
timeout 20

# 第9项(从硬盘启动)为默认值
default 8

# 设置图形背景文件
splashimage (fd0)/boot/grub/01.xpm

# 设置中文支持的字体文件
fontfile /boot/grub/fonts

password=xxx

title ############################################
clear
title # GRUB-DOS&WinPE U盘演示 —— By 2007.11 #
clear
title ############################################
clear

title 启动 DOS/Windows 95/98/Me 系统
find --set-root (fd0)/io.sys
chainloader (fd0)/io.sys

title Map --Mem方式 启动 MS-DOS7.1 工具盘
map --mem /boot/msdos.img (fd0)
map --hook
root (fd0)
chainloader +1
boot

title Map --Mem (切断 A20) 方式 启动 MS-DOS7.1 工具盘
map --mem /boot/msdos.img (fd0)
map --hook
chainloader --disable-a20 (fd0)+1
rootnoverify (fd0)

title MemDisk方式 启动 MS-DOS7.1 工具盘
kernel /boot/grub/memdisk c=80 h=2 s=36 floppy
initrd /boot/msdos.img
boot

title 从光盘启动
cdrom --init
map --hook
chainloader (cd0)
boot

title 从硬盘启动
root (hd0,0)
chainloader +1

title 重新启动
reboot

title 关闭计算机
halt

title 进入Grub4Dos命令行提示符方式
commandline
=======================================================

这一项中
title 启动 DOS/Windows 95/98/Me 系统
find --set-root (fd0)/io.sys
chainloader (fd0)/io.sys

/io.sys前必须加上(fd0),不加则不能进入DOS状态。

如果这样
find --set-root /io.sys
chainloader /io.sys
则显示:
Booting 启动 DOS/Windows 95/98/Me 系统

(hd0,0)
Filesystem type is fat,partition type 0xb
chainloader /io.sys

Error 14:Invalid or unsupported executable format
Press any key to continue...

另外这样的话
title 启动 DOS/Windows 95/98/Me 系统
chainloader (fd0)+1
rootnoverify (fd0)

也进不到DOS状态,和重起的效果差不多。

[ Last edited by wangjf on 2007-11-27 at 09:55 AM ]
第7楼 不点 发表于 2007-11-10 09:58
银牌会员 发帖 1,115 积分 2,491
find --set-root (fd0)/io.sys <------ 这句是错的。应该是:
find --set-root /io.sys


chainloader /io.sys

Error 14:Invalid or unsupported executable format
Press any key to continue...


你的 io.sys 不是微软的,或者遭到了病毒的破坏。DOS 6.22 之前的 IO.SYS 是不行的,必须是 win95 以后的 io.sys 才行。


USB-ZIP有两种选择:USB-ZIP(32)和USB-ZIP(63)我不知道这两种格式有什么区别。
在我这里格成USB-ZIP(32)可以正常启动进入DOS状态,USB-ZIP(63)方式则启动失败。
或则用其他的U盘格式化工具,只要U盘格式化后能够启动DOS状态就行。


依我来看,32 和 63 表示“每磁道的扇区数”。一般用 S 来表示“每磁道的扇区数”。这是个很敏感的参数。如果这个参数与主板 BIOS 认定的这个磁盘的参数不同,那么你就无法启动 DOS。

因此,可以推测,你的主板把你的 U 盘认成了 S=32。你用 S=63 的 FAT 文件系统,是无法启动 DOS 的。

但是,如果你有兴趣,并且愿意为 GRUB4DOS 的新功能做测试,你正好可以试试 S=63 的 U 盘是否可以启动 GRLDR。方法是这样的:

在别的机器上把你的 U 盘格式化为硬盘,里面只有一个 FAT16/32 的文件系统,并且让“每道扇区数”保持为 63,也就是说,故意做成与你的主板严重不符。然后用 bootlace 把 GRLDR 的引导扇区写入这个 U 盘。这样一来,这个 U 盘就变成“硬盘、软盘”双重格式了,就是说,它即可以作软盘,也可以做硬盘。当然最后不要忘了把 grldr 放在 U 盘的根目录。

好了,你把这个“双重”格式的 U 盘放在你的机器上(意思是把它当做软盘启动),看看它能否启动到 grub 环境。无论成功或失败,报告其结果。
第8楼 wangjf 发表于 2007-11-10 11:14
中级用户 发帖 63 积分 254
谢谢不点的解释。
我用的是Wengier修改过的IO.SYS(7.10)见附件里的,今天试试MS原版的
我这里用不同的电脑不太方便,那也尽量试试。USB-ZIP(32)和USB-ZIP(63)不同的情况。另外我的BIOS里还有USB-FDD,USB-HDD的选项。这些能够进行你需要的测试吗?如果可以,你给个方案。

[ Last edited by wangjf on 2007-11-10 at 11:20 AM ]

附件
IO.zip (75.74 KiB)
第9楼 wangjf 发表于 2007-11-10 12:58
中级用户 发帖 63 积分 254
刚才用WIN98SE原版的IO.SYS、MSDOS.SYS和COMMAND.COM测试USB-ZIP(32)启动
find --set-root /io.sys
chainloader /io.sys
这样还是无法进入DOS状态。换成
find --set-root (fd0)/io.sys
chainloader (fd0)/io.sys
这样则成功。

我想这是不是和USB-ZIP启动的方式有关呢,因为以USB-ZIP方式启动后的U盘DOS提示符状态显示是A:盘符,而以USB-HDD方式启动的话,DOS提示符状态显示是C:盘符.

附件
win98se-IO.zip (160.72 KiB)
第10楼 不点 发表于 2007-11-10 17:29
银牌会员 发帖 1,115 积分 2,491
没有目的的胡乱试验是不行的。你必须熟悉了grub4dos,掌握了它的基本操作技巧才可以进一步测试。

find --set-root (fd0)/io.sys <------ 这一句是错误的。

如果你继续犯这样的错误,表示你对于 grub4dos 很生疏,你还是先熟练使用半年到一年之后,再来帮忙比较好。


刚才用WIN98SE原版的IO.SYS、MSDOS.SYS和COMMAND.COM测试USB-ZIP(32)启动
find --set-root /io.sys
chainloader /io.sys
这样还是无法进入DOS状态。


当你熟练掌握 grub4dos 的基本用法之后,你自己应该可以找到问题的症结在哪里。到那时,你就能够确定究竟是你使用方法的不当造成的,还是 grub4dos 的 bug 所造成的,从而提供真正有价值的 bug 报告。


另外我的BIOS里还有USB-FDD,USB-HDD的选项。这些能够进行你需要的测试吗?如果可以,你给个方案。


当然可以。只是你不要急于测试。如上所说,你还是先学用 grub4dos 再说。

一个“硬盘、软盘双重格式”的 U 盘,无论在 USB-ZIP, USB-FDD, USB-HDD 下,都可以启动 GRLDR。目前我们正在提高 grub4dos 的适应能力,使得在主板 BIOS 的 CHS 几何参数完全扭曲的情况下也能顺利启动 GRLDR。

不要用非微软的工具来制作 U 盘启动盘。必须用微软的 FDISK,FORMAT,SYS 等工具,结合 grub4dos 的工具(例如 bootlace, grldr 等),这样制作的 GRLDR 引导盘才有效。其它方法制作的都不保证有效,而且出了问题也无权报告 BUG。
第11楼 wangjf 发表于 2007-11-10 20:01
中级用户 发帖 63 积分 254
还要熟悉半年到一年, 不点打击的不小呀。既然这样看来还要好好潜水。多多的利用Google。
我获得的GRUB4DOS的帮助基本上是lianjiang写的教程。虽然教程写的很好了,可是有些细节上的内容还是不容易获得帮助。再加上我的英文水平比较烂。读GRUB4DOS的英文说明就更难以明白了。现在GRUB4DOS对于新手来说,一份详细的使用说明很重要。GRUB4DOS在这方面现在还比较欠缺。
写好GRUB4DOS的使用说明也不太容易,作者要对GRUB4DOS很了解,很简单的操作也要说明清楚,因为一个简单的操作对于新手有时侯难以理解。而作者自己就会觉得比较罗嗦。GRUB4DOS更广泛的应用还需要努力呀。就说这么多吧,祝GRUB4DOS越来越完善。我继续潜水。

[ Last edited by wangjf on 2007-11-10 at 08:05 PM ]
第12楼 barton 发表于 2007-11-11 08:34
中级用户 发帖 197 积分 480 来自 黄冈
可以看看gnu grub相关的资料,补充学习
第13楼 Sense 发表于 2007-11-12 09:36
初级用户 发帖 9 积分 127
以前比较过USB-ZIP和USB-HDD格式的区别。USB-ZIP为每磁道32扇区(可能是iomega ZIP drive定义成这样吧),启动数据存放于32扇区;USB-HDD为每磁道63扇区(与硬盘一样),启动数据在63扇区。
老主板(两年前的,或者845以前的芯片组)对ZIP格式支持比较好,新主板对HDD格式支持比较好。而且很多新主板都没有USB-ZIP启动选项了,只支持USB-HDD。
另外,U盘容量超过256MB后如果格成USB-ZIP,在很多主板上会出问题,如无法启动、可以启动但无法读取256MB之后的数据等。这可能跟iomega的第一代ZIP驱动器最大容量250MB有关,BIOS代码延用了以前的数据。
所以为了最大兼容于现在的大容量U盘和新主板,建议格式化为USB-HDD格式。
第14楼 fujianabc 发表于 2007-11-12 18:47
金牌会员 发帖 1,616 积分 3,467
usb-zip标准比较混乱,zip软驱没流行开来,这个比较混乱的标准却留给了现在的u盘。
usb-hdd,usb-cd,usb-fdd都比usb-zip兼容性要好
第15楼 fujianabc 发表于 2007-11-12 18:53
金牌会员 发帖 1,616 积分 3,467
Originally posted by Sense at 2007-11-12 09:36 AM:
以前比较过USB-ZIP和USB-HDD格式的区别。USB-ZIP为每磁道32扇区(可能是iomega ZIP drive定义成这样吧),启动数据存放于32扇区;USB-HDD为每磁道63扇区(与硬盘一 ...

usb-hdd不是你想格式化就格式化得了的,usb-hdd在xp下认成本地磁盘,usb-zip认成可移动磁盘。
两者差别不仅在于32/64扇区之间的差别,而与u盘本身的芯片有关,要改一般只有量产工具才能改。
我以前有个朗科的u盘,自己提供了一个工具可以选择usb-hdd或usb-zip,改完之后,u盘中数据没有任何改变,启动扇区数也未变,但xp中就变了。

[ Last edited by fujianabc on 2007-11-12 at 06:54 PM ]
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023