这是我的最终答案,它基于在
Ubuntu Wiki上的此列表中匹配关键词后找到的信息。我找到的是关于Ubuntu开发和规格的过时笔记(即:文字、文字、文字),所以花了我一些时间才得出这个答案。
哎呀,名字写错了。
首先,应该澄清引导加载程序的命名:
- 所有字母大写的名称指的是引导加载程序(例如GRUB、SYSLINUX)。
- 首字母大写的名称指的是项目名称或引导加载程序系列的几个或全部变体(例如Syslinux)。
- 特别地,“Syslinux”是一个包括“SYSLINUX”、“ISOLINUX”、“EXTLINUX”和“PXELINUX”的引导加载程序集合。
根据
命名规范,这个问题实际上是在谈论“ISOLINUX”作为“El Torito no-emulation”引导程序,而不是“SYSLINUX”。也许后者在过去被与前者互换使用。无论如何,不要紧。
简要历史
2005年:Ubuntu CD引导加载器选择了ISOLINUX,而不是GRUB。
GRUB曾被提议作为可能的替代引导加载器,但在Warty live CD中尝试时,我们发现与使用ISOLINUX的安装CD相比,在可引导性方面存在显著退步。我们认为坚持基于ISOLINUX的解决方案是长期支持版本的最合适方法。
-- 来自CdBootloader - Ubuntu Wiki
2006年:添加了gfxboot;这支持了2010年引用的信息。
在Dapper中,我们为我们的amd64和i386 CD映像添加了gfxboot,为用户在这些架构上启动Ubuntu CD映像时提供了友好的图形化引导菜单作为他们看到的第一件事[...] -- 来自
PortableGfxboot - Ubuntu Wiki
2009年:ISOLINUX(被称为SYSLINUX)仍然用于启动Ubuntu CD。
Ubuntu Live CD仍然使用SYSLINUX进行引导,它不包括以图形模式启动内核的支持。这意味着Live CD会显示一个图形化的引导菜单,然后切换回文本模式启动内核,然后通常会在稍后切换回图形模式。因此,与正常安装的系统相比,Live CD在启动时会出现更多闪烁。-- 来自
BootGraphicsArchitecture - Ubuntu Wiki
2010年:已经使用了ISOLINUX,但需要GRUB 2来支持UEFI。
当前的Ubuntu光盘使用ISOLINUX,并使用SuSE的gfxboot扩展来实现图形菜单。
这被证明是相当困难的维护工作,因为在Ubuntu中只有一个人了解与主题相关的代码[...]。
由于GRUB 2最近在上游添加了图形菜单支持,转向使用它有可能减轻我们的维护负担。似乎我们无论如何都需要使用GRUB 2来支持EFI,而在我们的光盘上配置两个不同的引导加载程序是不可取的。
根据foundations-m-grub2-boot-framebuffer,我们需要研究一下我们是否能够支持EFI中的图形启动菜单。GRUB对UGA和GOP图形有一定程度的支持。
这需要使用GRUB进行光盘引导,或者至少具备最基本的配置来支持它[...]。
发现的差异或未发现的差异
通过简要的历史,我们现在了解到:
由于当时(2005年)GRUB存在回归问题,因此ISOLINUX被优先选择。
尽管ISOLINUX不支持以图形模式启动内核,在引导过程中会出现闪烁问题(2009年),但仍然优先选择ISOLINUX。
ISOLINUX与gfxboot一起使用,提供了图形菜单,而当时的GRUB没有实现或不可能实现这一功能(2010年)。
自Maverick版本(2010年后)开始,GRUB被添加以支持UEFI启动。
然后,我意识到Ubuntu Live CD包含两个引导加载程序并不是因为GRUB和SYSLINUX之间的差异。
根本原因
从我的阅读中,这些支持事实实际上暗示了以下内容:
Ubuntu的Live CD一直使用特定的引导加载程序,以提供图形菜单和主题,并平滑地显示启动画面。在这种情况下,使用的是SYSLINUX(准确地说是ISOLINUX)。
当UEFI系统越来越普遍时,只有Ubuntu在其Live CD中包含了GRUB(准确地说是GRUB 2),以支持UEFI引导。
总之,我相信这个回答解答了我一个多年来的问题,这个答案终于让我的好奇心得到了满足。
简而言之,GRUB和ISOLINUX都被用于Ubuntu的Live CD,各自有其独特的原因;两者都被包含在Live CD中,以提供更好的启动体验和硬件支持。