我安装了ChrUbuntu在一个宏碁 C7 Chromebook,我能够双启动 Ubuntu 12.04 和 ChromeOS 并控制默认加载哪个操作系统。我尝试编辑该/etc/default/grub
文件并成功运行update-grub
,但没有看到任何效果。我试图启用“dmesg”风格的详细系统加载屏幕,而不是安静的启动屏幕(在 Ubuntu 启动期间)。我怀疑 GRUB 不是机器上的引导加载程序,或者仅在 Linux 分区上充当相当晚的辅助引导加载程序。我意识到 Chromebook 是一个由 Google 严格控制的相当封闭的系统,但由于它本质上是 Linux,人们可能知道答案。
我不太需要“dmesg”风格的详细启动;但确实对该系统上的引导加载感到好奇。
PS 只是为了澄清一下,我试图在机器上的 Ubuntu 启动上启用详细加载屏幕。
答案1
ChromeOS 使用 U-Boot:
“Chromium OS 本质上是一个专门定制的 GNU/Linux 发行版。我们希望对上游内核进行尽可能少的修改,最好是没有。但与任何其他 GNU/Linux 系统一样,预内核启动过程不可避免地存在依赖性关于硬件、BIOS 和引导加载程序。”
尽管 ChromeOS 有自己定制的启动方式:
“Google Chrome OS 设备 (x86/x86_64/arm) 具有自定义 BIOS,它使用另一种引导方法来确保用户仅运行预期的位。而不是单独的引导加载程序和内核,而是包含一个二进制 blob它自己的 GPT 分区经过加密签名,并且在启动之前验证签名。”
更多信息:http://www.chromium.org/chromium-os/chromiumos-design-docs/disk-format
答案2
这可能会让人相当困惑,尤其是回想起来,因为我的联想 N22 (reks) 带有 chrx/Gallium,其行为正如你预期的那样:当固件将控制权移交给操作系统时,Grub 接管了启动。但是这个不适用于 Chrome 操作系统内核直接接管的引导过程,看看我发布的有关不同方法的图像和信息这里。我还没有更深入地研究细节(而且我可能永远不会),但我猜由于它使用 Chrome OS 内核来启动 Ubuntu(固件和内核之间不涉及引导加载程序),因此内核被指示启动另一个根文件系统,而不是当时的 Chrome 操作系统。
ChrUbuntu作者发表2013 年 10 月 15 日发布如下:
自从我在 2010 年 12 月启动 ChrUbuntu 以来,一直需要在 Ubuntu 中使用 Chrome OS Linux 内核,以解决 Chromebook 架构的一些兼容性问题。随着 Chromebook Pixel 和较新的基于 Haswell 的 Chromebook(例如 Acer C720 和 HP Chromebook 14)的出现,这种情况发生了变化。这些型号均支持从更传统的 PC BIOS 模式启动这使得在它们上使用现有的 Ubuntu 内核变得很简单。
我不知道所有细节,在今年拿到 N22 之前,我很久以前只测试过基于 ARM 的 Chromebook,我的解释是,这一切都是基于基板的滑溜的后来或他们的平台2正如源存储库中所述。
答案3
不是 100% 确定,但引导加载程序位于 BIOS 内部。内核直接从分区加载,例如没有文件系统。这就是您需要 GPT 而不是普通 DOS 分区表的原因。