一个软件在功能上尽量可以去完善。但有时候,功能的完善与硬件兼容性发生冲突,迫使你放弃一部分功能,而保证兼容性。一切都是权衡,并无什么绝对的正确性在里面。看问题的角度不同,正确性的概念也不同。也并非所有的用户所提的要求,你都能满足。有可能你满足了一部分用户的要求,却带来了另外的问题。软件不是万能的,它能解决大部分问题,就是基本成功的。如果要以极限挑战的眼光去看问题,那就是企图让功能性达到丰满,这有可能以某种方式损坏兼容性。本问题所提到的 ud 被屏蔽,是我做的。因为grldr启动的时候,要检查是否从ud启动。如果是的,则把 ud 区当作当前 root 区,跳过其他启动步骤。把 ud 区当作当前默认 root 的好处是,ud 区靠前,能够最大限度地适应各种恶劣的 bios 环境。因为优先检查 ud,所以,当后续不是 ud 启动时(比如启动某个软盘映像时,或者启动硬盘的 Windows 时),就不能继续再把 ud 区当作当前 root 了。为了避免 ud 标志被后续的 boot 命令检测到,我在第一次检测 ud 之后,就抹掉了 ud 标志。此时 ud 已经被承认,但后续的启动,如果不是直接模拟 bios 而加载 ud 的第一扇区的话,则无法检测到 ud 标志了,因为这是故意屏蔽掉了。我这说的仍然是现状。至于说这样做是否合理,那我可不敢保证。那将由现在的开发者去权衡和决定。假如能够把这个问题做好,达到两全其美,那也是好事。假如不想动脑筋,不想太费劲去思考这些逻辑问题,那可以保持现状。一句话,看开发者的裁决而定。
过去了的事情,都是历史。历史是可以借鉴的,历史也是可以评判的。没有绝对的正确与错误,只有自己的权衡和倾向。这世界很大,自由度也很大。尤其是对于开源软件来说,自由度是相当大的。自己不满意的事情,可以有很多种处理办法,包括另起炉灶。当初我给 gnu grub 开发团队提交补丁,未被采纳,所以我就被迫另起炉灶。这是完全可以复制的,"另起炉灶" 永远是一个选项。任何人,只要他愿意,他都可以另起炉灶。