无忧启动论坛

标题: G4D不支持exFAT吗?[问题似未解决:恢复MBR文件] [打印本页]

作者: xianglang    时间: 2021-9-4 12:53
标题: G4D不支持exFAT吗?[问题似未解决:恢复MBR文件]
本帖最后由 xianglang 于 2021-9-5 16:33 编辑

U盘上分了两个分区,一个 exFAT 分区和一个 FAT32 EFI 分区,最新版的 G4D、G4E 等相关文件放在 EFI 分区。G4E 启动正常,G4D 启动时出现 TRY (hd0,0) exFAT 提示后,就没有下文了,一些电脑上还会同时出现嘀嘀的报警声。

这是 G4D 不支持 exFAT 格式,还是我的 U 盘制作方式出现了问题?如果是 G4D 不支持的话,YAYA能否加上 exFAT 支持?

2021.09.05 更新:真的是 BOOTICE 自带的 MBR 文件问题!刚才用 BOOTICE 恢复了一下主引导的 GRLDR.MBR 为最新版,问题解决了。看来 BOOTICE 优先使用同目录下的 MBR 文件,并不可靠。

谢谢各位的解决思路。

再试时进入命令行查看了一下文件情况,发觉 G4D 在用 BOOTICE 恢复主引导 MBR 之后,虽然我在 GRLDR 第二行指定了 configfile /grub/menu.lst,但是它引导的却不是 启动 U 盘里 EFI 分区里的  /grub/menu.lst 菜单,而是第一硬盘里的。而 BOOTICE 写主引导后不恢复,仍然是同样只出现 TRY (hd0,0) EXFAT 情况。再次尝试后确认,恢复 MBR 后,查找的引导 GRLDR 文件,是放在 SSD 硬盘里的,而不是我启动 U 盘里的。

另外,2021.07.28后的 G4D 使用外部命令 SLIC 出错:Invalid or unsupported executable format,但是 2021.06.02 前的正常。


作者: wintoflash    时间: 2021-9-4 13:10
TRY (hd0,0) exFAT

这个应该是mbr里面的提示。你是怎么写mbr的?
作者: xianglang    时间: 2021-9-4 15:00
wintoflash 发表于 2021-9-4 13:10
这个应该是mbr里面的提示。你是怎么写mbr的?

BOOTICE 写的,硬盘主引导和EFI分区,都选的是G4D 0.46a。
作者: 不点    时间: 2021-9-4 18:05
印象中,yaya 确实让 grub4dos 支持 exfat 了。既然启动时有 exfat 字样,那就说明支持了。但可能有 bug,导致死了。

不过,grub4dos 的 bios 版本是不支持 EFI 的,对 gpt 的支持也不好。你怎么用 EFI 的分区?所以,我想,问题大概在这里,而这可能就不属于 grub4dos 的 bug 了。
作者: 不点    时间: 2021-9-4 18:09
还有一个可能,你的 bios 不支持访问较大的扇区号,而你的启动代码很可能位于靠后的扇区,比如位于靠后的那个盘上,结果,是 bios 投降了,所以死了。这都是常见问题,不属于 grub4dos 的 bug。
作者: 2011yaya2007777    时间: 2021-9-4 20:11
启动时按空格键试一试。如果不行,启动时按其他键再试一试。是卡死了,还是有什么提示?
作者: 2011whp    时间: 2021-9-5 12:49
本帖最后由 2011whp 于 2021-9-5 13:07 编辑

g4d各情况试了下:   判断是 bootice写入的grub4dos引导扇区代码有可能不支持exfat,g4d 是可以读exfat的

1.   ntfs + fat 的mbr双分区,
      mbr:bootice写入grub4dos引导   启动正常

2.   exfat + fat 的mbr双分区,
       ★微软mbr→微软pbr→ grldr改名为bootmgr    正常启动  可以ls exfat分区的文件(grldr可以放在exfat分区)
       mbr:bootice写入grub4dos引导   不正常,如下:



用的是bootice1.3.4

作者: blank007    时间: 2021-9-5 13:17
2011whp 发表于 2021-9-5 12:49
g4d各情况试了下:   判断是 bootice写入的grub4dos引导扇区代码有可能不支持exfat,g4d 是可以读exfat的
...

用 GrubInst 1.4 试试。
grubinst.exe 是实际执行程序。grbusetup.exe 是 GUI 程序,是我把原来的程序胡乱汉化、改名、压缩的。

GrubInst.exe

77.66 KB, 下载次数: 8, 下载积分: 无忧币 -2

GrubSetup.exe

115.24 KB, 下载次数: 14, 下载积分: 无忧币 -2


作者: 2011whp    时间: 2021-9-5 13:23
blank007 发表于 2021-9-5 13:17
用 GrubInst 1.4 试试。
grubinst.exe 是实际执行程序。grbusetup.exe 是 GUI 程序,是我把原来的程序胡 ...

最简单的方法  :  用bootice 恢复g4d发布的   压缩包内的 grldr.mbr 到 mbr

(可能bootice自带的  引导代码 老旧了)
作者: blank007    时间: 2021-9-5 13:27
2011whp 发表于 2021-9-5 13:23
最简单的方法  :  用bootice 恢复g4d发布的   压缩包内的 grldr.mbr 到 mbr

(可能bootice自带的  引 ...

用 Grubinst 主要是为了个性化给 grldr 改名。比如,改为 BIOS.bin。再用grbumenu 修改内置菜单。
作者: 2011whp    时间: 2021-9-5 13:34
本帖最后由 2011whp 于 2021-9-5 13:41 编辑
blank007 发表于 2021-9-5 13:27
用 Grubinst 主要是为了个性化给 grldr 改名。比如,改为 BIOS.bin。再用grbumenu 修改内置菜单。

Grubinst.exe  能用最新的 grldr.mbr  么?(能改名grldr,有一定方便性)

楼主的问题出在   bootice自带 引导代码 老旧,
@2011yaya2007777  不知道 能不能   二进制编辑 grldr.mbr  改名 要查找的 grldr

作者: blank007    时间: 2021-9-5 13:41
2011whp 发表于 2021-9-5 13:34
Grubinst.exe  能用最新的 grldr.mbr  么?(能改名grldr,有一定方便性)

楼主的问题出在   bootice ...

貌似不能用最新的 GRLDR.MBR,但grubinst的mbr也比较新。

我把包传给你,你有兴趣的话,请自己试试吧。

注意:grub\grub\下的 grubinst.exe 是 1.3 版的,用于改名。grub\setup\下的 grubinst.exe 是 1.4 版的,主要用于安装 grub4dos .

y一般,我把引导记录安装在分区引导记录的位置。mbr一般用硬盘自己默认的,优盘上一般用ULTRAISO写为 usb zip+ 或 usb zip+ v2 的。

Grub.rar

369.03 KB, 下载次数: 9, 下载积分: 无忧币 -2


作者: 2011whp    时间: 2021-9-5 13:56
blank007 发表于 2021-9-5 13:41
貌似不能用最新的 GRLDR.MBR,但grubinst的mbr也比较新。

我把包传给你,你有兴趣的话,请自己试试吧 ...

喜欢 扇区小工具 bootice(软碟通,只用 ctlr+alt+i)

主题方面  setmenu   现在也可以的 http://bbs.wuyou.net/forum.php?m ... &fromuid=413782




作者: xianglang    时间: 2021-9-5 13:57
不点 发表于 2021-9-4 18:09
还有一个可能,你的 bios 不支持访问较大的扇区号,而你的启动代码很可能位于靠后的扇区,比如位于靠后的那 ...

BIOS 应该支持大扇区的,非 EXFAT 时就一点问题都没有。

EFI 分区其实也就是 FAT32 格式的。G4D 是在传统 BIOS 下使用的啊,G4E 在 EFI 下使用,并不冲突的。

作者: xianglang    时间: 2021-9-5 13:59
2011yaya2007777 发表于 2021-9-4 20:11
启动时按空格键试一试。如果不行,启动时按其他键再试一试。是卡死了,还是有什么提示?

按任何键都没有反应,而且再也没有任何其他提示了,只能按电脑关机键关机——就算是按电脑的重启键,也是没有反应的。
作者: xianglang    时间: 2021-9-5 14:01
2011whp 发表于 2021-9-5 13:23
最简单的方法  :  用bootice 恢复g4d发布的   压缩包内的 grldr.mbr 到 mbr

(可能bootice自带的  引 ...

我的 BOOTICE 同目录下有最新的 GRLDR.MBR 文件,印象中 BOOTICE 是优先使用同目录下的最新 MBR 文件的。

作者: 2011whp    时间: 2021-9-5 14:10
本帖最后由 2011whp 于 2021-9-5 14:13 编辑

跟着新版grldr.mbr   有问题,yaya 可以 改源代码




作者: xianglang    时间: 2021-9-5 14:14
真的是 BOOTICE 自带的 MBR 文件问题!刚才用 BOOTICE 恢复了一下主引导的 GRLDR.MBR 为最新版,问题解决了。看来 BOOTICE 优先使用同目录下的 MBR 文件,并不可靠。  谢谢各位的解决思路。
作者: xianglang    时间: 2021-9-5 14:17
2011whp 发表于 2021-9-5 14:10
跟着新版grldr.mbr   有问题,yaya 可以 改源代码

奇怪,我刚才用 x32 版的 BOOTICE 恢复了主引导的 GRLDR.MBR 为 2021-08-13 的,问题居然解决了。

作者: xianglang    时间: 2021-9-5 15:12
本帖最后由 xianglang 于 2021-9-5 16:33 编辑

再试时进入命令行查看了一下文件情况,发觉 G4D 在用 BOOTICE 恢复主引导 MBR 之后,虽然我在 GRLDR 第二行指定了 configfile /grub/menu.lst,但是它引导的却不是 启动 U 盘里 EFI 分区里的 /grub/menu.lst 菜单,而是第一硬盘里的。而 BOOTICE 写主引导后不恢复,仍然是同样只出现 TRY (hd0,0) EXFAT 情况。再次尝试后确认,恢复 MBR 后,查找的引导 GRLDR 文件,是放在 SSD 硬盘里的,而不是我启动 U 盘里的。

另外,2021.07.28后的 G4D 使用外部命令 SLIC 出错:Invalid or unsupported executable format,但是 2021.06.02 前的正常。

作者: 2011whp    时间: 2021-9-6 18:31
xianglang 发表于 2021-9-5 15:12
再试时进入命令行查看了一下文件情况,发觉 G4D 在用 BOOTICE 恢复主引导 MBR 之后,虽然我在 GRLDR 第二行 ...

find 是个循环查找,--set-root  用查找到的第一个,随机性的

办法:
  1.   不用 find查找,直接configfile /efi/grub*.lst
  2.   find 查找一个 标志性的 文件,定位root     比如: 8554697.txt
作者: wintoflash    时间: 2021-9-6 18:45
xianglang 发表于 2021-9-5 15:12
再试时进入命令行查看了一下文件情况,发觉 G4D 在用 BOOTICE 恢复主引导 MBR 之后,虽然我在 GRLDR 第二行 ...


前段时间grub4dos更新外部命令的格式了。

作者: 2011yaya2007777    时间: 2021-9-6 19:19
是更改了g4e的外部命令格式,不应当影响g4d呀。我分析了6月2日以后的g4d补丁,没有发现问题。
作者: xianglang    时间: 2021-9-7 12:50
本帖最后由 xianglang 于 2021-9-7 12:56 编辑
2011whp 发表于 2021-9-6 18:31
find 是个循环查找,--set-root  用查找到的第一个,随机性的

办法:

我没有使用查找命令,在 GRLDR 内置菜单中,第一行 PXE 屏蔽了,第二行就是直接 configfile /grub/menu.lst 的,结果出现菜单后进命令行 root 查看,变成了 SSD 硬盘而不是启动的 U 盘。

作者: xianglang    时间: 2021-9-7 12:55
2011yaya2007777 发表于 2021-9-6 19:19
是更改了g4e的外部命令格式,不应当影响g4d呀。我分析了6月2日以后的g4d补丁,没有发现问题。

这个我也不清楚,就是因为我记得好象改过外部命令格式,因此才在 2021-06-02 前后开始,之前的没有问题,但是之后(我试的是已下载保存 2021-07-28、2021-08-13)就出现那样的错误了。会不会是换了编译环境后导致的错误,印象中你们好象说过换过编译版本?
作者: blank007    时间: 2021-9-7 13:10
xianglang 发表于 2021-9-7 12:55
这个我也不清楚,就是因为我记得好象改过外部命令格式,因此才在 2021-06-02 前后开始,之前的没有问题, ...

内置菜单第一行加个 root ()  试试看
作者: 2011yaya2007777    时间: 2021-9-7 16:28

我没有使用查找命令,在 GRLDR 内置菜单中,第一行 PXE 屏蔽了,第二行就是直接 configfile /grub/menu.lst 的,结果出现菜单后进命令行 root 查看,变成了 SSD 硬盘而不是启动的 U 盘。


看这句话的意思,你没有使用官网的文件(grldr),而是修改了其中的内置菜单。
作者: xianglang    时间: 2021-9-7 16:49
2011yaya2007777 发表于 2021-9-7 16:28
看这句话的意思,你没有使用官网的文件(grldr),而是修改了其中的内置菜单。

就是用的官网下载的 GRLDR 文件,再自己用 GRLDR_Editer.EXE 修改的内置菜单啊。刚才试了下使用官网下载的没有修改过的 GRLDR 文件内置菜单,一样的问题,没有任何改变。

但是我使用 WEE63 作为主引导,寻找 GRLDR 引导,一切正常——由此判断,似乎是 G4D 的 GRLDR.MBR 的问题,而不应该是 GRLDR 本身。

作者: 2011yaya2007777    时间: 2021-9-7 17:17
前面网友已经给出答案。bootice安装的grldr.mbr比较旧,需要替换新的。
作者: 2011whp    时间: 2021-9-7 18:22
本帖最后由 2011whp 于 2021-9-8 12:17 编辑

楼主的意思是:
       u盘mbr为 2021-8-13版的 grldr.mbr   → u盘分区 2021-8-13版的grldr  → 内置菜单
         楼主电脑 内的 硬盘 上,还布置着一个 g4d,  

        这种情况下从U盘 启动,内置菜单 没有find重定位root分区的情况,默认的root分区,不准确(不是grldr所在的分区:U盘分区)

       原因 :可能是 grldr.mbr 压根就没有启动你U盘上的 grldr,而是你硬盘上的grldr
              (grldr.mbr是在所有的存储上找/grldr, 问题可能就是这个查找过程, 可能新版grldr.mbr由于exfat的影响,不是优先找它所在的 U盘的分区/grldr  )
             也许是 新版grldr.mbr有问题,还是用户侧解决吧
         

bios版 的,还是用户侧解决:
        1.  简单的:微软mbr→微软pbr→grldr改名bootmgr
        2.  你用的wee
        3.  find  一个标识文件,来重新定位root
        4.   去掉,exfat的影响


同意 不点 的观点,也许与主板的bios的中断接口有关(exfat,bios支持不?是不是grldr.mbr加上的 ,加exfat驱动时,磁盘序乱了)



作者: 2011whp    时间: 2021-9-7 20:02
试下  用微软的mbr,激活分区 用下面的pbr
1.   bootice的pbr
2.   用新版的  grub.pbr   
作者: xianglang    时间: 2021-9-8 14:37
刚才又用 QEMU 启动测试器试了一下,用 BOOTICE 写入而不恢复 GRLDR.MBR 的话,出现 TRY (hd0,0):EXFAT 后,多跳出了一个数字13。恢复 GRLDR.MBR 后,出现 TRY (hd0,0):EXFAT 列磁盘四个主分区后,提示找不到 GRLDR 文件,不知道为什么会无视了 ESP 分区根目录下的 GRLDR 文件。将 GRLDR 复制到 EXFAT 分区根目录下,成功启动了。

对这个 128GB 的 U 盘重新进行了分区,ESP FAT32 分区放在最前面,给了 1GB,其余的空间分为一个 EXFAT 分区,然后再将相应文件复制到 ESP 分区,结果直接 BOOTICE 写主引导和分区引导为 G4D 也一样成功了。如果说是 G4D 不支持过大硬盘,但是为什么同样是 480GB 的 SSD 硬盘、4TB 的西数 HDD 硬盘,ESP FAT32 分区都放在最后,而其余分区是 NTFS 的却正常呢?


作者: 2011yaya2007777    时间: 2021-9-8 15:18
GRLDR.MBR首先搜索hd0磁盘的0分区,之后搜索1分区,再搜索2分区,.....;然后搜索hd1磁盘的0分区,之后搜索1分区,再搜索2分区,......。          现在终于明白了,为什么搜索exFAT分区报告找不到grldr,因为这个分区就根本没有,而是在其他分区。
作者: xianglang    时间: 2021-9-8 15:52
2011yaya2007777 发表于 2021-9-8 15:18
GRLDR.MBR首先搜索hd0磁盘的0分区,之后搜索1分区,再搜索2分区,.....;然后搜索hd1磁盘的0分区,之后搜索1 ...

第二个分区即 ESP FAT32 分区是有 GRLDR 文件的啊,但是 GRLDR.MBR 将它无视了——第一分区的 EXFAT搜索不到,它应该接着搜索同一磁盘的第二分区即ESP分区的,但是结果却无视了,这才是最令我不解的。而 BOOTICE 安装主引导后,它是在搜索 EXFAT 分区时应该是卡死了;而恢复 GRLDR.MBR 后,它搜索到了 GRLDR 也引导成功了,但是如果这 EXFAT 分区没找到,它就无视了第二分区的。


作者: 2011yaya2007777    时间: 2021-9-8 17:13
Windows10的某个版本之后,才认识U盘的第二分区。至于主板启动芯片认识不认识,不确定。你可以启动时狂按c键,进入命令行,执行find,执行vol看看。
作者: 2011whp    时间: 2021-9-8 19:09
本帖最后由 2011whp 于 2021-9-9 18:09 编辑

经试验:

    mbr为bootice的nt6 → 激活的exfat分区(装 bootice的 grub4dos 分区引导)      可行
    mbr为bootice的nt6 → 激活的fat32分区(装 bootice的 grub4dos 分区引导)      可行

这样不存在,分区错乱问题


总之:现在 传统bios ,解决问题,即可,用bootice(话说:离了bootice 真不会操作引导扇区)

作者: xianglang    时间: 2021-9-9 12:16
2011whp 发表于 2021-9-8 19:09
经试验:

    mbr为bootice的nt6 → 激活的exfat分区(装 bootice的 grub4dos 分区引导)      可行

传统BIOS毕竟过时了,YAYA有精力可以解决一下,没精力也就不必纠结了,毕竟也有其他变通办法去解决。

同感,对于 BOOTICE 真的是离不开了,没有它很多事情都不是那么方便。

作者: 求道者    时间: 2021-9-14 17:54
本帖最后由 求道者 于 2021-9-14 18:00 编辑

怕不是BOOTICE编译的mbr问题,旧版的wee正常用,新版的不行,以前就遇到过,然后我找了个十年前的Ubuntu容器,用的gcc4.x,才编译了wee,然后貌似可以正常用了,和不点瞎折腾了一段时间用clang和gcc新版编译wee,clang编译g4D更折腾。似乎是gcc的汇编编译代码大改过。然后就放弃了。
大体上是非常旧的某个gcc版本编译wee,会往二进制文件里掺入垃圾字节,然后引导就会出问题,这个问题在后来的gcc版本里得到了解决。
非要说的话,现在的g4d和wee所用的gcc版本,在社区都不再推荐使用了。
老版本的gcc编译出什么鬼东西都不奇怪,毕竟社区说“这些版本都过于不成熟了。”
新版gcc应该还行,grub2貌似一直用新gcc编译。
移植g4d到新版gcc,代价可能比移植g4d的特性到grub2模块的代价还高。
毕竟grub2都迭代很久了,这些优化福利也吃不到。




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3