G.10. 使用救援(rescue)模式

安装程序救援模式是可从 Red Hat Enterprise Linux DVD 或者其它引导介质引导的最小 Linux 环境。它包含可用来解决各种问题的命令行工具。救援模式可以从引导菜单的 Troubleshooting 菜单进入。在这个模式中,您可以将文件系统挂载为只读、列入黑名单或者添加驱动程序磁盘中提供的驱动程序,安装或升级系统软件包,或者管理分区。

注意

安装程序的救援(rescue)模式与救援模式(等同于单用户模式)和紧急(emergency)模式不同,后者是 systemd 系统和服务管理器的一部分。

要引导至救援模式,您必须可以使用一个 Red Hat Enterprise Linux 引导介质引导系统,比如最小引导磁盘或者 USB 驱动器,或者完整安装 DVD。

重要

高级存储(如 iSCSI 或 zFCP 设备)必须使用 dracut 引导选项(如 rd.zfcp=root=iscsi: 选项 )进行配置,或 64 位 IBM Z 上的 CMS 配置文件。无法在引导至救援模式后以互动方式配置这些存储设备。有关 dracut 引导选项的详情,请参考 dracut.cmdline(7) 手册页。

G.10.1. 引导至救援模式

这个流程描述了如何引导到救援模式。

流程

  1. 从最小引导介质或完整安装 DVD 或 USB 盘引导系统,并等待引导菜单显示。
  2. 在引导菜单中,选择 Troubleshooting > Rescue a Red Hat Enterprise Linux system 选项,或者在引导命令行中添加 inst.rescue 选项。要进入引导命令行,在基于 BIOS 的系统中按 Tab 键;或在使用 UEFI 的系统中按 e 键。
  3. 可选: 如果您的系统需要驱动程序磁盘中提供的第三方驱动程序才能引导,请将 inst.dd=driver_name 附加到引导命令行:

    inst.rescue inst.dd=driver_name
  4. 可选: 如果作为 Red Hat Enterprise Linux 发行本一部分的某个驱动阻止系统引导,将 modprobe.blacklist= 选项附加到引导命令行中:

    inst.rescue modprobe.blacklist=driver_name
  5. Enter (基于 BIOS 的系统)或者 Ctrl+X (基于 UEFI 的系统)引导修改的选项。等待以下信息出现:

    The rescue environment will now attempt to find your Linux installation and mount it under the directory: /mnt/sysroot/. You can then make any changes required to your system. Choose 1 to proceed with this step. You can choose to mount your file systems read-only instead of read-write by choosing 2. If for some reason this process does not work choose 3 to skip directly to a shell.
    
    1) Continue
    2) Read-only mount
    3) Skip to shell
    4) Quit (Reboot)

    如果您选择 1,安装程序会尝试在 /mnt/sysroot/ 目录下挂载文件系统。如果挂载分区失败,则会收到通知。如果选择 2,会尝试在 /mnt/sysroot/ 目录下挂载文件系统,但是挂载为只读模式。如果选择 3,文件系统将不会被挂载。

    对于系统 root,安装程序支持两个挂载点 /mnt/sysimage/mnt/sysroot/mnt/sysroot 路径用于挂载目标系统的 /。通常物理根和系统根是相同的,因此 /mnt/sysroot 被连接到和 /mnt/sysimage 相同的文件系统中。唯一例外是 rpm-ostree 系统,其中的系统根更改基于部署。然后 /mnt/sysroot 被附加到 /mnt/sysimage 的子目录中。建议您使用 /mnt/sysroot 作为 chroot。

  6. 选择 1 来继续。系统进入救援模式后,会在 VC(虚拟控制台)1 和 VC 2 中出现提示。使用 Ctrl+Alt+F1 组合键访问 VC 1 和 Ctrl+Alt+F2 访问 VC 2:

    sh-4.2#
  7. 即使挂载了文件系统,救援模式下的默认 root 分区是临时的 root 分区,而不是普通用户模式(multi-user.targetgraphical.target)下使用的文件系统的 root 分区。如果您选择挂载文件系统并成功挂载,您可以通过执行以下命令将救援模式环境的 root 分区改为文件系统的 root 分区:

    sh-4.2# chroot /mnt/sysroot

    如果您需要运行命令,如 rpm ,要求将 root 分区挂载为 / ,这会很有用。要退出 chroot 环境,输入 exit 来返回提示符。

  8. 如果选择了 3,仍可以通过创建目录(如 /directory/),并输入以下命令,来在救援模式中手动挂载分区或 LVM2 逻辑卷:

    sh-4.2# mount -t xfs /dev/mapper/VolGroup00-LogVol02 /directory

    在以上命令中,/directory/ 是您创建的目录,/dev/mapper/VolGroup00-LogVol02 是要挂载的 LVM2 逻辑卷。如果分区类型不是 XFS,使用正确的类型(比如 ext4)替换 xfs 字符串。

  9. 如果不知道所有物理分区的名称,使用以下命令列出它们:

    sh-4.2# fdisk -l

    如果不知道所有 LVM2 物理卷、卷组或者逻辑卷的名称,使用 pvdisplayvgdisplay 或 lvdisplay 命令。

G.10.2. 在救援模式中使用 SOS 报告

sosreport 命令行工具会收集配置和诊断信息,如运行的内核版本、载入的模块以及系统和服务配置文件。程序输出保存在 /var/tmp/ 目录中的 tar 归档中。sosreport 有助于分析系统错误和故障排除。使用这个步骤捕获救援模式中的 sosreport 输出结果。

先决条件

  • 引导至救援模式。
  • 您已经以读写模式挂载了安装的系统 /(root) 分区。
  • 已就您的问题单联系了红帽支持团队,并已获得了一个问题单号。

流程

  1. 将根目录改为 /mnt/sysroot/ 目录:

    sh-4.2# chroot /mnt/sysroot/
  2. 执行 sosreport 生成带有系统配置和诊断信息的归档文件:

    sh-4.2# sosreport
    重要

    sosreport 会提示您输入您的名称以及您从红帽支持收到的问题单号。只使用字母和数字,添加以下字符或空格可能会导致报告不可用:

    # % & { } \ < > > * ? / $ ~ ' " : @ + ` | =

  3. 可选: 如果想用网络把所生成的归档传输到一个新的位置,需要配置一个网络接口。在这种情况下,使用动态 IP 地址作为不需要其他步骤。但是,在使用静态寻址时,输入以下命令将 IP 地址(如 10.13.153.64/23)分配给网络接口,如 dev eth0:

    bash-4.2# ip addr add 10.13.153.64/23 dev eth0
  4. 退出 chroot 环境:

    sh-4.2# exit
  5. 将所生成的存档保存在一个新位置以便进行访问:

    sh-4.2# cp /mnt/sysroot/var/tmp/sosreport new_location
  6. 要通过网络传输归档,使用 scp 实用程序:

    sh-4.2# scp /mnt/sysroot/var/tmp/sosreport username@hostname:sosreport

G.10.3. 重新安装 GRUB2 引导装载程序

在某些情况下,GRUB2 引导装载程序被错误地删除、损坏或者被其他操作系统替代。使用这个流程,在带有 BIOS 的 AMD64 和 Intel 64 系统上,重新在主引导记录(MBR)上安装 GRUB2。

先决条件

  • 引导至救援模式。
  • 您已经以读写模式挂载了安装的系统 /(root) 分区。
  • 您已以读写模式挂载了 /boot 挂载点。

流程

  1. 更改根分区:

    sh-4.2# chroot /mnt/sysroot/
  2. 重新安装 GRUB2 引导加载程序,其中安装了 install_device 块设备:

    sh-4.2# /sbin/grub2-install install_device
    重要

    如果满足以下所有条件,运行 grub2-install 命令可能会导致机器无法启动:

    • 系统是带有可扩展固件接口(EFI)的 AMD64 或 Intel 64。
    • 启用了安全引导。

    运行 grub2-install 命令后,您无法引导带有可扩展固件接口(EFI)以及启用了安全引导的 AMD64 或 Intel 64 系统。此问题的出现是因为 grub2-install 命令会安装一个未签名的 GRUB2 镜像,该镜像可直接引导,而不使用 shim 应用程序。系统引导时,shim 应用程序会验证镜像签名,如果没有找到,则无法引导系统。

  3. 重启系统。

G.10.4. 使用 RPM 添加或删除驱动

引导系统时,缺少或有故障的驱动程序会导致问题。救援模式提供了一个环境,您可以在其中添加或删除驱动程序,即使系统无法引导。建议您尽可能使用 RPM 软件包管理器来删除发生故障的驱动,或添加已更新或丢失的驱动。使用以下步骤添加或删除驱动程序。

重要

当您从驱动程序磁盘安装驱动时,驱动盘会更新系统中的所有 initramfs 镜像来使用这个驱动程序。如果驱动出现问题导致系统无法引导,您就无法依赖另一个 initramfs 镜像引导系统。

G.10.4.1. 使用 RPM 添加驱动程序

使用此流程添加驱动程序。

先决条件

  • 引导至救援模式。
  • 您已经以读写模式挂载安装系统。

流程

  1. 可以使用包含驱动的软件包。例如,挂载 CD 或 USB 闪存,并将 RPM 软件包复制到您在 /mnt/sysroot/ 下选择的位置,例如:/mnt/sysroot/root/drivers/
  2. 将根目录改为 /mnt/sysroot/

    sh-4.2# chroot /mnt/sysroot/
  3. 使用 rpm -ivh 命令安装驱动软件包。例如,运行以下命令从 /root/drivers/ 中安装 xorg-x11-drv-wacom 驱动软件包:

    sh-4.2# rpm -­ivh /root/drivers/xorg-x11-drv-wacom-0.23.0-6.el7.x86_64.rpm
    注意

    此 chroot 环境中的 /root/drivers/ 目录是初始救援环境中的 /mnt/sysroot/root/drivers/ 目录。

  4. 退出 chroot 环境:

    sh-4.2# exit

G.10.4.2. 使用 RPM 删除驱动程序

使用此流程删除驱动程序。

先决条件

  • 引导至救援模式。
  • 您已经以读写模式挂载安装系统。

流程

  1. 将根目录改为 /mnt/sysroot/ 目录:

    sh-4.2# chroot /mnt/sysroot/
  2. 使用 rpm -e 命令删除驱动软件包。例如,要删除 xorg-x11-drv-wacom 驱动程序软件包,请运行:

    sh-4.2# rpm -e xorg-x11-drv-wacom
  3. 退出 chroot 环境:

    sh-4.2# exit

    如果由于某些原因而无法删除有问题的驱动程序,您可以将驱动程序列入黑名单,以便在引导时不能将其载入。

  4. 当您完成添加和删除驱动程序后,重启该系统。