中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] »
作者:
标题: GRUB 伤脑筋的问题, 大家会诊一下 上一主题 | 下一主题
不点
银牌会员

不甘寂寞的人


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

在没有做出 FAT12、FAT16之前,大家可以先试试 FAT32 是否工作。这终究得测试。

现在,当 C:盘是 FAT32 的时候,不再使用 NT boot sector 了。这当然有个前提,就是 BOOTGRUB 从第二扇区开始拷贝到紧接 MBR 之后的扇区。如果没有拷贝到位,仍然要使用 NT boot sector。





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




积分 385
发帖 118
注册 2003-11-11
状态 离线
『第 227 楼』:  



  Quote:
以下是引用不点在2004-3-2 13:01:29的发言:
在没有做出 FAT12、FAT16之前,大家可以先试试 FAT32 是否工作。这终究得测试。

现在,当 C:盘是 FAT32 的时候,不再使用 NT boot sector 了。这当然有个前提,就是 BOOTGRUB 从第二扇区开始拷贝到紧接 MBR 之后的扇区。如果没有拷贝到位,仍然要使用 NT boot sector。


Dear TinyBit,

At present, is it possible to install GRLDR and other GRUB files onto
a FreeDOS floppy using FreeDOS's floppy boot sector to load GRLDR?

[em12][em12][em12]

2004-3-3 00:00
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


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

GRLDR 的主要意义,在于它可以从硬盘 MBR 调用。如果在软盘上,最好使用 GRUB.EXE,或者使用 stage2 文件。

当 GRLDR 的 FAT12、16引导扇区制作出来之后,就可以从软盘 boot sector 启动 GRLDR 了。FREEDOS 的 KERNEL 定位于 0000:0600,而 GRLDR 定位于 2000:0000,所以不能通过简单更改 KERNEL.SYS 为 GRLDR 而启动 GRLDR。

我们只需要一个用于引导 GRLDR 的 FAT12、16 引导扇区,和 GRLDR 文件本身(它必须处于根目录),其它一概不需要了。



因为我们亲手创建,这个世界更加美丽。
2004-3-3 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


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

BOOTGRUB 的开发已经完成了。现在进入测试阶段。看看有什么毛病。

BOOTGRUB 由四个扇区构成。

第一扇区:用于 MBR,或者用于从 NTLDR 链式引导 GRLDR,或者从 GRUB 命令行用

chainloader (...)/bootgrub
rootnoverify (hd0)

来链式引导 GRLDR。

当第一扇区放置在 MBR 时,当然只能把第一扇区开头的 446 字节拷贝到 MBR 的开头,而 MBR 尾部的 66 字节不要改动(千万不要改动!)。

第二扇区:该扇区以及以后的第三、第四扇区只有放置在紧接 MBR 之后才起作用。第二扇区是 MBR 的辅助程序,第三扇区是 FAT32 的引导扇区,第四扇区是 FAT12/16 的引导扇区。

【顺便说,当编译时,如果注释掉 #define BOOTGRUB 一行,则生成的第三扇区和第四扇区是用来启动 FreeDOS 的。】

第四扇区还有一种用途:把第四扇区拷贝到软盘第一扇区,可以从软盘启动 GRLDR。这里要说明,软盘原有扇区的以下字段不要改动,应当保持软盘上原来的数据:从偏移 0x02 到 0x3d 这 60 个字节不要改动,这个区域的数据应当采用软盘上相应区域的值。只有 FAT 格式的软盘才有效,ext2 等其它格式无效。GRLDR 文件需要处于软盘根目录。

下载:
http://www.ipdown.com/grub4dos/bootgrub           这是 2048 字节的二进制文件
http://www.ipdown.com/grub4dos/bootgrub.S         这是源程序。




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




积分 385
发帖 118
注册 2003-11-11
状态 离线
『第 230 楼』:  



  Quote:
以下是引用不点在2004-3-5 16:16:49的发言:
BOOTGRUB的开发已经完成了。现在进入测试阶段。看看有什么毛病。

BOOTGRUB由四个扇区构成。

第一扇区:用于MBR,或者用于从NTLDR链式引导GRLDR,或者从GRUB命令行用

chainloader(...)/bootgrub
rootnoverify(hd0)

来链式引导GRLDR。

当第一扇区放置在MBR时,当然只能把第一扇区开头的446字节拷贝到MBR的开头,而MBR尾部的66字节不要改动(千万不要改动!)。

第二扇区:该扇区以及以后的第三、第四扇区只有放置在紧接MBR之后才起作用。第二扇区是MBR的辅助程序,第三扇区是FAT32的引导扇区,第四扇区是FAT12/16的引导扇区。

【顺便说,当编译时,如果注释掉#defineBOOTGRUB一行,则生成的第三扇区和第四扇区是用来启动FreeDOS的。】

第四扇区还有一种用途:把第四扇区拷贝到软盘第一扇区,可以从软盘启动GRLDR。这里要说明,软盘原有扇区的以下字段不要改动,应当保持软盘上原来的数据:从偏移0x02到0x3d这60个字节不要改动,这个区域的数据应当采用软盘上相应区域的值。只有FAT格式的软盘才有效,ext2等其它格式无效。GRLDR文件需要处于软盘根目录。

下载:
http://www.ipdown.com/grub4dos/bootgrub这是2048字节的二进制文件
http://www.ipdown.com/grub4dos/bootgrub.S这是源程序。

Dear TinyBit,

Congratulation!

We shall join in testing it. And we now begin a freeware project
-- WINGRUB -- to support your Grub For DOS.

WINGRUB will offer the following features:

1. able to partition & format hard disk into FAT12 / 16 / 32
2. able to copy BOOTGRUB onto floppy disk / floppy disk image / hard disk /
    hard disk image of FAT12 / 16 /  32  [& possibly NTFS under Win2000 / XP]
    so that it loads up GRLDR as provided by Grub for DOS
3. copy relevant files onto FAT12 / 16 / 32 [& NTFS under Win2000 / XP]
    partitions for use
4. use our VDisk driver under Win9x / ME for loading up a VDisk for such
    operations to produce suitable bootable image file or use Filedisk for
    such operation under Win2000 / XP

All these operations are done under a Windows GUI.

We plan to offer this one to two weeks.

If possible, could Wengier put up a link and some description onto the
homepage of Grub For DOS for WINGRUB when it is ready?

[em12][em12][em12]






[此贴子已经被作者于2004-3-5 23:53:48编辑过]




2004-3-5 00:00
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27734
发帖 10521
注册 2002-10-9
状态 离线
『第 231 楼』:  

"If possible, could Wengier put up a link and some description onto the
homepage of Grub For DOS for WINGRUB when it is ready?"


没问题。

不过我同时也希望如果纯DOS下和WIN的DOS窗口中如果也有一个能方便完成"WinGRUB"功能的程序(能完成一些基本功能就行,最好是GUI方式的小程序,不过命令行参数方式也可以)就好了,比如能够自动将BOOTGRUB等文件复制到硬盘中或者硬盘MBR中,而不是由用户手工完成。毕竟这样更能方便地普及和推广GRUB。如果可能的话,windrv还可以把它包含到"WinGRUB"中一起发行,以实现跨平台的功能,类似于WINRAR中既包含WINRAR.EXE又包含RAR.EXE那样。



Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2004-3-6 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
windrv
中级用户




积分 385
发帖 118
注册 2003-11-11
状态 离线
『第 232 楼』:  



  Quote:
以下是引用Wengier在2004-3-6 5:02:48的发言:
"Ifpossible,couldWengierputupalinkandsomedescriptionontothe
homepageofGrubForDOSforWINGRUBwhenitisready?"


没问题。

不过我同时也希望如果纯DOS下和WIN的DOS窗口中如果也有一个能方便完成"WinGRUB"功能的程序(能完成一些基本功能就行,最好是GUI方式的小程序,不过命令行参数方式也可以)就好了,比如能够自动将BOOTGRUB等文件复制到硬盘中或者硬盘MBR中,而不是由用户手工完成。毕竟这样更能方便地普及和推广GRUB。如果可能的话,windrv还可以把它包含到"WinGRUB"中一起发行,以实现跨平台的功能,类似于WINRAR中既包含WINRAR.EXE又包含RAR.EXE那样。

Dear Wengier,

Thank you very much!

We shall try our best. First we finish WINGRUB, then we try to port it to
run under real-DOS or virtual-DOS with a GUI or on command-line.

I don''t know if TinyBit is interested in doing the latter part.
If he is, he has the right to claim that priority because Grub For DOS
is originated by him.

By the way, could TinyBit clarify the following points about copying
BOOTGRUB to floppy [:?]

1. what is Offset - 0x02  to 0x3d on a floppy all about?
2. are you referring to a formatted / & sys-ed floppy?
3. formatted / & sys-ed by MSDOS or FreeDOS?
4. what are the steps of copying the 4th sector of BOOTGRUB
    onto the floppy? Are they [:?]
a. format a floppy by MSDOS or FreeDOS
b. save Offset 0x20 to 0x3d to a file
c. copy the 4th sector of BOOTGRUB to the first sector of the floppy
d. restore the Offset file to Offset position 0x20 to 0x3d


[em12][em12][em12]


[此贴子已经被作者于2004-3-6 8:07:59编辑过]




2004-3-6 00:00
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


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

谢谢 windrv 兄一直以来的关心支持!

为方便您的工作,我把一些相关的技术细节在这里说明一下。

1。BOOTGRUB 适用于引导 FAT12/16/32、NTFS 之下的 GRLDR,目前不支持其它分区格式。

2。BOOTGRUB 目前查找 GRLDR 的算法是这样的:先从 MBR 的第一个主分区开始查找,看它是不是 FAT12/16/32 分区,如果是,就假定该分区根目录含有 GRLDR 文件,并试图引导,如果该 FAT12/16/32 分区没有 GRLDR 文件,引导将会失败(显示“No GRLDR”并停机)。如果该分区不是 FAT12/16/32 分区,再看看它是不是 NTFS 分区,也就是看看它有没有微软的 NTLDR 引导扇区,如果有,就假定该 NTFS 分区根目录含有 GRLDR 文件,并试图启动。如果该分区没有微软的 NTLDR 引导扇区,则认为第一个主分区无法启动 GRLDR,失败。于是转向第二个主分区,作类似的事情。如果也失败,再尝试第三、第四个主分区。如果四个主分区都失败,显示 Missing GRLDR 信息并停机。按照目前的算法设计,我们不关心哪个主分区含有 Active 激活标志。一般情况下我们查找到的 GRLDR 分区就是 Windows 的 C: 盘,但可能不总是这样。【注意 Windows 一般是把含有激活标志的主分区作为 C: 盘。】

3。我们的引导程序具有很大的灵活性。用户可以随意调整分区的大小,甚至改动分区的类型(从FAT16改为FAT32或者NTFS,随便改!),这与我们的程序都无关,我们的 BOOTGRUB 总可以找到分区根目录下的 GRLDR 文件。

4。由于算法的通用性和透明性,使得安装 BOOTGRUB 到 MBR 的过程简单了,可以用任何软件、在任何操作系统之下进行安装。作为比较,GNU GRUB 的 stage 文件需要进入 GRUB 才能安装,其他人很难为它编写安装到 MBR 的程序,因为它的 MBR 中含有绝对磁盘定位信息,随 stage 文件物理位置的不同而变化。

5。软盘的文件系统类型如果是 FAT12/16,就用 BOOTGRUB 的第四扇区,正如前面所说,软盘 0x02 到 0x3d 这 60 个字节不要改动。如果软盘的分区类型是 FAT32,那么应当用 BOOTGRUB 的第三扇区,保留不动的软盘扇区字节范围是 0x02 到 0x59,这 88 个字节不要改动,采用软盘上原有的值。不要奇怪软盘会采用 FAT16、FAT32 这样的格式,这是可能的,如果软盘容量为几百兆或几十G,就会采用 FAT16、FAT32 这样的格式。尤其是 GRUB for DOS 可以把硬盘文件仿真为软盘,这个仿真了的软盘的容量就没有任何限制。

------------------

另外,GRUB for DOS 还需要一个能够整理单个文件碎片的工具,不知道 windrv 兄的公司能否制作这样的工具。





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




积分 385
发帖 118
注册 2003-11-11
状态 离线
『第 234 楼』:  

Dear TinyBit,

Thank you for your clarification.

About defragmentation, if the partition itself is scattered with other files
and have no continuous free space sufficient to host the image file, we
need to defrag the partition first. We have no plan to do a partition
defragmentation programme now.

But there are some other ways to work around the problem:

1. a. defragment the partition first
    b. find & reserve sufficient continuous free space for the image file
    c. write the image file onto it
2. under Win2000 / XP, create an empty image file and mount it up
    using filedisk, then copy all the files you need one by one into the
    image file -- you may then use our WINDRV or other utility to turn
    it into a bootable hard disk image file and copy it onto the hard disk
    with WINDRV
3. under Win9x / ME, we have a utility called FATimage to create an
    empty image file of FAT 16 / 32 partition and to help copy files into
    it continuously -- after that use our WINDRV or other utility to turn
    it into a bootable hard disk image file and copy it onto the hard disk
    with WINDRV

Please note the use of FATimage should not be done in where the M$
patents on long-file-name handling are in force if the files you copy with
FATimage have long-file-name.

We shall release details about this later.

[em12][em12][em12]

[此贴子已经被作者于2004-3-6 9:31:41编辑过]




2004-3-6 00:00
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27734
发帖 10521
注册 2002-10-9
状态 离线
『第 235 楼』:  

"I don''t know if TinyBit is interested in doing the latter part.
If he is, he has the right to claim that priority because Grub For DOS
is originated by him."


不知不点对这个问题的看法如何?



Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2004-3-6 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


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

哦,windrv 兄,您也同时在线。刚才没有看到您的帖子呢。

回复 windrv 兄:

> We shall try our best. First we finish WINGRUB, then we try to port it to run under real-DOS or virtual-DOS
> with a GUI or on command-line.

好!

> I don''t know if TinyBit is interested in doing the latter part. If he is, he has the right to claim that priority
> because Grub For DOS is originated by him.

身体不好,没有能力对付很多事情了。例如,很少上论坛来,也不能答复许多技术问题。谢谢 windrv 兄,我支持您的工作;您做的工作,我就不做了。谢谢您减轻了我的负担。真的是非常感谢了!

现在我想尽早把 grub for dos 0.2.0 加以了结,以后可能就不再染指了。身体原因。

> By the way, could TinyBit clarify the following points about copying BOOTGRUB to floppy [:?]

> 1. what is Offset - 0x02  to 0x3d on a floppy all about?

0x02 ----- win98 用这个字节来表示是否需要强制使用 LBA 磁盘访问模式。当分区处于 1024 柱面以外时,win98 将把 0x0e 这个单字节数值写入 0x02 这个偏移位置。通常在这个位置处的数值是 0x90。我们的程序也用这个字节的指示来决定是否采用 LBA 磁盘模式。通常,为了兼容性,在 1.44M 的软盘上,不要放置 0x0e , 应当保持 0x90 这个值。

0x03 - 0x0A 这 8 个字节是字符串,任意值都可以。

0x0B - 0x3D 这 51 个字节是 BPB 和 extended BPB 表。记录着磁盘的重要物理参数,不可随意更改。

> 2. are you referring to a formatted / & sys-ed floppy?

是的。精确地说,是一个格式化过的,但不一定是含有系统的。我们除了需要 0x02 - 0x3D 这 60 个字节之外,别的似乎都不需要了。当然,FAT表和根目录应当存在,这是 FAT 磁盘都有的。没有根目录的话,我们就不能放置 GRLDR 文件了。无论是那个操作系统【MS-DOS,FREEDOS,LINUX 等等】,它们建立的 BPB 表都是一样的。所以,只要是格式化过的就行了,空的、没有文件的盘,也可以的【只要再拷入一个 GRLDR 文件】。

> 3. formatted / & sys-ed by MSDOS or FreeDOS?

如上,随便。自己写格式化软件也可以。PC-TOOLS 等软件都可以。

> 4. what are the steps of copying the 4th sector of BOOTGRUB onto the floppy? Are they [:?]
>
> a. format a floppy by MSDOS or FreeDOS
> b. save Offset 0x20 to 0x3d to a file
> c. copy the 4th sector of BOOTGRUB to the first sector of the floppy
> d. restore the Offset file to Offset position 0x20 to 0x3d
>

是 0x02 to 0x3d , 不是 0x20 to 0x3d。怎么做都行,只要达到目的便可。例如,

a. 格式化一张软盘,或者用任何一张现有的已经格式化了的软盘。
b. 将软盘第一扇区读入内存区域1,将 BOOTGRUB 第四扇区读入内存区域2。
c. 将 内存区域1 的 0x02 ---- 0x3d 这 60 个字节复制到 内存区域2 的 0x02 ---- 0x3d。
d. 将更改后的 内存区域2 写入软盘第一扇区。
e. 把 GRLDR 文件复制到软盘根目录。【这一步任何时候做都行,不在乎先后】。

如果软盘格式是 FAT32,当然要用 BOOTGRUB 第三扇区而不是第四扇区。相应地, 0x02 ---- 0x3d 这个 60 字节区域,应当相应地改为 0x02 ---- 0x59 这个 88 字节的区域。






因为我们亲手创建,这个世界更加美丽。
2004-3-6 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27734
发帖 10521
注册 2002-10-9
状态 离线
『第 237 楼』:  

不点:

我发现了GRUB.EXE的一个“问题”。那就是,当CONFIG.SYS中指定SHELL=C:\GRUB.EXE(没有任何参数),或者当系统提示输入命令处理器的路径时输入GRUB.EXE,均无法正常进入GRUB界面,而是出现GRUB的用法,即出现以下信息:

Usage:
        GRUB --config-file=FILE
The options are case-sensitive, you must use lower-case letters. Example:
        GRUB --config-file=(hd0,0)/boot/grub/menu.lst

不知是何故?由于这个在有些情况下还是比较重要的,希望能解决,谢谢!



Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2004-3-6 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


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

谢谢。当 GRUB 发现命令行有不认识的参数时,就显示用法并退出。可能 shell= 命令在 GRUB 命令行增加了额外的参数,如 /p 等等之类的。好的,希望下次可以解决这个 BUG。





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




积分 385
发帖 118
注册 2003-11-11
状态 离线
『第 239 楼』:  

Dear TinyBit,

Thank you for your further clarification and your grace to let us do something
for your Grub for DOS under DOS.

We shall provide such a DOS utility for copying BOOTGRUB to hard disk  /
floppy disk / image files as suggested by Wengier.

We however are unable to download your bootgrub  & bootgrub.S from
the URL provided by you at 229th floor above.

Could you provide another URL or put up on your GRUB for DOS homepage?

Please also take good care of your health!

[em12][em12][em12]

[此贴子已经被作者于2004-3-6 17:30:04编辑过]




2004-3-6 00:00
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
Roy
管理员

專業島民



积分 4869
发帖 1633
注册 2002-12-10
状态 离线
『第 240 楼』:  



  Quote:
以下是引用windrv在2004-3-6 17:27:47的发言:
Dear TinyBit,

Thank you for your further clarification and your grace to let us do something
for your Grub for DOS under DOS.

We shall provide such a DOS utility for copying BOOTGRUB to hard disk  /
floppy disk / image files as suggested by Wengier.

We however are unable to download your bootgrub  & bootgrub.S from
the URL provided by you at 229th floor above.

Could you provide another URL or put up on your GRUB for DOS homepage?

Please also take good care of your health!

[em12][em12][em12]

[此贴子已经被作者于2004-3-6 17:30:04编辑过]


OK then I provide two mirrors:
Japan mirror(faster):
http://i.cool.ne.jp/clspaste02/bootgrub
http://i.cool.ne.jp/clspaste02/bootgrub.S

China mirror(slower):
http://roy.e-stone.cn/bootgrub
http://roy.e-stone.cn/bootgrub.S



我的網站:http://mw16.2ya.com/ 我的網誌: http://scrappedblog.blogspot.com/
~
我的Winamp正在播放的歌曲:
2004-3-6 00:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: