安装后如何在 Acer Chromebook 上访问 Ubuntu?

Bri*_*ian 2 boot chromeos chromebook

我已经在我的 chromebook 中安装了 Ubuntu,但它只能启动到 chrome 操作系统。我的目标是让我的 Chromebook 启动到 Ubuntu。

Han*_*ans 5

安装 Ubuntu 后,如果您重新启动 Chromebook,默认情况下它将继续启动到 Chrome 操作系统,该操作系统位于其自己的专用分区中。

如果您希望 ChrUbuntu 成为默认设置,请打开 ChrUbuntu 中的终端(或 Chrome 操作系统中的开发人员控制台命令提示符)并输入 sudo cgpt add -i 6 -P 5 -S 1 /dev/sda 以更改默认设置引导分区。将其改回 Chrome OS 就像在启动 Chromebook 时禁用开发人员模式一样简单,或者在终端输入 sudo cgpt add -i 6 -P 0 -S 1 /dev/sda 。

编辑我:

设置启动优先级

此时我们应该有以下情况:

  • Image-A 是官方的谷歌 Chrome 操作系统,可以在正常模式或开发模式下启动。
  • Image-B 是(或将在第一次自动更新之后)另一个官方 Google Chrome 操作系统,它可以在正常模式或开发模式下启动。
  • Image-C 是 Chrome OS 内核,带有修改的命令行和 Ubuntu rootfs,它只能在开发模式下启动。

接下来,我们调整图像之间的优先级,以便我们可以尝试我们的 Ubuntu 图像。图像优先级是其内核分区的一个属性。运行cgpt show /dev/sda,查看内核优先级:

本地主机 ~ # cgpt 显示 /dev/sda

...

 4096     32768       2  Label: "KERN-A"
                         Type: ChromeOS kernel
                         UUID: D176DC60-81F1-654E-8953-E3D28019738C
                         Attr: priority=3 tries=0 successful=1
Run Code Online (Sandbox Code Playgroud)

...

36864     32768       4  Label: "KERN-B"
                         Type: ChromeOS kernel
                         UUID: F1A2C65C-CC22-FF4A-A8BC-67BA233F3D40
                         Attr: priority=0 tries=15 successful=0
Run Code Online (Sandbox Code Playgroud)

...

12369920     32768       6  Label: "KERN-C"
                         Type: ChromeOS kernel
                         UUID: B6954485-4295-9749-956A-C315B01FB684
                         Attr: priority=0 tries=15 successful=0
Run Code Online (Sandbox Code Playgroud)

优先级决定了 BIOS 尝试找到有效内核的顺序(越大越高,零表示甚至不尝试)。每次 BIOS 尝试启动它时,trys 字段都会递减,如果它为零,则内核被认为是无效的(这使我们可以启动新映像而不会在它们不起作用时永远循环)。成功字段覆盖尝试字段,但只有在操作系统启动并运行后才由操作系统设置。

让我们将 KERN-C 的优先级更改为 5:

cgpt add -i 6 -P 5 -T 1 -S 0 /dev/sda

这使得 KERN-C 成为最高优先级,但只给了我们一次启动它的机会。这样,如果它不起作用,我们就不会完全陷入困境。

如果您现在重新启动,您应该会出现在 Ubuntu 中!请注意,计算机科学标准答案 #1 适用:它适用于我™

如果出现问题并且 Ubuntu 崩溃或您关闭电源,则 KERN-C 的尝试字段将减少为 0,您将回退到启动 Chrome 操作系统。

假设 Ubuntu 已启动并且您可以登录,请转到 Applications->Accessories->Terminal 以获取 shell,然后运行

sudo cgpt add -i 6 -P 5 -S 1 /dev/sda

这会将 Ubuntu 内核标记为有效,以便下次继续引导。

现在,您只需拨动开发模式开关即可在官方 Chrome 操作系统版本和 Ubuntu 之间来回切换。从开发模式到正常模式会擦除状态 (/dev/sda1),但速度要快得多。再次从正常模式进入开发模式通常会缓慢擦除 /dev/sda1,但由于我们正在启动 Ubuntu,这不会发生。

这是有效的,因为尽管 KERN-C 具有最高优先级,但它并未由 Google 签名。在开发模式下没问题,但在正常模式下它会被 BIOS 拒绝。由于我们已将成功标志设置为 1,因此 BIOS 不会将其标记为无效,而是每次都会跳过它。这使得正常模式启动时间稍长,但只有一两秒。

当然,您也可以通过在重新启动之前使用 cgpt 手动设置优先级,从开发模式中在图像之间切换。

请注意,如果正常图像自动更新,它可能会更改内核优先级,因此 Image-C 不再是最高的,下次切换到开发模式时,您将 a) 等待很长时间,b) 仍在运行 Chrome操作系统,并且 c) 必须使用 cgpt 再次提高 KERN-C 优先级。

但是,因为自动更新只在 Image-A 和 Image-B 之间切换,所以 Ubuntu 内核和 rootfs 不应该受到影响。

  • @Brian 查看我对答案所做的编辑,告诉我们它是否有效(如果有效,请不要忘记将答案标记为已接受)。如果没有,也请告诉我们。 (2认同)
  • 好的,只需将您的 Chromebook 访问 Chrome OS 并打开一个控制台,然后输入我在上面输入的代码,就这样。 (2认同)
  • 控制台或命令提示符是一个 _application_ 用于给计算机一些命令。所有操作系统中都有一个命令提示符或控制台(实际上有些操作系统只有命令提示符,根本没有图形界面!)Chrome OS 命令提示符是通过点击`CTRL+ALT+T 访问的`直接在系统内,然后按照指示进行。PS:Ubuntu 命令提示符是 _Terminal_,你将在它上面工作很多,所以习惯它。 (2认同)
  • @Brian ,这个时候我会推荐你​​访问[这个站点](https://wiki.archlinux.org/index.php/Chromebook) (2认同)
  • @Brian 我们尽力而为,但我们无法教您如何使用计算机。阅读一些关于如何使用开发者控制台的内容,并在其他论坛的 chromebook 中找到有关 cgpt 命令的答案。然后回来按照之前的指示做。 (2认同)