中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区 » 为移动操作系统打造稳健的引导扇区,请参谋
« [1] [2] »
作者:
标题: 为移动操作系统打造稳健的引导扇区,请参谋 上一主题 | 下一主题
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『楼 主』:  为移动操作系统打造稳健的引导扇区,请参谋

为了讨论问题集中起见,我把这篇文章贴在 google 网上论坛──grub4dos邮件列表上了。

要在此论坛发帖,请发电子邮件到 grub4dos@googlegroups.com
要退订此论坛,请发邮件至 grub4dos-unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/grub4dos?hl=zh-CN 访问该论坛



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




积分 89
发帖 47
注册 2007-4-15
状态 离线
『第 2 楼』:  

我認為用第一種方法好一些.誰做啟動盤(U盤).不對U盤進行格式化呀?
用哪種方法做都要 格式化的.只是你用的工具不同.
但是我不知道你格式化后是什么格式,還是FAT32K嗎?
要是格式變了,就要想一想了.

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

不甘寂寞的人


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

终于完成了第一步。 http://grub4dos.jot.com/ 从 2007-11-05 开始,支持自动调节 CHS 几何参数。

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

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

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

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

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

请报告详细一些,以便排解 BUG。



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




积分 254
发帖 63
注册 2003-4-8
状态 离线
『第 4 楼』:  

在普通硬盘上测试11-05版的10-15版的一样,正常使用。USB设备还未测试。

2007-11-5 15:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
frank55555
初级用户




积分 89
发帖 47
注册 2007-4-15
状态 离线
『第 5 楼』:  

在U盤上一定要安裝嗎?能不能只用GRUB.EXE行不行呀?

2007-11-7 09:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wangjf
中级用户




积分 254
发帖 63
注册 2003-4-8
状态 离线
『第 6 楼』:  

今天使用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 [1] 启动 DOS/Windows 95/98/Me 系统
find --set-root (fd0)/io.sys
chainloader (fd0)/io.sys

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

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

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

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

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

title [7] 重新启动
reboot

title [8] 关闭计算机
halt

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

这一项中
title [1] 启动 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 [1] 启动 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 [1] 启动 DOS/Windows 95/98/Me 系统
chainloader (fd0)+1
rootnoverify (fd0)

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

[ Last edited by wangjf on 2007-11-27 at 09:55 AM ]

2007-11-9 17:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


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

find --set-root (fd0)/io.sys <------ 这句是错的。应该是:
find --set-root /io.sys

  Quote:
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 才行。

  Quote:
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 环境。无论成功或失败,报告其结果。



因为我们亲手创建,这个世界更加美丽。
2007-11-10 09:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wangjf
中级用户




积分 254
发帖 63
注册 2003-4-8
状态 离线
『第 8 楼』:  

谢谢不点的解释。
我用的是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 ]

附件 1: IO.zip (2007-11-10 11:19, 75.74 K,下载次数: 8)
2007-11-10 11:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wangjf
中级用户




积分 254
发帖 63
注册 2003-4-8
状态 离线
『第 9 楼』:  

刚才用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:盘符.

附件 1: win98se-IO.zip (2007-11-10 12:58, 160.72 K,下载次数: 9)
2007-11-10 12:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


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

没有目的的胡乱试验是不行的。你必须熟悉了grub4dos,掌握了它的基本操作技巧才可以进一步测试。

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

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

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

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

  Quote:
另外我的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。



因为我们亲手创建,这个世界更加美丽。
2007-11-10 17:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wangjf
中级用户




积分 254
发帖 63
注册 2003-4-8
状态 离线
『第 11 楼』:  

还要熟悉半年到一年, 不点打击的不小呀。既然这样看来还要好好潜水。多多的利用Google。
     我获得的GRUB4DOS的帮助基本上是lianjiang写的教程。虽然教程写的很好了,可是有些细节上的内容还是不容易获得帮助。再加上我的英文水平比较烂。读GRUB4DOS的英文说明就更难以明白了。现在GRUB4DOS对于新手来说,一份详细的使用说明很重要。GRUB4DOS在这方面现在还比较欠缺。
      写好GRUB4DOS的使用说明也不太容易,作者要对GRUB4DOS很了解,很简单的操作也要说明清楚,因为一个简单的操作对于新手有时侯难以理解。而作者自己就会觉得比较罗嗦。GRUB4DOS更广泛的应用还需要努力呀。就说这么多吧,祝GRUB4DOS越来越完善。我继续潜水。

[ Last edited by wangjf on 2007-11-10 at 08:05 PM ]

2007-11-10 20:01
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
barton
中级用户





积分 480
发帖 197
注册 2006-9-20
来自 黄冈
状态 离线
『第 12 楼』:  

可以看看gnu grub相关的资料,补充学习

2007-11-11 08:34
查看资料  发短消息 网志   编辑帖子  回复  引用回复
Sense
初级用户




积分 127
发帖 9
注册 2004-3-2
状态 离线
『第 13 楼』:  

以前比较过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格式。

2007-11-12 09:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fujianabc
金牌会员





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

usb-zip标准比较混乱,zip软驱没流行开来,这个比较混乱的标准却留给了现在的u盘。
usb-hdd,usb-cd,usb-fdd都比usb-zip兼容性要好

2007-11-12 18:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fujianabc
金牌会员





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



  Quote:
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 ]

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


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



论坛跳转: