跳到内容跳到页面导航:上一页 [access key p]/下一页 [access key n]
documentation.suse.com / SUSE Linux Enterprise Server 文档 / 管理指南 / 引导 Linux 系统 / 引导加载程序 GRUB 2
适用范围 SUSE Linux Enterprise Server 15 SP6

18 引导加载程序 GRUB 2

本章介绍如何配置 SUSE® Linux Enterprise Server 中使用的引导加载程序 GRUB 2。GRUB 是传统 GRUB 引导加载程序(现在称作GRUB Legacy)的后继产品。从 SUSE® Linux Enterprise Server 版本 12 开始,就已使用 GRUB 2 作为默认的引导加载程序。产品中提供了一个 YaST 模块来配置最重要的设置。第 16 章 “引导过程简介 中将引导过程作为一个整体进行了介绍。有关 UEFI 计算机的安全引导支持的细节,请参见第 17 章 “UEFI(统一可扩展固件接口)

18.1 GRUB Legacy 与 GRUB 2 之间的主要差异

  • 配置存储在不同的文件中。

  • 支持更多的文件系统(例如 Btrfs)。

  • 可以直接读取 LVM 或 RAID 设备上存储的文件。

  • 用户界面可翻译,并可以改变主题。

  • 包含一项用于加载模块的机制,以支持更多功能,例如文件系统等。

  • 自动搜索和生成其他内核与操作系统(例如 Windows)的引导项。

  • 包含一个类似于 Bash 的精简控制台。

18.2 配置文件结构

GRUB 2 的配置基于以下文件:

/boot/grub2/grub.cfg

此文件包含 GRUB 2 菜单项的配置。它替代了 GRUB Legacy 中的 menu.lst。不要编辑 grub.cfg — 它是由命令 grub2-mkconfig -o /boot/grub2/grub.cfg 自动生成的。

/boot/grub2/custom.cfg

grub.cfg 会在系统引导时直接检索此可选文件,使用该文件可向引导菜单添加自定义项。从 SUSE Linux Enterprise Server 12 SP2 开始,使用 grub-once 时也会分析这些项。

/etc/default/grub

此文件控制 GRUB 2 的用户设置,通常包含背景和主题等其他环境设置。

/etc/grub.d/ 下的脚本

在执行 grub2-mkconfig -o /boot/grub2/grub.cfg 命令期间,系统会读取此目录中的脚本。主配置文件 /boot/grub/grub.cfg 中集成了这些脚本的指令。

/etc/sysconfig/bootloader

此配置文件用于保存一些基本设置,例如引导加载程序类型,以及是否启用 UEFI 安全引导支持。

/boot/grub2/x86_64-efi, /boot/grub2/power-ieee1275, /boot/grub2/s390x

这些配置文件包含特定于体系结构的选项。

GRUB 2 可以通过多种方式进行控制。可以在图形菜单(启动屏幕)中选择现有配置的引导项。配置从文件 /boot/grub2/grub.cfg 加载,而该文件是基于其他配置文件编译的(参见下文)。所有 GRUB 2 配置文件都视为系统文件,编辑这些配置文件需要拥有 root 特权。

注意
注意:激活配置更改

手动编辑 GRUB 2 配置文件后,需要运行grub2-mkconfig -o /boot/grub2/grub.cfg以激活更改。但使用 YaST 更改配置时就不需要如此,因为 YaST 会自动运行此命令。

18.2.1 文件 /boot/grub2/grub.cfg

带有引导菜单的图形启动屏幕上的内容取决于 GRUB  配置文件 /boot/grub2/grub.cfg,该文件包含有关可以通过菜单引导的所有分区或操作系统的信息。

系统每次引导时,GRUB 2 会直接从文件系统加载菜单文件。因此,在更改配置文件后不需要重新安装 GRUB 2。安装或去除内核后,系统会自动重构建 grub.cfg

grub.cfg 是在运行 grub2-mkconfig -o /boot/grub2/grub.cfg 命令时,基于文件 /etc/default/grub 以及 /etc/grub.d/ 目录中的脚本编译的。因此,切勿手动编辑该文件,而应该编辑相关的源文件,或者根据第 18.3 节 “使用 YaST 配置引导加载程序”中所述,使用 YaST 引导加载程序模块来修改配置。

18.2.2 文件 /etc/default/grub

此文件包含 GRUB 2 的其他常规选项,例如,显示菜单的时间,或者要引导的默认操作系统。要列出所有可用选项,请查看以下命令的输出:

> grep "export GRUB_DEFAULT" -A50 /usr/sbin/grub2-mkconfig | grep GRUB_

您可以引入自定义变量,稍后在位于 /etc/grub.d 目录中的脚本中使用它们。

编辑 /etc/default/grub 后,请使用 grub2-mkconfig -o /boot/grub2/grub.cfg 更新主配置文件。

注意
注意:范围

此文件中指定的所有选项都是会影响所有引导项的常规选项。与 Xen 超级管理程序相关的选项包含 _XEN_ 子字符串。

重要
重要:将内部引号转义

更复杂的带空格选项需要加上引号,以便整体作为一个选项处理。此类内部引号需要以正确的方式转义,例如:

GRUB_CMDLINE_LINUX_XEN="debug loglevel=9 log_buf_len=5M \"ddebug_query=file drivers/xen/xen-acpi-processor.c +p\""
GRUB_DEFAULT

设置默认会引导的引导菜单项。它的值可以是数字值、菜单项的完整名称或saved

GRUB_DEFAULT=2 引导第三个(从零开始计数)引导菜单项。

GRUB_DEFAULT="2>0" 会引导第三个顶级菜单项的第一个子菜单项。

GRUB_DEFAULT="Example boot menu entry" 会引导名为Example boot menu entry的菜单项。

GRUB_DEFAULT=saved 会引导 grub2-oncegrub2-set-default 命令指定的项。grub2-reboot 只设置下一次重引导的默认引导项,而 grub2-set-default 设置的是永久的默认引导项,直至其被更改。grub2-editenv list 列出下一个引导项。

GRUB_HIDDEN_TIMEOUT

等待用户按某个键的指定秒数。在此期间,除非用户按下某个键,否则不显示菜单。如果用户在指定的时间内未按任何键,控制权将转交给 GRUB_TIMEOUTGRUB_HIDDEN_TIMEOUT=0 首先会检查是否按下了 Shift,如果是,则显示引导菜单,否则会立即引导默认的菜单项。如果 GRUB 2 只识别了一个可引导操作系统,则默认行为就是如此。

GRUB_HIDDEN_TIMEOUT_QUIET

如果指定 false,并且启用了 GRUB_HIDDEN_TIMEOUT 功能,将会在一个空白屏幕上显示倒数计时器。

GRUB_TIMEOUT

在自动引导默认引导项之前,显示引导菜单的期限(以秒为单位)。如果按下某个键,则会取消超时,GRUB 2 将等待您手动做出选择。如果指定 GRUB_TIMEOUT=-1,则在您手动选择引导项之前,菜单会一直显示。

GRUB_CMDLINE_LINUX

此行中的项将添加到正常模式和恢复模式的引导项末尾。使用它可以向引导项添加内核参数。

GRUB_CMDLINE_LINUX_DEFAULT

GRUB_CMDLINE_LINUX 一样,但只能在正常模式下追加项。

GRUB_CMDLINE_LINUX_RECOVERY

GRUB_CMDLINE_LINUX 一样,但只能在恢复模式下追加项。

GRUB_CMDLINE_LINUX_XEN_REPLACE

此项将替代所有 Xen 引导项的 GRUB_CMDLINE_LINUX 参数。

GRUB_CMDLINE_LINUX_XEN_REPLACE_DEFAULT

GRUB_CMDLINE_LINUX_XEN_REPLACE 一样,但只会替代 GRUB_CMDLINE_LINUX_DEFAULT 的参数。

GRUB_CMDLINE_XEN

这些项会传递给 Xen 超级管理程序的正常模式和恢复模式 Xen 菜单项。例如:

GRUB_CMDLINE_XEN="loglvl=all guest_loglvl=all"
提示
提示:Xen 超级管理程序选项

有关 Xen 超级管理程序选项的完整列表,请访问 https://xenbits.xen.org/docs/unstable/misc/xen-command-line.html

GRUB_CMDLINE_XEN_DEFAULT

GRUB_CMDLINE_XEN 一样,但只能在正常模式下追加项。

GRUB_TERMINAL

启用和指定输入/输出终端设备。可以是 console(PC BIOS 和 EFI 控制台)、serial(串行终端)、ofconsole(开放式固件控制台)或默认值 gfxterm(图形模式输出)。用引号括住所需的选项可以启用多个设备,例如 GRUB_TERMINAL="console serial"

GRUB_GFXMODE

gfxterm 图形终端使用的分辨率。只能使用您的显卡 (VBE) 支持的模式。默认值为“auto”,即尝试选择首选的分辨率。在 GRUB 2 命令行中键入 videoinfo 可以显示 GRUB 2 适用的屏幕分辨率。GRUB 2 引导菜单屏幕显示后,键入 C 即可访问命令行。

您还可以指定颜色深度,方法是将其值追加到分辨率设置的后面,例如 GRUB_GFXMODE=1280x1024x24

GRUB_BACKGROUND

设置 gfxterm 图形终端的背景图像。该图像必须是 GRUB 2 可在系统引导时读取的文件,并且必须以 .png.tga.jpg.jpeg 后缀结尾。必要时,系统会缩放该图像以适合屏幕。

GRUB_DISABLE_OS_PROBER

如果将此选项设置为 true,将禁用自动搜索其他操作系统的功能。系统只会检测 /boot/ 中的内核映像,以及 /etc/grub.d/ 中您自己的脚本内的选项。

SUSE_BTRFS_SNAPSHOT_BOOTING

如果将此选项设置为 true,GRUB 2 可直接引导至 Snapper 快照。有关详细信息,请参见第 10.3 节 “通过从快照引导来执行系统回滚”

要显示完整的选项列表,请参见 GNU GRUB manual

18.2.3 /etc/grub.d 中的脚本

在执行 grub2-mkconfig -o /boot/grub2/grub.cfg 命令期间,系统会读取此目录中的脚本。脚本的指令将整合到 /boot/grub2/grub.cfg 中。grub.cfg 中菜单项的顺序由此目录中文件的运行顺序来决定。具有前导编号的文件先执行,从最小的编号开始。00_header10_linux 之前运行,而后者又在 40_custom 之前运行。如果存在采用字母名称的文件,这些文件将在采用编号命名的文件后面执行。在执行 grub2-mkconfig 期间,只有可执行文件才能在 grub.cfg 中生成输出。默认情况下,/etc/grub.d 目录中的所有文件都是可执行文件。

提示
提示:将自定义内容永久保存在 grub.cfg

由于每次运行 grub2-mkconfig 时都会重新编译 /boot/grub2/grub.cfg,因此所有自定义内容都会丢失。要想直接在 /boot/grub2/grub.cfg 中插入行并让这些行在运行 grub2-mkconfig 后不丢失,需要将它们插入以下两行之间

### BEGIN /etc/grub.d/90_persistent ###

### END /etc/grub.d/90_persistent ###

90_persistent 脚本可确保此类内容会保留下来。

下面列出了最重要的脚本:

00_header

设置环境变量,例如系统文件位置、显示设置、主题和以前保存的项。它还可以导入 /etc/default/grub 中存储的首选项。通常,不需要对此文件进行更改。

10_linux

识别根设备上的 Linux 内核,并创建相关的菜单项。这包括关联的恢复模式选项(如果已启用)。主菜单页中只显示最新内核,其他内核包含在子菜单中。

30_os-prober

此脚本使用 os-prober 来搜索 Linux 和其他操作系统,并将结果列于 GRUB 2 菜单中。其中的某些部分可以识别其他特定操作系统,例如 Windows 或 macOS。

40_custom

使用此文件可以方便地在 grub.cfg 中包含自定义引导项。切勿更改开头的 exec tail -n +3 $0 部分。

处理顺序根据前导编号确定,编号最小的脚本最先执行。如果多个脚本的前导编号相同,则根据整个名称的字母顺序来决定执行顺序。

提示
提示:/boot/grub2/custom.cfg

如果您创建了 /boot/grub2/custom.cfg 并在其中填充了内容,系统会在引导时自动将它包含到 /boot/grub2/grub.cfg 中,放置在 40_custom 的后面。

18.2.4 BIOS 驱动器与 Linux 设备之间的映射

在 GRUB Legacy 中,device.map 配置文件用于基于 BIOS 驱动器号派生 Linux 设备名称。不一定总能正确猜测出 BIOS 驱动器与 Linux 设备之间的映射。例如,如果 IDE 和 SCSI 驱动器的引导顺序在 BIOS 配置中被交换,则 GRUB Legacy 就会发生顺序错误。

GRUB 2 在生成 grub.cfg 时使用设备 ID 字符串 (UUID) 或文件系统标签,因此避免了此问题。GRUB 2 实用程序会即时创建一个临时设备映射,这通常足以满足需要,尤其是在单磁盘系统上。

但是,如果您需要覆盖 GRUB  2 的自动设备映射机制,请创建自定义映射文件 /boot/grub2/device.map。以下示例将更改映射,使 DISK 3 成为引导磁盘。GRUB 2 分区编号从 1 开始,而不是像 GRUB 2 Legacy 中那样从 0 开始。

(hd1)  /dev/disk-by-id/DISK3 ID
(hd2)  /dev/disk-by-id/DISK1 ID
(hd3)  /dev/disk-by-id/DISK2 ID

18.2.5 在引导过程中编辑菜单项

当系统由于配置错误而不再能够引导时,如果能够直接编辑菜单项,就会很有帮助。使用菜单编辑器还可以在不更改系统配置的情况下测试新设置。

  1. 在图形引导菜单中,使用方向键选择要编辑的项。

  2. E 打开基于文本的编辑器。

  3. 使用方向键移到您要编辑的行。

    GRUB 2 引导编辑器
    图 18.1︰ GRUB 2 引导编辑器

    现在,您可以采取以下两种做法:

    1. 将用空格分隔的参数添加到以 linuxlinuxefi 开头的行的末尾,以编辑内核参数。https://en.opensuse.org/Linuxrc 上提供了完整的参数列表。

    2. 或者编辑常规选项,以更改内核版本等。按 →| 键会显示所有可能的补全建议。

  4. F10 使用您所做的更改引导系统,或者按 Esc 放弃您的编辑,并返回到 GRUB 2 菜单。

通过这种方式进行的更改仅会应用到当前引导过程,而不会永久保存。

重要
重要:引导过程中的键盘布局

US 键盘布局是引导时唯一可用的键盘布局。请参见图 13.1 “美式键盘布局”

注意
注意:安装媒体中的引导加载程序

在使用传统 BIOS 的系统上,安装媒体中的引导加载程序仍是 GRUB Legacy。要添加引导参数,请选择一项,然后开始键入。在安装引导项中添加的选项会永久保存在安装的系统中。

注意
注意:在 IBM Z 上编辑 GRUB 2 菜单项

IBM Z 上的光标移动操作和编辑命令有所不同,有关细节,请参见第 18.4 节 “IBM Z 上终端使用方式的差异”

18.2.6 设置引导口令

即使在操作系统引导之前,GRUB 2 也支持对文件系统的访问。没有 root 权限的用户可以访问 Linux 系统中的文件,而在引导系统后,他们将无权访问这些文件。要阻止此类访问或防止用户引导某些菜单项,请设置引导口令。

重要
重要:引导需要口令

如果设置了引导口令,则每次引导时都需要输入该口令,这意味着系统不会自动引导。

按如下步骤设置引导口令。或者使用 YaST(使用口令保护引导加载程序 )。

  1. 使用 grub2-mkpasswd-pbkdf2: 来加密口令:

    > sudo grub2-mkpasswd-pbkdf2
    Password: ****
    Reenter password: ****
    PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.9CA4611006FE96BC77A...
  2. 将生成的字符串连同 set superusers 命令一起粘贴到文件 /etc/grub.d/40_custom 中。

    set superusers="root"
    password_pbkdf2 root grub.pbkdf2.sha512.10000.9CA4611006FE96BC77A...
  3. 要将更改导入到主要配置文件中,请运行:

    > sudo grub2-mkconfig -o /boot/grub2/grub.cfg

在重引导后,当您尝试引导某个菜单项时,GRUB 2 会提示您输入用户名和口令。输入 root 以及您在执行 grub2-mkpasswd-pbkdf2 命令期间键入的口令。如果身份凭证正确,系统将引导选定的引导项。

有关详细信息,请访问 https://www.gnu.org/software/grub/manual/grub/grub.html#Security

18.2.7 引导菜单项的授权访问权限

您可以将 GRUB 2 配置为允许根据授权级别访问引导菜单项。您可以配置多个受口令保护的用户帐户,并向其分配不同菜单项的访问权限。要在 GRUB 2 中配置授权,请执行以下步骤:

  1. 为要在 GRUB 2 中使用的每个用户帐户创建一个口令并进行加密。按第 18.2.6 节 “设置引导口令”中所述使用 grub2-mkpasswd-pbkdf2 命令。

  2. 删除文件 /etc/grub.d/10_linux。这样可以防止输出默认的 GRUB 2 菜单项。

  3. 编辑 /boot/grub2/custom.cfg 文件,并手动添加自定义菜单项。下面的模板是一个示例,请调整该模板,使其更适合您的用例:

    set superusers=admin
    password admin ADMIN_PASSWORD
    password maintainer MAINTAINER_PASSWORD
    
    menuentry 'Operational mode' {
      insmod ext2
      set root=hd0,1
      echo 'Loading Linux ...'
      linux /boot/vmlinuz root=/dev/vda1 $GRUB_CMDLINE_LINUX_DEFAULT $GRUB_CMDLINE_LINUX mode=operation
      echo 'Loading Initrd ...'
      initrd /boot/initrd
    }
    
    menuentry 'Maintenance mode' --users maintainer {
      insmod ext2
      set root=hd0,1
      echo 'Loading Linux ...'
      linux /boot/vmlinuz root=/dev/vda1 $GRUB_CMDLINE_LINUX_DEFAULT $GRUB_CMDLINE_LINUX mode=maintenance
      echo 'Loading Initrd ...'
      initrd /boot/initrd
    }
  4. 将更改导入到主配置文件中:

    > sudo grub2-mkconfig -o /boot/grub2/grub.cfg

在上面的示例中:

  • GRUB 2 菜单包含以下两项:操作模式维护模式

  • 如果未指定用户,则两个引导菜单项都可以访问,但任何人都无法访问 GRUB 2 命令行或编辑现有菜单项。

  • admin 用户可访问 GRUB 2 命令行并编辑现有的菜单项。

  • maintenance 用户可选择恢复菜单项。

18.3 使用 YaST 配置引导加载程序

SUSE Linux Enterprise Server 系统中,配置引导加载程序一般选项最简单的方式就是使用 YaST 模块。在 YaST 控制中心,选择系统 ›  引导加载程序。该模块会显示您系统的当前引导加载程序配置,并允许您进行更改。

使用引导代码选项选项卡可查看和更改类型、位置和高级加载程序设置的相关设置。您可以选择要在标准模式还是 EFI 模式下使用 GRUB 2。

重要
重要:EFI 系统要求使用 GRUB2-EFI

如果您使用的是 EFI 系统,则只能安装 GRUB2-EFI,否则您的系统不再能够引导。

重要
重要:重新安装引导加载程序

要重新安装引导加载程序,请务必在 YaST 中更改设置,然后再将其改回来。例如,要重新安装 GRUB2-EFI,请先选择 GRUB2,然后立即将其切换回 GRUB2-EFI

否则,可能只会重新安装引导加载程序的一部分。

注意
注意:自定义引导加载程序

要使用此处未列出的引导加载程序,请选择不要安装任何引导加载程序。在选择该选项之前,请仔细阅读您的引导加载程序文档。

18.3.1 引导加载程序位置和引导代码选项

引导加载程序的默认位置为主引导记录 (MBR) 或 / 分区的引导扇区,具体视分区设置而定。要修改引导加载程序的位置,请遵循以下步骤:

过程 18.1︰ 更改引导加载程序位置
  1. 选择引导代码选项选项卡,然后为引导加载程序位置选择以下某个选项:

    从主引导记录引导

    选择此选项会在包含 /boot 目录的磁盘 MBR 中安装引导加载程序。通常,这将是挂载到 / 的磁盘,但如果 /boot 挂载到其他磁盘上的独立分区中,将会使用该磁盘的 MBR。

    从根分区引导

    选择此选项会在 / 分区的引导扇区中安装引导加载程序。

    自定义根分区

    手动使用此选项来指定引导加载程序的位置。

  2. 单击确定以应用更改。

引导代码选项
图 18.2︰ 引导代码选项

引导代码选项选项卡包含以下额外的选项:

在分区表中设置活动标志,以引导分区

激活包含 /boot 目录的分区。对于 POWER 系统,则会激活 PReP 分区。此选项用于具有旧 BIOS 的系统和/或旧式操作系统,因为它们可能无法从非活动的分区引导。您可以放心地启用此选项。

将通用引导代码写入 MBR 中

如果 MBR 包含自定义的“非 GRUB”代码,此选项会用不受操作系统限制的通用代码替换该代码。如果您停用此选项,系统可能变得无法引导。

启用可信引导支持

启动支持可信计算功能(可信平台模块 (TPM))的 TrustedGRUB2。有关详细信息,请参见https://github.com/Sirrix-AG/TrustedGRUB2

保护性 MBR 标志部分包含以下选项:

set

适用于传统旧式 BIOS 引导。

remove

适用于 UEFI 引导。

do not change

如果您已有一个正常运行的系统,这通常是最适合的选项。

大多数情况下,YaST 默认会使用适合的选项。

18.3.2 调整磁盘顺序

如果您的计算机有多个硬盘,您可以指定磁盘的引导顺序。如果从 MBR 引导,将在列表中的第一个磁盘中安装 GRUB 2。默认在该磁盘中安装 SUSE Linux Enterprise Server。列表的其余部分是有关 GRUB 2 的设备映射程序的提示(请参见第 18.2.4 节 “BIOS 驱动器与 Linux 设备之间的映射”)。

警告
警告:无法引导的系统

通常情况下,默认值几乎对所有部署都有效。如果您错误地更改了磁盘的引导顺序,系统下次重引导时可能无法引导。例如,如果列表中的第一个磁盘不在 BIOS 引导序列中,并且列表中的其他磁盘有空 MBR,系统将无法引导。

过程 18.2︰ 设置磁盘顺序
  1. 打开引导代码选项选项卡。

  2. 单击编辑磁盘引导顺序

  3. 如果列出了多个磁盘,请选择一个,然后单击向上向下来对显示的磁盘重新排序。

  4. 单击确定两次以保存更改。

18.3.3 配置高级选项

可以通过引导加载程序选项选项卡来配置高级引导参数。

18.3.3.1 引导加载程序选项选项卡

引导加载程序选项
图 18.3︰ 引导加载程序选项
引导加载程序超时

通过键入新值或者用鼠标单击相应的方向键来更改超时(以秒为单位)的值。

探测外来操作系统

如果选择该选项,引导加载程序将会搜索其他系统(例如 Windows)或其他 Linux 安装。

引导时隐藏菜单

隐藏引导菜单并引导默认项。

调整默认引导项

默认引导部分列表中选择所需的项。请注意,引导项名称中的>符号用于分隔引导部分及其子部分。

使用口令保护引导加载程序

使用一个附加的口令保护引导加载程序和系统。有关手动配置的细节,请参见第 18.2.6 节 “设置引导口令”。如果激活此选项,则每次引导时都需要输入该引导口令,这意味着系统不会自动引导。但是,如果您更喜欢 GRUB 1 的行为方式,请额外启用仅防止修改引导项。使用此设置时,任何人都可以选择引导项并引导系统,仅在修改引导项时,才需要提供 GRUB 2 root 用户的口令。

18.3.3.2 内核参数选项卡

内核参数
图 18.4︰ 内核参数
可选的内核命令行参数

在此处指定可选的内核参数,以启用/禁用系统功能、添加驱动程序,等等。

CPU 缓解措施

SUSE 针对为防御 CPU 边信道攻击而部署的所有软件缓解措施发布了一个或多个内核引导命令行参数。其中一些参数可能会导致性能损失。请根据您的设置选择以下其中一个选项,在安全性和性能之间取得平衡:

自动 启用您的 CPU 型号所需的全部缓解措施,但不防范跨 CPU 线程的攻击。此设置可能会在一定程度上影响性能,具体视工作负载而定。

自动 + 禁用 SMT 提供整套可用的安全缓解措施。启用您的 CPU 型号所需的全部缓解策略。此外,它还会禁用同步多线程 (SMT),以免受到跨多个 CPU 线程发起的边信道攻击。此设置可能会进一步影响性能,具体取决于工作负载。

禁用所有缓解措施。CPU 可能会遭到边信道攻击,具体取决于 CPU 型号。此设置不会对性能造成任何影响。

手动 不设置任何缓解措施级别。请使用内核命令行选项手动指定 CPU 缓解措施。

使用图形控制台

如果选中该选项,引导菜单会显示在图形启动屏幕中,而不是以文本模式显示。默认情况下,系统会自动设置引导屏幕的分辨率,但您可以通过控制台分辨率手动进行设置。可以使用控制台主题文件选择器指定图形主题定义文件。请仅在您想要应用自己的定制主题时,才更改此设置。

使用串行控制台

如果您的计算机是通过串行控制台控制的,则可激活此选项并指定要使用的 COM 端口及其运行速度。请参阅 info grubhttps://www.gnu.org/software/grub/manual/grub.html#Serial-terminal

18.4 IBM Z 上终端使用方式的差异

在 3215 和 3270 终端上,光标的移动方式以及在 GRUB 2 中发出编辑命令的方式存在一些差异和限制。

18.4.1 限制

交互能力

交互性存在严重的限制。键入时通常不能获得直观的反馈。要查看光标所在的位置,请键入下划线 (_)。

注意
注意:3270 与 3215 的对比

与 3215 终端相比,3270 终端在显示和刷新屏幕方面要好得多。

光标的移动

无法进行传统的光标移动操作。AltMetaCtrl 和光标键不起作用。要移动光标,请使用第 18.4.2 节 “组合键”中列出的组合键。

加字符

插入符 (^) 用作控制字符。要键入文本 ^ 加字母,请键入 ^^LETTER

输入

Enter 键不起作用,请改用 ^J

18.4.2 组合键

常用的替代键

^J

确认(Enter

^L

取消,返回之前的状态

^I

Tab 键补全(在编辑模式与外壳模式下)

菜单模式下可用的键:

^A

移到第一项

^E

移到最后一项

^P

移到上一项

^N

移到下一项

^G

上移一页

^C

下移一页

^F

引导选定的项或进入子菜单(与 ^J 的作用相同)

E

编辑选定的项

C

进入 GRUB-Shell

编辑模式下可用的键:

^P

上移一行

^N

下移一行

^B

向左移一个字符

^F

向右移一个字符

^A

移到行首

^E

移到行尾

^H

退格

^D

delete

^K

删除行

^Y

复制

^O

插入空行

^L

刷新屏幕

^X

引导项

^C

进入 GRUB-Shell

命令行模式下可用的键:

^P

上一个命令

^N

历史中的下一个命令

^A

移到行首

^E

移到行尾

^B

向左移一个字符

^F

向右移一个字符

^H

退格

^D

delete

^K

删除行

^U

删除行

^Y

复制

18.5 有用的 GRUB 2 命令

grub2-mkconfig

基于 /etc/default/grub 以及 /etc/grub.d/ 中的脚本生成新的 /boot/grub2/grub.cfg

例 18.1︰ grub2-mkconfig 用法
grub2-mkconfig -o /boot/grub2/grub.cfg
提示
提示:语法检查

运行不带任何参数的 grub2-mkconfig 会将配置打印到 STDOUT 中供用户查看。在写入 /boot/grub2/grub.cfg 后使用 grub2-script-check 可以检查其语法。

重要
重要:grub2-mkconfig 无法修复 UEFI 安全引导表

如果您使用的是 UEFI 安全引导,而您的系统无法再正常连接 GRUB 2,您可能需要另外重新安装 Shim 并重新生成 UEFI 引导表。要执行此操作,请使用:

# shim-install --config-file=/boot/grub2/grub.cfg
grub2-mkrescue

为安装的 GRUB 2 配置创建一个可引导的救援映像。

例 18.2︰ grub2-mkrescue 用法
grub2-mkrescue -o save_path/name.iso iso
grub2-script-check

检查给定文件中有无语法错误。

例 18.3︰ grub2-script-check 用法
grub2-script-check /boot/grub2/grub.cfg
grub2-once

仅设置下次引导的默认引导项。要获取可用引导项的列表,请使用 --list 选项。

例 18.4︰ grub2-once 用法
grub2-once number_of_the_boot_entry
提示
提示:grub2-once help

不使用任何选项调用该程序可以获取所有可用选项的完整列表。

18.6 救援模式

救援模式是一个特定的 root 用户会话,用于对引导过程失败的系统进行故障排除和修复。它提供了一个单用户环境,其中本地文件系统和核心系统服务处于活动状态。网络接口未激活。要进入救援模式,请按照下列步骤操作。

过程 18.3︰ 进入救援模式
  1. 重新启动系统。引导屏幕将会出现,其中会显示 GRUB 2 引导菜单。

  2. 选择要引导的菜单项,然后按 e 编辑引导行。

  3. 在包含内核参数的行中追加以下参数:

    systemd.unit=rescue.target
  4. Ctrl+X 键,使用这些设置引导系统。

  5. 输入 root 的口令。

  6. 进行必要的一切更改。

  7. 在命令行中输入 systemctl isolate multi-user.targetsystemctl isolate graphical.target,以重新进入正常运行的目标。

18.7 更多信息

您可以访问 https://www.gnu.org/software/grub/,查看有关 GRUB 2 的大量信息,另外还可参见 grub 信息页面。您也可以在技术信息搜索页面 (https://www.suse.com/support) 中搜索关键字GRUB 2,以获取有关特殊问题的信息。