使用 GRUB 对 Linux 实例进行故障排查 - Amazon Elastic Compute Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 GRUB 对 Linux 实例进行故障排查

GNU GRUB(GNU GRand Unified Bootloader [统一引导加载程序] 的缩写,通常称为 GRUB)是大多数 Linux 操作系统的默认引导加载程序。从 GRUB 菜单中,您可以选择要引导到哪个内核,或修改菜单项以更改内核的启动方式。这在对失败的实例进行故障排查时非常有用。

在引导流程中将显示 GRUB 菜单。该菜单无法通过普通 SSH 访问,但您可以通过 EC2 Serial Console 访问。

在使用 GRUB 之前,请确保您已完成先决条件,包括授予串行控制台访问权限和配置 GRUB。

使用 GRUB

配置 GRUB 后,连接到串行控制台并使用重启命令重启实例。在重新启动过程中,您会看到 GRUB 菜单。出现 GRUB 菜单时按任意键可停止启动流程,从而使您可以与 GRUB 菜单进行交互。

单用户模式

单用户模式将在较低的运行级别启动内核。例如,它可能会挂载文件系统,但不会激活网络,从而使您有机会执行修复实例所需的维护。

启动到单用户模式
  1. 连接到实例的串行控制台。

  2. 使用以下命令重新引导实例。

    [ec2-user ~]$ sudo reboot
  3. 在重新启动期间,当 GRUB 菜单出现时,按任意键停止引导流程。

  4. 在 GRUB 菜单中,使用箭头键选择要引导的内核,然后按键盘上的 e

  5. 使用箭头键将光标定位在包含内核的行上。该行以 linuxlinux16 开头,取决于启动实例所使用的 AMI。对于 Ubuntu,有两行开头为 linux,必须在下一步中修改。

  6. 在行末添加 single 一词。

    以下是 Amazon Linux 2 的示例。

    linux /boot/vmlinuz-4.14.193-149.317.amzn2.aarch64 root=UUID=d33f9c9a-\ dadd-4499-938d-ebbf42c3e499 ro console=tty0 console=ttyS0,115200n8 net.ifname\ s=0 biosdevname=0 nvme_core.io_timeout=4294967295 rd.emergency=poweroff rd.she\ ll=0 single
  7. Ctrl+X 可启动到单用户模式。

  8. login 提示符下,输入您之前设置的基于密码的用户的用户名,然后按 Enter 键。

  9. Password 提示符下,输入密码,然后按 Enter 键。

紧急模式

紧急模式与单用户模式类似,只是内核在可达到的最低运行级别运行。

要启动到紧急模式,请按照上一节的 单用户模式 中的步骤操作,但在第 6 步中添加的词是 emergency 而非 single