附录 A. 故障排除

以下部分论述了在诊断安装过程不同阶段问题时可能会有帮助的各种故障排除信息。

A.1. 在安装过程的开始进行故障排除

以下部分中的故障排除信息在诊断安装过程开始时可能会有帮助。以下部分适用于所有支持的构架。但是,如果某个问题与某个具体构架有关,它会在本节的开头指定。

A.1.1. Dracut

Dracut 是一个在 Linux 操作系统引导过程中管理 initramfs 镜像的工具。dracut emergency shell 是一个互动模式,可在载入 initramfs 镜像时启动。您可以从 dracut emergency shell 运行基本的故障排除命令。如需更多信息,请参阅 dracut man page 中的 故障排除 一节。

A.1.2. 使用安装日志文件

出于调试目的,安装程序会在 /tmp 目录下的文件中记录安装动作。这些日志文件在下表中列出。

表 A.1. 安装过程中生成的日志文件

日志文件内容

/tmp/anaconda.log

常规消息。

/tmp/program.log

在安装过程中运行的所有外部程序。

/tmp/storage.log

扩展的存储模块信息。

/tmp/packaging.log

yum 和 rpm 软件包安装信息。

/tmp/dbus.log

安装程序模块使用的 dbus 会话的信息。

/tmp/ifcfg.log

有关网络脚本的信息。

/tmp/sensitive-info.log

不是其他日志的 一 部分且没有复制到安装的系统中的配置信息。

/tmp/syslog

与硬件相关的系统信息。

如果安装失败,则会将信息合并到 /tmp/anaconda-tb-identifier 中,其中 identifier 是一个随机字符串。成功安装后,这些文件会复制到已安装系统的 /var/log/anaconda/ 目录下。但是,如果安装不成功,或者如果在引导安装系统时使用了 inst.nosave=allinst.nosave=logs 选项,则这些日志只会存在于安装程序的 RAM 磁盘中。这意味着日志不会被永久保存,并在系统关闭时丢失。要永久保存它们,请将文件复制到网络中的另 一 个系统中,或者将其复制到挂载的存储设备中,比如 USB 闪存驱动器。

A.1.2.1. 创建预安装日志文件

使用这个步骤设置 inst.debug 选项在安装过程启动前创建日志文件。例如,这些日志文件包含当前的存储配置。

先决条件

  • 显示 Red Hat Enterprise Linux 引导菜单。

流程

  1. 从引导菜单中选择 Install Red Hat Enterprise Linux 选项。
  2. 在基于 BIOS 的系统中按 Tab 键,或使用 UEFI 的系统中的 e 键编辑所选引导选项。
  3. inst.debug 附加到选项中。例如:

    vmlinuz ... inst.debug
  4. Enter 键。在安装程序启动前,系统将预安装日志文件保存在 /tmp/pre-anaconda-logs/ 目录中。
  5. 要访问日志文件,请切换到控制台。
  6. 进入 /tmp/pre-anaconda-logs/ 目录:

    # cd /tmp/pre-anaconda-logs/

    其它资源

A.1.2.2. 将安装日志文件传送到 USB 驱动器中

使用这个步骤将安装日志文件传送到 USB 驱动器中。

先决条件

  • 在使用此步骤前备份 USB 驱动器中的所有数据。
  • 已登录到 root 帐户,并可访问安装程序的临时文件系统。

流程

  1. Ctrl + Alt + F2 访问您要安装的系统的 shell 提示。
  2. 将 USB 闪存驱动器连接到该系统,并运行 dmesg 命令:

    # dmesg

    此时会显示列出所有最新事件的日志。在这个日志的末尾会显示一组信息。例如:

    [ 170.171135] sd 5:0:0:0: [sdb] Attached SCSI removable disk
  3. 备注连接的设备名称。在上例中它是 sdb
  4. 进入 /mnt 目录并生成作为 USB 驱动器挂载对象的新目录。这个示例使用 usb:

    # mkdir usb
  5. 将 USB 闪存驱动器挂载到新创建的目录中。在大多数情况下,您不想要挂载整个驱动器,而只需要挂载一个分区。不要使用 sdb 名称,使用您想要将日志文件写入的分区名称。本例中使用了 sdb1 名称:

    # mount /dev/sdb1 /mnt/usb
  6. 通过访问并列出它的内容确认您挂载了正确的设备和分区:

    # cd /mnt/usb
    # ls
  7. 将日志文件复制到挂载的设备中。

    # cp /tmp/*log /mnt/usb
  8. 卸载 USB 闪存驱动器。如果您收到目标忙碌的错误信息,请将工作目录改为挂载 之外(例如: /)。

    # umount /mnt/usb

A.1.2.3. 通过网络传输安装日志文件

使用以下步骤通过网络传输安装日志文件。

先决条件

  • 已登录到 root 帐户,并可访问安装程序的临时文件系统。

流程

  1. Ctrl + Alt + F2 访问您要安装的系统的 shell 提示。
  2. 切换到日志文件所在的 /tmp 目录:

    # cd /tmp
  3. 使用 scp 命令将日志文件复制到网络中的另一个系统中:

    # scp *log user@address:path
    1. 使用目标系统中的有效用户名替换 user, address 为目标系统地址或者主机名,使用您要保存日志文件的目录路径替换 path。例如: 如果您要在 IP 地址 192.168.0.122 系统中以 john 身份登录,并将日志文件放在该系统的 /home/john/logs/ 目录下,使用以下命令:

      # scp *log john@192.168.0.122:/home/john/logs/

      当第 一 次连接到目标系统时,SSH 客户端会要求您确认远程系统的指纹正确且您要继续:

      The authenticity of host '192.168.0.122 (192.168.0.122)' can't be established.
      ECDSA key fingerprint is a4:60:76:eb:b2:d0:aa:23:af:3d:59:5c:de:bb:c4:42.
      Are you sure you want to continue connecting (yes/no)?
    2. 输入 yes 并按 Enter 继续。提示时提供一个有效的密码。将文件传送到目标系统的指定目录。

A.1.3. 使用 Memtest86 应用程序检测内存故障

内存失败(RAM)模块可能会导致系统意外失败。在某些情况下,内存错误可能只会导致特定软件组合出错。因此,应该在安装 Red Hat Enterprise Linux 前测试您的系统内存。

注意

Red Hat Enterprise Linux 只包括用于 BIOS 系统的 Memtest86+ 内存测试程序。目前不支持 UEFI 系统。

A.1.3.1. 运行 Memtest86

在安装 Red Hat Enterprise Linux 前,运行 Memtest86 程序测试您的系统是否有内存问题。

先决条件

  • 您已进入 Red Hat Enterprise Linux 引导菜单。

流程

  1. 在 Red Hat Enterprise Linux 引导菜单中选择 Troubleshooting > Run a memory test。显示 Memtest86 应用程序窗口并立即开始测试。默认情况下,Memtest86 会在每次通过中执行十次测试。第一次通过完成后,会在窗口的下部显示一条信息,告知您当前状态。另一个通过会自动启动。

    如果 Memtest86+ 检测到错误,则会在窗口的中央窗格中显示该错误,并以红色显示。该消息包括详细的信息,如哪 一 个测试发现的问题、失败的内存位置等。在大多数情况下,成功通过所有 10 个测试就足以确认您的 RAM 状态良好。然而,在很少情况下,第 一 次通过时没有检测到的错误可能会在后续的通过中出现。要在重要的系统中执行完整的测试,请运行 一 夜时间或几天时间完成多次测试。

    注意

    完成一次 Memtest86+ 通过所需的时间根据您的系统配置(特别是 RAM 大小和速度)的不同而有所不同。例如,在 2 GiB DDR2 内存 667 MHz 的系统中,单一通过需要 20 分钟完成。

  2. 可选: 按照屏幕上的说明访问 Configuration 窗口并指定不同的配置。
  3. 要停止测试并重新引导计算机, 按 Esc 键。

其它资源

A.1.4. 校验引导介质

校验 ISO 镜像可帮助避免安装期间有时会遇到的问题。这些源包括保存在硬盘或者 NFS 服务器中的 DVD 和 ISO 镜像。在使用这个步骤安装 Red Hat Enterprise Linux 前,请先测试基于 ISO 安装源的完整性。

先决条件

  • 您已进入 Red Hat Enterprise Linux 引导菜单。

流程

  1. 在引导菜单中选择 Test this media & install Red Hat Enterprise Linux 8.1 来测试引导介质。
  2. 引导过程会测试该介质,并高亮显示任何存在的问题。
  3. 可选: 在引导命令行中附加 rd.live.check 来启动验证过程。

A.1.5. 安装过程中的控制台和日志记录

Red Hat Enterprise Linux 安装程序使用 tmux 终端多路复选器显示和控制主界面外的几个窗口。这些窗口有 一 个不同的目的; 它们显示几个不同的日志,它们可用于在安装过程中进行故障排除。其中一个窗口提供带有 root 权限的互动 shell 提示符,除非使用一个引导选项或一个 Kickstart 命令特别禁用了这个提示符。

注意

一般来说,除非需要诊断安装问题,不需要离开默认的图形安装环境。

终端多路器在虚拟控制台 1 中运行。要从实际安装环境切换到 tmux,按Ctrl+Alt+F1。要回到在虚拟控制台 6 中运行的主安装界面,按 Ctrl+Alt+F6

注意

如果选择文本模式安装,会在虚拟控制台 1(tmux)中启动,切换到控制台 6 将打开 shell 提示符而不是图形界面。

运行 tmux 的控制台有五个可用的窗口; 下表中描述了它们的内容以及键盘快捷键。请注意,键盘快捷键有两个部分:首先按 Ctrl+b 键,然后释放这两个键,再按您想要使用的窗口的数字键。

您还可以使用 Ctrl+b nAlt+ TabCtrl+b p 切换到下一个或前一个 tmux 窗口。

表 A.2. 可用的 tmux 窗口

快捷键内容

Ctrl+b 1

安装程序主窗口。包含基于文本的提示(在文本模式安装或者使用 VNC 直接模式),以及 一 些调试信息。

Ctrl+b 2

root 权限的互动 shell 提示符。

Ctrl+b 3

安装日志; 显示信息保存在 /tmp/anaconda.log 中。

Ctrl+b 4

存储日志; 显示与存储设备和配置相关的消息,保存在 /tmp/storage.log 中。

Ctrl+b 5

程序日志; 显示安装过程中执行的实用程序的信息,保存在 /tmp/program.log 中。

A.1.6. 保存屏幕截屏

您可以在图形安装的任意时刻按 Shift+Print Screen 键对当前屏幕进行截屏。截屏被保存到 /tmp/anaconda-screenshots 中。

A.1.7. 恢复被中断的下载

您可以使用 curl 命令恢复中断的下载。

先决条件

  • 您已导航到红帽客户门户网站的 产品下载 部分,网址为 https://access.redhat.com/downloads,并选择了所需的变体、版本和架构。
  • 您右键点击所需 ISO 文件,并选择 Copy Link Location 将 ISO 镜像文件的 URL 复制到您的剪贴板。

流程

  1. 从新链接下载该 ISO 镜像。添加 --continue-at 选项以自动恢复下载:

    $ curl --output directory-path/filename.iso 'new_copied_link_location' --continue-at -
  2. 使用 sha256sum 等 checksum 程序在下载完成后验证镜像文件的完整性:

    $ sha256sum rhel-8.1-x86_64-dvd.iso
    			`85a...46c rhel-8.1-x86_64-dvd.iso`

    将输出与 Red Hat Enterprise Linux 产品下载网页中提供的 checksum 进行比较。

例 A.1. 恢复被中断的下载

以下是部分下载的 ISO 镜像的 curl 命令示例:

$ curl --output _rhel-8.1-x86_64-dvd.iso 'https://access.cdn.redhat.com//content/origin/files/sha256/85/85a...46c/rhel-8.1-x86_64-dvd.iso?_auth=141...963' --continue-at -

A.1.8. 无法引导至图形安装

有些显示卡会在引导到 Red Hat Enterprise Linux 图形化安装程序时遇到问题。如果安装程序没有使用默认设置运行,它会尝试在较低分辨率模式中运行。如果失败,安装程序会尝试在文本模式中运行。有 一 些可能的解决方案可以解决显示的问题,大多数解决方法都包括指定自定义的引导选项。如需更多信息,请参阅 第 D.3 节 “控制台引导选项”

表 A.3. 解决方案

解决方案描述

使用基本的图形模式

您可以尝试使用基本图形驱动程序执行安装。要做到这一点,在引导菜单中选 Troubleshooting > Install Red Hat Enterprise Linux 8.1 in basic graphics mode,或者编辑安装程序的引导选项,并在命令行的最后附加 inst.xdriver=vesa

手动指定显示分辨率

如果安装程序无法检测到屏幕分辨率,您可以覆盖自动探测并手动指定。要做到这一点,请在引导菜单中附加 inst.resolution=x 选项,其中 x 是您的显示分辨率,例如: 1024x768。

使用另一个视频驱动程序

您可以尝试指定自定义的视频驱动程序,覆盖安装程序的自动检测。要指定驱动程序,使用 inst.xdriver=x 选项,其中 x 是您要使用的设备驱动程序(例如: nouveau)*。

使用 VNC 执行安装

如果以上选项失败,您可以使用虚拟网络计算(VNC)协议使用单独的系统通过网络访问图形安装。有关使用 VNC 安装的详情,请查看执行高级 RHEL 安装中的使用 VNC 执行远程 RHEL 安装 部分。

* 如果指定自定义视频驱动程序解决了您的问题,请在 https://bugzilla.redhat.comanaconda 组件中报告一个错误。安装程序应该可以自动检测你的硬件并使用适当的驱动程序而无需干预。


为了尽快向用户提供最新的信息,本文档可能会包括由机器自动从英文原文翻译的内容。如需更多信息,请参阅此说明。