这个问题与我的发现有关,即 Ubuntu 及其衍生产品在桌面版本的ISO 映像上同时使用SYSLINUX和GRUB引导加载程序。
当从32 位 ISO 映像启动时,据说SYSLINUX处理启动过程(显示漂亮的闪屏,带有进度点动画的启动)。
但是,从启动时的64位ISO映像,GRUB来代替(黑色和白色屏幕,清楚地显示GNU GRUB version...在屏幕上的顶部)。
因此,重新表述我的问题,使 Ubuntu 在其 ISO 映像上使用 GRUB 和 SYSLINUX的区别是什么?为什么不直接使用其中之一呢?
为了澄清
由于我缺乏说明和硬件可用性,这个问题在某种程度上令人困惑。我已添加此答案(或向下滚动)以更好地解释 64 位 ISO 映像。
什么答案不是
下面的评论线程已经给出了一些想法,但我应该在这里说清楚。答案不是因为任何一个都正确支持 EFI。这个问题旨在找出更多根本原因,而不仅仅是 EFI 支持。
比如说,如果要以其他方式问这个问题,即“为什么在 ISO 映像中同时使用 GRUB 和 SYSLINUX?” 那么这可能会给出这样的答案,“包含 GRUB 以支持支持 EFI 的系统,而 SYSLINUX 始终包含在内并且仅适用于 BIOS 系统”——这不是我的意图。
我必须承认 EFI 支持可能是答案的一部分。
但是,我觉得它不应该是答案中的唯一内容。肯定不仅仅是 EFI 支持,这使 Ubuntu 在其 ISO 映像中包含两个引导加载程序,是吗?或者,EFI 支持真的是唯一的区别吗?如果有的话,请帮我回答这个问题。
小智 20
这是我的最终答案,它基于通过在 Ubuntu Wiki 上的此列表中的2000 多页内匹配关键字找到的信息。我发现的是 Ubuntu 开发和规范的过时笔记(阅读:单词,单词,单词),所以我花了一些时间才找到这个答案。
操作,错误的命名
首先,应澄清引导加载程序的命名:
所有字母大写的名称指的是引导加载程序(例如 GRUB、SYSLINUX)
首字母大写的名称是指项目名称或引导加载程序系列的几个或所有变体(例如 Syslinux)
特别是,“Syslinux”是一组引导加载程序,包括“SYSLINUX”、“ISOLINUX”、“EXTLINUX”和“PXELINUX”
按照命名约定,问题实际上是指“El Torito no-emulation”引导加载程序的“ISOLINUX”,而不是“SYSLINUX”。也许后者在过去可以与前者互换使用。没关系。
历史简介
2005 年:选择 ISOLINUX 作为 Ubuntu CD 引导加载程序,而不是 GRUB。
之前曾建议使用 GRUB 作为可能的替代引导加载程序,但在 Warty live CD 中尝试了这种方法,在那里我们观察到可引导性与使用 ISOLINUX 的安装 CD 的显着回归。我们认为坚持使用基于 ISOLINUX 的解决方案是最适合长期支持版本的方法。
2006 年:添加了 gfxboot;这支持了 2010 年引用的信息。
在 Dapper 中,我们将 gfxboot 添加到我们的 amd64 和 i386 CD 映像中,提供了一个友好的图形引导菜单,这是用户在这些架构上启动 Ubuntu CD 映像时首先看到的 [...]
2009 年:ISOLINUX(记为 SYSLINUX)仍然用于引导 Ubuntu CD。
Ubuntu live CD 仍然使用 SYSLINUX 启动,它不支持在图形模式下启动内核。这意味着 live CD 显示图形引导菜单,然后切换回文本模式以启动内核,然后通常会切换回图形模式。因此,在启动时,Live CD 目前比正常安装的系统闪烁得更多。
2010:已使用 ISOLINUX,但 UEFI 支持需要 GRUB 2。
当前的 Ubuntu CD 使用 ISOLINUX,并使用来自 SuSE 的 gfxboot 扩展来实现图形菜单。
事实证明,这相当难以维护,在 Ubuntu 中只有一个人了解所涉及的主题代码 [...]
[因为] GRUB 2 最近在上游添加了图形菜单支持,移动到它有可能减少我们的维护负载。似乎我们无论如何都需要使用 GRUB 2 来支持 EFI,并且必须在我们的 CD 上配置两个不同的引导加载程序是不可取的。
-- 来自FoundationsTeam/Specs/MaverickCDBoot - Ubuntu Wiki
根据foundations-m-grub2-boot-framebuffer,我们需要研究在EFI中支持图形启动菜单的能力。GRUB 对 UGA 和 GOP 图形有一定程度的支持。
这需要使用 GRUB 进行 CD 引导,或者至少具有最低限度的配置来支持它 [...]
-- 来自FoundationsTeam/Specs/MaverickUefiSupport - Ubuntu Wiki
是否发现差异
根据简要的历史,我们现在明白:
ISOLINUX 是首选,因为当时 GRUB 有回归(2005 年)
尽管缺乏对在引导转换期间导致闪烁的图形模式启动内核的支持,ISOLINUX 仍然是首选(2009 年)
ISOLINUX 已与 gfxboot 一起使用以提供图形菜单,当时 GRUB 未实现或无法实现(2010)
自 Maverick(2010 年之后)以来,后来添加了 GRUB 以使用 UEFI 支持引导
然后,我意识到不是GRUB 和 SYSLINUX 之间的区别使 Ubuntu live CD 包含两个引导加载程序。
根本原因
从我的阅读来看,这些支持事实实际上暗示了:
Ubuntu live CD 一直使用特定的引导加载程序,它更好地支持提供图形菜单和主题,并平滑过渡以显示引导启动画面。在这种情况下,SYSLINUX(准确地说是 ISOLINUX)。
当 UEFI 系统变得越来越普遍时,只有 Ubuntu 在 Ubuntu live CD 中包含了 GRUB(准确地说是 GRUB 2)以通过 UEFI 支持启动。
最重要的是,我相信这回答了我一年多以来的问题,这个答案终于让我的好奇心得到了休息。
TL;DR GRUB 和 ISOLINUX 都用于 Ubuntu live CD 中,原因是独有的;两者都包含在 Live CD 中,以获得更好的启动体验和硬件支持。
小智 6
这是我的初步答案,它使我的问题的某些部分更好地理解,但仍然没有回答问题本身。
一些澄清如下:
/boot/grub和/isolinux目录来确认的)启动体验:我写了“EFI-capable”,因为即使我的机器已经实现了 EFI,我已经关闭了“安全启动”功能(1,2),以便从 Live USB 启动 Ubuntu(在我的情况下为 Xubuntu 14.04)。
而安全启动开启时,是Xubuntu 14.04 64位版本能够启动后,它已被安装到本地磁盘(非实时USB)。
Xubuntu 16.04 64 位版本能够在启用安全启动的情况下启动。
尝试过的方法:我没有尝试使用物理 DVD 介质并从外部光驱启动,而是使用虚拟化软件(在我的情况下为 VirtualBox 4.3)来证明上述情况。
VirtualBox 4.3 已经有在 EFI 和 BIOS 系统之间切换的选项,可以在Machine > Settings > System > Motherboard - Extended features: Enable EFI (special OSes only) 下找到。默认情况下,该选项未选中 (3)。
必须使用 64 位版本的 VirtualBox 创建虚拟机,并在 64 位主机系统上运行。在我的以下尝试中使用了 Xubuntu 14.04 64 位 ISO 映像。
第一次尝试:我使用默认设置运行 ISO 映像(假设是 BIOS 系统)。虚拟机将显示紫色背景,底部带有图标。这是SYSLINUX。
第二次尝试:我关闭机器并进入设置,选中选项 (3) 以启用 EFI。使用相同的 ISO 映像,我再次启动了虚拟机。这一次,它花了一些时间才显示GNU GRUB version...为单色文本。这是GRUB。
在这两次尝试中,继续引导过程将在引导时显示进度点动画。
Ubuntu Wiki 上的这一部分页面包含描述上述两种情况的屏幕截图。
免责声明:此答案旨在阐明引导体验和尝试过的方法。但是,这不是我问题的最终答案。如果我设法自我回答问题,最终答案将单独发布。
| 归档时间: |
|
| 查看次数: |
27892 次 |
| 最近记录: |