2011WYo 发表于 2019-2-7 20:20:51

exfat手动写入grldr.pbr,解决checksum

用了十余年grub4dos,感谢不点,yaya,顺道谢谢bootice的pauly,

现在u盘越来越大,exfat格式化很普遍。
想在一枚exfat盘上引导grldr,据说0.46a对exfat支持不错,用bootice写入grub4dos 0.46a的pbr、mbr均找不到grldr文件。
搜贴,在2017年6月yaya解决了128k簇大小的exfat分区不能识别文件的问题,帖子名——“请教GRUB4DOS-0.4.6a-2017-05-29 安装exfat错误”。
bootice最后一版是2016年,只能winhex装最新的grldr.mbr,8k大小,跳过分区表4*16字节,其余手动复制粘贴进去,测试成功。

因为不同计算机引导成功率问题,mbr习惯用usb-hdd+,后来想装grldr.pbr。
yaya推荐在dos下用bootlace.com安装,64位系统运行bootlace.com和bootlace64.com均提示16位程序不能运行。
翻墙找到一篇yaya的贴:
grldr.pbr 分布:
Offset Sector Partition type
-------------------------------------
0   1 FAT32
0x200 1 FAT12/16
0x400 2 EXT2/3/4
0x800 2 EXFAT
0xC00 4 NTFS

1.手动复制grldr.pbr从0x878到0xBFF的内容,粘贴到exfat分区0扇区0x78位置(Ctrl + B),bootice可以看见BPB参数在0x78之前,不用担心覆盖
2.用KLVolSNEdit修改卷序列号,其实序列号可以不变,仅利用它计算重写exfat的checksum(位于11扇区);分区12-23扇区是备份,KLVolSNEdit会自动复制0-11扇区








2011yaya2007777 发表于 2019-2-7 21:36:59

复制grldr_pbr后,从U盘启动一次,就会自动更新检查和。

wouldu 发表于 2019-2-7 21:58:18

楼主好人啊!
楼主辛苦了!

dehifir 发表于 2019-2-7 22:20:22

我用bootice写入引导,先设主引导NT6,再设分区引导grldr,每次都成功的,而且改了grldr,不需要其它文件,就这一个文件就可以引导光盘,引导bootmgr,或引导其它项目……

2011yaya2007777 发表于 2019-2-8 07:52:23

使用windows格式化U盘为exfat格式,默认每簇扇区数不是很大,而且可以设置。不知什么软件,格式化时默认128k。grub4dos早期版本不支持这么大的簇。现在已经修正。可能bootice内嵌的grub4dos没有更新。需要使用winhex或者类似工具复制。

xq8751 发表于 2019-2-8 10:36:25

楼主辛苦了!!!

yun2673436976 发表于 2019-3-29 22:14:04

"翻墙找到一篇yaya的贴"?看技术贴也要翻墙?难道你的意思是谷歌才能搜得到yaya的帖子,百度搜不到。

yun2673436976 发表于 2019-3-29 22:14:09

"翻墙找到一篇yaya的贴"?看技术贴也要翻墙?难道你的意思是谷歌才能搜得到yaya的帖子,百度搜不到。

yun2673436976 发表于 2019-3-29 22:14:09

"翻墙找到一篇yaya的贴"?看技术贴也要翻墙?难道你的意思是谷歌才能搜得到yaya的帖子,百度搜不到。

不点 发表于 2019-3-30 10:02:05

本帖最后由 不点 于 2019-3-30 10:06 编辑

2011yaya2007777 发表于 2019-2-8 07:52
使用windows格式化U盘为exfat格式,默认每簇扇区数不是很大,而且可以设置。不知什么软件,格式化时默认128 ...
请 yaya 留意我在下述帖子里贴出的 exFAT 的引导扇区结构说明:

最简单的 Linux 文件系统是哪个?
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=413352&page=2

摘录其中有关簇大小的描述:

exFAT Boot Sector


OffsetSizeDescriptionComments
108 (0x6C)1

BytesPerSectorShiftPower of 2. Minimum 9 (512 bytes per sector), maximum 12 (4096 bytes per sector)
109 (0x6D)
1SectorsPerCluster ShiftPower of 2. Minimum 0 (1 sector per cluster), maximum 25 – BytesPerSectorShift, so max cluster size is 32 MB

重点部分用红色醒目标出:簇大小最大可达(恐怖的) 32M!

2011yaya2007777 发表于 2019-3-30 19:25:49

本帖最后由 2011yaya2007777 于 2019-3-30 19:41 编辑

太恐怖了! 一次最少读一簇。如果每簇扇区数比较大,太占缓存了。
其实格式化时选择一下“每簇扇区数”,不要太大。没有选项的格式化软件是垃圾。
页: [1]
查看完整版本: exfat手动写入grldr.pbr,解决checksum