找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 2245|回复: 42

[发布] grldr单扇区引导代码

 荐  火 [复制链接]
发表于 2026-9-26 10:53:55 | 显示全部楼层 |阅读模式
说明:
这个是无忧论坛 Pauly 发给我的,绝对扇区直接引导 GRLDR 。
有几年了,才想起来给大家一起用用看看..............


方法:
附件中是单扇区GRLDR引导程序,可以安装在MBR,也可以是PBR,或者是其它任何地方。分区表的位置不用填。
有以下几个参数:
0x1A8:8字节,扇区地址,GRLDR存放的起始LBA;
0x1B0:2字节,扇区数,GRLDR文件的总扇区数;
0x1B2:2字节,物理扇区大小,默认0x0200(512);
0x1B4:2字节,一次读取扇区数,默认0x7F(127);




grldr单扇区引导代码.zip (1.5 KB, 下载次数: 66)






评分

参与人数 2无忧币 +10 收起 理由
hilsonma + 5 赞一个!
it323 + 5 赞一个!

查看全部评分

发表于 2026-9-26 11:20:04 | 显示全部楼层
多谢楼主了,下载试用啊
回复

使用道具 举报

发表于 2026-9-26 11:24:43 | 显示全部楼层
收藏起来用一下,谢谢!
回复

使用道具 举报

发表于 2026-9-26 11:49:59 | 显示全部楼层
本帖最后由 hilsonma 于 2026-9-26 14:55 编辑

请教楼主和各位坛友,一次读取扇区数怎么去优化取值


这是继umbr、gpt_or_mbr.bin后又一种通用gpt/mbr实现legacy启动的方法,感谢楼主发布。
这是最直接的grldr引导
就是grldr的体量偏大,对于老分区方案可能分区前的未分配空间放不下。
好在较新的分区方案一般都采用扇区对齐,而且多是2048以上的扇区对齐,这样就放得下。


附件是安装批处理
gpt/mbr磁盘通用
批处理采用分区前隐藏写入glrdr,防止grldr被修改引起位置变化导致启动失败。
因此要求第一分区起始扇区不能小于665,以便装下grldr (批处理有检查并提示)
附件内的grldr是20260528的版本,大小是631扇区,批处理固定从34号扇区开始写grldr。
如果替换grldr要注意其大小是否能放入分区前未分配空间

安装了grldr扇区启动后就可以实现g4d启动了,具体启动配置请使用 menu.lst ,编辑好并放到某分区根目录

安装grldr扇区启动.7z (739.36 KB, 下载次数: 43)
回复

使用道具 举报

发表于 2026-9-26 12:14:09 | 显示全部楼层
留印学习,谢谢分享。
回复

使用道具 举报

发表于 2026-9-26 12:15:50 | 显示全部楼层
感谢分享
回复

使用道具 举报

发表于 2026-9-26 12:23:40 | 显示全部楼层
大神都老了
回复

使用道具 举报

发表于 2026-9-26 13:48:50 | 显示全部楼层
谢谢分享
回复

使用道具 举报

发表于 2026-9-26 14:02:37 | 显示全部楼层
支持版主发布grldr单扇区引导代码
回复

使用道具 举报

发表于 2026-9-26 14:24:35 来自手机 | 显示全部楼层
应用场景是啥?

点评

1楼有说了,可以MBR,PBR,或其他任意地方,前提是要熟悉扇区启动 它就是一段引导代码,相当于一种MBR或者PBR。 比较接地气的说法是可以用它实现gpt磁盘的legacy启动。 不熟悉运用的可以使用4楼我做的批处理。  详情 回复 发表于 2026-9-26 14:49
回复

使用道具 举报

发表于 2026-9-26 14:49:32 | 显示全部楼层

1楼有说了,可以MBR,PBR,或其他任意地方,前提是要熟悉扇区启动
它就是一段引导代码,相当于一种MBR或者PBR。
比较接地气的说法是可以用它实现gpt磁盘的legacy启动。
不熟悉运用的可以使用4楼我做的批处理。
回复

使用道具 举报

发表于 2026-9-26 14:56:01 来自手机 | 显示全部楼层
其实先安装grldr.mbr,再由它寻找grldr,要简单一些。毕竟它的尺寸小,安装代码容易寻找安装空间。

点评

yaya,或许我换个说法你会容易接受一些。 你所说所想的是正常的安装 而楼主提供的是一种补充,不是替代。 当分区前有足够安装空间放下grldr的时候,可以使用这个补充方案, 代码写入扇区0,grldr写入分区前,再将gr  详情 回复 发表于 2026-9-27 08:35
我不熟悉代码,不知道他这段代码内部如何。但从这段代码到grldr,无疑是最直接的,因为这段代码是直接读取grldr所在扇区引导。而grldr.mbr还要通过文件系统找grldr引导。 它的不足之处就是grldr的尺寸大,象你说的  详情 回复 发表于 2026-9-26 15:10
回复

使用道具 举报

发表于 2026-9-26 15:10:15 | 显示全部楼层
本帖最后由 hilsonma 于 2026-9-26 15:28 编辑
2011yaya2007777 发表于 2026-9-26 14:56
其实先安装grldr.mbr,再由它寻找grldr,要简单一些。毕竟它的尺寸小,安装代码容易寻找安装空间。 ...

我不熟悉代码,不知道他这段代码内部如何。但从这段代码到grldr,无疑是最直接的,因为这段代码是直接读取grldr所在扇区引导。而grldr.mbr还要通过文件系统找grldr引导。

它的不足之处就是grldr的尺寸大,象你说的不容易寻找安装空间

通过这段代码,引导某扇区位置的grldr,就相当于grub2的boot.img,引导某扇区位置的core.img,镜像尺寸方面也差不多,在现在的电脑应该没什么问题,如果是以前的古董电脑当然还是当初设计的g4d引导兼容更好。
回复

使用道具 举报

发表于 2026-9-26 15:50:55 | 显示全部楼层
谢谢

点评

比如你设计一个安装批处理 ,在mbr写一段引导代码很容易。但是你寻找grldr的安装逻辑扇区,就没有那么容易了。你得厉遍所有分区寻找它,这里涉及各种文件类型的分区。 如果在批处理现安装grldr,虽然不用寻找了,但  详情 回复 发表于 2026-9-26 16:23
回复

使用道具 举报

发表于 2026-9-26 16:23:07 来自手机 | 显示全部楼层
rgfwqx@163.com 发表于 2026-9-26 15:50
谢谢

比如你设计一个安装批处理 ,在mbr写一段引导代码很容易。但是你寻找grldr的安装逻辑扇区,就没有那么容易了。你得厉遍所有分区寻找它,这里涉及各种文件类型的分区。
如果在批处理现安装grldr,虽然不用寻找了,但是你把它安装在哪里?正常安装的话更困难。
如果像你说的那样,要求用户在第一分区前面预留空间,一是要和用户沟通,二是对于一般用户来说,并非易事。好像也没有见过可以这样的格式化工具。

点评

理解你说的。 这就是多一种选择。它的确实是缺乏灵活。现在的电脑,不是太老的,一般都采用扇区对齐分区了的,应该采用2048扇区对齐的也多,这种情况分区前就有足够的空间去放下。 放不下的,可以使用diskgenius这  详情 回复 发表于 2026-9-26 18:20
回复

使用道具 举报

发表于 2026-9-26 17:13:05 | 显示全部楼层
感谢楼主 学习了
回复

使用道具 举报

发表于 2026-9-26 18:20:31 | 显示全部楼层
2011yaya2007777 发表于 2026-9-26 16:23
比如你设计一个安装批处理 ,在mbr写一段引导代码很容易。但是你寻找grldr的安装逻辑扇区,就没有那么容 ...

理解你说的。

这就是多一种选择。它的确是缺乏灵活。
现在的电脑,不是太老的,一般都采用扇区对齐分区了的,应该采用2048扇区对齐的也多,这种情况分区前就有足够的空间去放下。

放不下的,可以使用diskgenius这样的分区工具去调整预留空间,不过我一般不建议普通用户去做这种调整,特别是数据较多的时候。我一般建议改用其他方案。

合适用就用,不合适用就换方案。选择多总比选择少要好。我是从用户的角度来说的。在开发者的角度可能会有所不同。

至于你说的寻找/安装困难,那是楼主说的,mbr/pbr/任何地方,那是理论上的,真那样做确实会是你说的困难。所以我只选择主引导代码在磁盘最前面,grldr在LBA34开始,gpt/mbr通用,分区前能写下grldr就可以用这个方案,分区前写不下grldr就不建议用这个方案,就这么简单。
回复

使用道具 举报

发表于 2026-9-26 19:18:44 | 显示全部楼层
好东西啊,楼主辛苦!
回复

使用道具 举报

发表于 2026-9-26 21:35:54 | 显示全部楼层
感谢分享
回复

使用道具 举报

发表于 2026-9-27 00:07:03 | 显示全部楼层
很实用的内容,学习了,感谢分享。
回复

使用道具 举报

发表于 2026-9-27 07:26:29 | 显示全部楼层
很好的

评分

参与人数 1无忧币 +5 收起 理由
yyz2191958 + 5

查看全部评分

回复

使用道具 举报

发表于 2026-9-27 08:35:17 | 显示全部楼层
2011yaya2007777 发表于 2026-9-26 14:56
其实先安装grldr.mbr,再由它寻找grldr,要简单一些。毕竟它的尺寸小,安装代码容易寻找安装空间。 ...

yaya,或许我换个说法你会容易接受一些。
你所说所想的是正常的安装
而楼主提供的是一种补充,不是替代。

当分区前有足够安装空间放下grldr的时候,可以使用这个补充方案,
代码写入扇区0,grldr写入分区前,再将grldr的扇区位置写入扇区0(修改代码参数)
这样就可以直接从指定的扇区位置引导grldr
回复

使用道具 举报

发表于 2026-9-27 19:17:59 | 显示全部楼层
使用gpt_or_mbr.bin代码,把grldr的逻辑扇区地址,写到0x28处(4字节),就可以启动grldr了。

点评

我刚试了,没有启动grldr.  详情 回复 发表于 2026-9-27 22:03
回复

使用道具 举报

发表于 2026-9-27 22:03:11 | 显示全部楼层
本帖最后由 hilsonma 于 2026-9-27 22:10 编辑
2011yaya2007777 发表于 2026-9-27 19:17
使用gpt_or_mbr.bin代码,把grldr的逻辑扇区地址,写到0x28处(4字节),就可以启动grldr了。 ...

我刚试了,没有启动grldr.


2026092702.jpg

2026092703.jpg

2026092704.jpg
回复

使用道具 举报

发表于 2026-9-28 06:44:37 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2026-9-28 08:17 编辑

"我刚试了,没有启动grldr."
你的grldr是安装在0x22(34)扇区吗?
我的grldr是在0xd7a处,可以正常启动呀。

我测试了3个img镜象,格式分别为mbr/gpt,都启动正常。

点评

我是将grldr安装在0x22扇区 刚才又拿个img镜像试了一下,还是不能启动,不过提示不一样了: Try (hd0,0): FAT16: No GRLDR Try (hd0,1): invalid or null Try (hd0,2): invalid or null Try (hd0,3): invalid or nul  详情 回复 发表于 2026-9-28 12:09
回复

使用道具 举报

发表于 2026-9-28 12:09:27 | 显示全部楼层
本帖最后由 hilsonma 于 2026-9-28 13:14 编辑
2011yaya2007777 发表于 2026-9-28 06:44
"我刚试了,没有启动grldr."
你的grldr是安装在0x22(34)扇区吗?
我的grldr是在0xd7a处,可以正常启动呀。

我是将grldr安装在0x22扇区
刚才又拿个img镜像试了一下,还是不能启动,不过提示不一样了:
Try (hd0,0): FAT16: No GRLDR
Try (hd0,1): invalid or null
Try (hd0,2): invalid or null
Try (hd0,3): invalid or null
No floppy
Cannot find GRLDR in all drives. Press Ctrl+Alt+Del to restart.

按提示好象我写入LBA34的是grldr.mbr一样,但我明明写入的是grldr.
我在LBA0写入楼主的代码就可以启动到g4d,换了gpt_or_mbr.bin就是上面的提示,试了两次都是这样。

==========================================================
我看你测试的位置是0xd7a处,我又同样写入到这个位置(LBA3450),测试结果跟前面是同样的:
楼主代码可以启动。  gpt_or_mbr.bin则报以上提示,象是引导了grldr.mbr一样。

==========================================================
想明白了,你的grldr是在文件系统内的,gpt_or_mbr.bin把扇区位置的grldr当成grldr.mbr来用,再找文件系统内的grldr,所以能启动成功。
我把grldr放在分区前,gpt_or_mbr.bin把它当成grldr.mbr来用,再找文件系统内的grldr,找不到就是上面的提示。后来我再放一份grldr到文件系统内,就可以启动了。
也就是说gpt_or_mbr.bin把扇区位置的grldr当成grldr.mbr来用了,文件系统根目录必须有grldr才能启动成功。
回复

使用道具 举报

发表于 2026-9-28 13:56:34 来自手机 | 显示全部楼层
其实grldr的前面代码就是grldr.mbr。它会搜索grldr的。搜索的是各分区根目录。
因为我的引导代码只安装了16扇区。如果全部安装了的话,应当会成功。
也就是说,还的预留几个字节位置,用来指示一次读多少扇区。

点评

因为你当时考虑的是只引导grldr.mbr,所以固定了16个扇区 现在发现有新的用法,而你的代码只要将原定的16个扇区变成可改参数以适配grldr的大小那样就可以达成同样的效果。 是不是这样理解? 你会更新吗?  详情 回复 发表于 2026-9-28 14:58
回复

使用道具 举报

发表于 2026-9-28 14:58:42 | 显示全部楼层
本帖最后由 hilsonma 于 2026-9-28 15:05 编辑
2011yaya2007777 发表于 2026-9-28 13:56
其实grldr的前面代码就是grldr.mbr。它会搜索grldr的。搜索的是各分区根目录。
因为我的引导代码只安装了16 ...

因为你当时考虑的是只引导grldr.mbr,所以固定了16个扇区
现在发现有新的用法,而你的代码只要将原定的读取16个扇区变成可改参数以适配grldr的大小那样就可以达成同样的引导。
是不是这样理解?
你会更新吗?
可以不因为这个小变化就更新g4d,只是在这里发一下更新的gpt_or_mbr.bin就好,这样就又多了一种选择。
回复

使用道具 举报

发表于 2026-9-28 15:07:45 | 显示全部楼层
试一试这个。
0x28处的4字节是文件逻辑扇区地址
0x2f处的2字节是文件扇区数
去掉文件名后面的txt


gpt.bin.txt

512 Bytes, 下载次数: 4, 下载积分: 无忧币 -2

点评

太好了,成功启动。 0x2f 2字节 1000 就是原先的引导grldr.mbr(0x0010个扇区),7702 就是引导grldr(0x0277个扇区) 两个取值都测试过都成功。 附件是安装批处理 gpt/mbr磁盘通用 批处理采用分区前隐藏写入glrdr,防  详情 回复 发表于 2026-9-28 15:58

评分

参与人数 1无忧币 +5 收起 理由
hilsonma + 5 很给力!

查看全部评分

回复

使用道具 举报

发表于 2026-9-28 15:58:57 | 显示全部楼层
本帖最后由 hilsonma 于 2026-10-2 01:40 编辑
2011yaya2007777 发表于 2026-9-28 15:07
试一试这个。
0x28处的4字节是文件逻辑扇区地址
0x2f处的2字节是文件扇区数

太好了,成功启动。
0x2f 2字节  1000 就是原先的引导grldr.mbr(0x0010个扇区),7702 就是引导grldr(0x0277个扇区)
两个取值都测试过都成功。

附件是安装批处理
gpt/mbr磁盘通用
批处理采用分区前隐藏写入glrdr,防止grldr被修改引起位置变化导致启动失败。
因此要求第一分区起始扇区不能小于665,以便装下grldr (批处理有检查并提示)
附件内的grldr是20260528的版本,大小是631扇区,批处理固定从34号扇区开始写grldr。
如果替换grldr要注意其大小是否能放入分区前未分配空间

安装了grldr扇区启动后就可以实现g4d启动了,具体启动配置请使用 menu.lst ,编辑好并放到某分区根目录

安装yaya版grldr扇区启动.7z (739.22 KB, 下载次数: 19)

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1|闽公网安备35020302032614号 )

GMT+8, 2026-10-9 07:00

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表