我在 Launchpad 中找到了 11.04 和 10.10 的源代码,但我不知道如何安装或编译它。
这个问题与我的发现有关,即 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 …
我阅读了一些关于这个主题的其他问题,他们都指向了 Grub2 社区文档和从安装盘安装 grub 配置。我在文档方面遇到了一些麻烦,所以这就是我所在的位置。这可能是完整的 PEBKAC。
我有两个来宾坐在 KVM 下虚拟化的 Ubuntu 10.04 服务器上,他们最初都运行 10.04。我使用“do-release-upgrade”在两个盒子上都没有问题地更新到 10.10,重新启动,然后在两个盒子上运行“do-release-upgrade”更新到 11.04。匆忙中,我忽略了有关缺少 grub 配置的错误。当我重新启动来宾时,自然会看到一个 grub 提示。发出“引导”会产生“错误:未加载内核”。
这是根分区的 ls 输出:

在遵循手动引导指南时,我无法使用“SS928-root”或“hda0,1”作为根文件系统直接获得选项。大多数情况下都会出现“找不到文件”错误。
在这两个文件系统上发出“ls”显示 vmlinuz 和 initrd.img 的几个选项。如果有帮助的话,这些来宾正在使用 LVM。
编辑
我已经走得更远了。以下命令序列:

产生以下屏幕(滚动浏览大量文本后):

我正在尝试在我的新笔记本电脑上安装 Ubuntu 13.04 和 Windows 8(双启动)。
由于磁盘上已经有一个 EFI 分区,我没有创建另一个分区(如:https : //help.ubuntu.com/community/UEFI#Creating_an_EFI_partition 中所建议的),我选择了 /dev/sda3 作为引导加载程序安装。安装后,ubuntu 工作正常,但我无法启动到 Windows 8(当我在 Grub 屏幕中选择 win8 时,它给出了一条错误消息)。我使用恢复将计算机恢复到出厂状态,现在尝试再次安装 ubuntu。
我应该为“引导加载程序安装设备”选择哪个分区?感谢您的回答。
硬盘分区如下:

所以,
我的分区表如下所示:
/dev/sda
/dev/sda1 16708MB (Windows Recovery Environment (loader))
/dev/sda2 367MB (Windows 7 (Loader))
/dev/sda3 368203MB (Windows 7 Files)
/dev/sda5 348000MB (Where I am mounting /)
/dev/sda6 16874MB (Swap)
Run Code Online (Sandbox Code Playgroud)
所以,看看那里已经有两个加载程序,Ubuntu 给了我安装 grub 的选项:
/dev/sda
/dev/sda1
/dev/sda2
/dev/sda3
/dev/sda5
Run Code Online (Sandbox Code Playgroud)
现在我不确定应该在哪里安装 grub,在根目录中,在 Windows 7 加载程序的顶部,还是在 ubuntu / 分区中?
我尝试升级到 12.04 失败了,所以我烧了一张 12.04 CD,并要求进行完整安装,摆脱所有以前的操作系统(我有 Windows 以及 11.10)。一切似乎都很好,直到最后它说安装 GRUB 失败。我尝试选择不同的分区进行尝试,结果相同。我可以在不安装 GRUB 的情况下继续,但它告诉我必须手动安装引导加载程序。长时间的谷歌会议未能提出任何我能理解的说明来做到这一点。帮助。
有什么办法可以阻止 Ubuntu 覆盖引导加载程序?
它发生在更新(我想)系统内核之后。我想继续使用我的其他 linux 发行版引导加载程序,而不必每次 ubuntu 更改某个更新时手动更改它。
谢谢。
如果我在 Nexus 7 上安装 Ubuntu(按照https://wiki.ubuntu.com/Nexus7/Installation 上的说明),然后卸载它,设备会处于原始状态,还是会留下痕迹?
我特别关心以下问题:
我决定尝试一个实验。我从台式机上卸下了 SSD,并暂时将其放入我的戴尔 Latitude 笔记本电脑中。瞧,它加载initrd速度快了一个数量级,启动时间缩短了6 秒……
我现在有点困惑……也许 GRUB 的主板芯片组有问题?
所以我注意到 HDD 活动灯的一些有趣之处。加载 时initrd,几乎就好像以 10% 的占空比或其他方式对灯进行 PWM。这让我想知道 GRUB 的读取是否没有优化,也许就像它在执行操作系统调用来读取每个字节而不是将图像作为字节流读取?
似乎加载初始 ramdisk 是问题的很大一部分。
在 GRUB 中,我按下C手动命令提示符。然后,我一次一次地输入默认配置中的每一行(输入这些 UUID 很痛苦!),并记下命令完成所用的时间。这是我发现的:
输入配置文件中的所有行后,我继续运行boot. 从我按 Enter 到登录屏幕出现的时间,大约需要 7.5 秒。
有趣的是它加载的 initrd 图像是 36MB。因此,如果加载需要 7 秒,那么它的读取速度仅为 5MB/秒!
我塔上的磁盘活动指示灯在整个 7 秒内一直亮着......
还有一个来自维基百科页面关于 initrd的有趣片段:
其他 Linux 发行版(例如 Fedora 和 Ubuntu)生成更通用的 initrd …
是否有引导加载程序或 Grub 设置不会清除(整个)屏幕,而将 UEFI 徽标(主板徽标)留在原处 - 就像 Windows 10 在启动时显示的徽标下方显示进度圈一样?