无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
12
返回列表 发新帖
楼主: 2011yaya2007777
打印 上一主题 下一主题

[原创] GRUB4DOS for UEFI

    [复制链接]
31#
发表于 2023-12-8 05:30:40 | 显示全部楼层
我再补充一段。

grub4dos 的开发者很重视 “互操作性”。在可能的情况下,grub4dos 尽力支持别的启动软件,除非那个启动软件的开发者千方百计设卡,不让用户能够经由 grub4dos 来启动他的软件。反过来也一样,grub4dos 的开发者为别的软件能够方便地启动 grub4dos 架设了桥梁。让用户能够直接用加载 ntldr 的方式来加载 grldr,这就是一个桥梁。别的软件的开发者(或用户)只要懂得如何加载 ntldr,那就懂得如何加载 grldr 了,完全不存在 “需要重新学习新知识” 的问题。另一座桥梁是 grub.exe,这是 linux 的 kernel 格式。任何能够加载 linux kernel 的启动软件,都可以加载 grub.exe,同样也是 “完全不需要学习新知识”。

就是说,grub4dos 作为第一启动,能够加载别的启动软件(那么被加载者也就是作为第二启动了)。这种情况是很安全的,因为 grub4dos 是 “纯绿色” 的软件,整个运行过程,不会对内存数据结构造成任何影响。别的软件在被 grub4dos 加载时,其内存和 CPU 的状态就跟主板通电自检之后的状态是一样的。只要这个软件自己没有 bug,那么 grub4dos 就不会给它增添一个 bug。例外情况有没有呢?当然有啊!否则,grub4dos 不就称王称霸了吗?例外情况,就是 grub4dos 被主板封杀了。这种封杀非常多!但大多数封杀,都已经被开发者巧妙躲过。新的封杀,如果有的话,是无法躲过了,因为开发者已经不把 BIOS 作为重点了。那就是说,随便封杀吧,反正你不封杀,也是个死,封杀,也是个死,都一样。BIOS 整体来说,总归是个死,总要被 EFI 取代。grub4dos 的被封杀,从用户的角度来看,可以认为 grub4dos “不可靠”。被封杀,当然属于 “不可靠” 的一个重要方面。也就是说,用户当然可以 “不信任” grub4dos。用户有这种自由。当 grub4dos “失效” 时,在另外一个 U 盘上,用户可以选择别的启动软件啊,对不对?

刚才说的是 grub4dos 作为第一启动。现在说说,grub4dos 作为第二启动。

grub4dos 确实可以作为第二启动。但是,你得保证,你的第一启动确实优秀。你的第一启动的责任就大了。相信你不会选择一个很烂的软件来作为第一启动,因为你不是傻子。但是,你有可能选择了一个不那么优秀的软件作为第一启动。“不那么优秀” 是不行的。你都把它放在 “第一启动” 的位置上了,它还敢 “不那么优秀” 吗?根本不敢!你的第一启动,就得为后续的任何启动过程 “负责”,包括为后续的 grub4dos 的启动负责,不可以给 grub4dos 带来莫名其妙的新的 bug。这正如 grub4dos 作为第一启动时,也必须为后续的整个启动过程负责一样:grub4dos 不可以给后续的 “第二启动” 软件带来任何一个新的 bug。【我们的想法要符合逻辑,要懂得换位思考,尽量做到公平。】

如果 “第一启动” 不小心,污染了 CPU 状态以及内存关键数据结构,那就会给 “第二启动” 带来麻烦。开发者 “自负” 是不行的,“自信” 也不要太过分。因为,假如没有封杀,你完全可以自负、自信。在有封杀的情况下,你哪来的自信?嗯??封杀者没有针对你?封杀只针对 grub4dos?你的想法太过于简单了。马路上有人挖了个深坑,任何车辆都有可能陷进去。grub4dos 早都吃亏了,已经知道必须绕道走了。而你,完全不了解这些情况,你不中枪谁中枪?你以为那还是一条可以正常通行的马路啊?这跟你的程序代码 “正确与否” 没有关系。你越是 “自信”、越是 “自负”,你出问题的可能性就越是大。如果我要狂妄一点,我可以这么说:“我用贞操担保,你开发启动软件是不行的,尤其是不要开发 BIOS 下的启动软件。”但是,做人要低调,不可以如此狂妄,如此教训别人。提出自己的看法,让别人参考,让别人自己决定取舍,这是合适的。



点评

互包容性,共赢模式!  详情 回复 发表于 2023-12-8 07:13
回复

使用道具 举报

32#
发表于 2024-3-21 04:38:30 | 显示全部楼层
hhh333 发表于 2024-3-20 18:19
想请教一个问题,以前我是用grldr.mbr来传统BIOS启动PE,但这个总是从启动盘的根下找文件,能不能从了目录 ...

你可以使用 wee,来取代 grldr.mbr。在 wee 的菜单中,你可以指定查找的位置。这样,就可以避免去修改和编译 grldr.mbr 了。

要编译 grldr.mbr,让它支持从子目录启动 grldr,这决不像看起来那么容易。是超高难度!基本可以认为是 “不可能做到” 的。这是因为,grldr.mbr 里面查找 grldr 的代码,是按照不同分区(卷)的格式来动态制作引导记录,然后再调用引导记录进行查找和引导的。每种卷的引导记录通常只有一个引导扇区(或少数几个扇区),已经经过了充分的优化,512 字节通常都用光了,很难再进行任何调整。即便你是汇编语言的超级高手,也难以修改了。这些引导扇区代码,都不包括引导子目录里面的 grldr。微软的引导扇区也不会去寻找子目录里面的 ntldr 或 bootmgr。如果要查找子目录,那么,单扇区的代码根本就不够,需要多扇区才行。那样的话,grldr.mbr 将会膨胀很多!所以,要想修改,工作量超级庞大,是不可想象的。wee 为何可以支持子目录?因为 wee 总共有 62 个扇区啊,空间大啊。任意多级子目录,wee 都支持。

wee 用于硬盘是没问题的,因为硬盘都支持 LBA。

wee 甚至也能用于优盘,因为现在的主板上的优盘 BIOS,差不多也都支持 LBA 了。如果你只是个人使用,碰上失败的概率不太大。在优盘上万一碰上失败,那就换成 fbinst 或者别的启动方式。

点评

哦,感谢解答,我这技术肯定搞不定,我看下wee  详情 回复 发表于 2024-3-21 10:58
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-24 06:49

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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