A.3. 安装后进行故障排除

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

A.3.1. 无法使用 RAID 卡引导

如果您无法在安装后引导系统,您可能需要重新安装并重新分区您的系统存储。某些 BIOS 类型不支持从 RAID 卡引导。在完成安装并第一次重启系统后,基于文本的屏幕会显示引导装载程序提示(如 grub>)以及闪动的光标。如果情况如此,需要重新对系统进行分区,并将 /boot 分区和引导装载程序移到 RAID 阵列之外。/boot 分区和引导装载程序必须位于同一驱动器中。完成这些更改后,应该可以完成安装并正确引导系统。

A.3.2. 图形引导序列没有响应

当在安装后第一次重启您的系统时,系统在图形引导序列中可能不响应。如果出现这种情况,则需要对系统进行重置。在这种情况下,引导装载程序菜单会被成功显示,但选择任意条目并试图引导系统会导致停止。这通常表示图形化引导序列有问题。要解决这个问题,您必须在引导时暂时修改图形引导,然后永久修改它。

步骤: 禁用图形化引导

  1. 启动您的系统并等到引导装载程序菜单被显示为止。如果将引导超时时间设定为 0,按 Esc 键访问它。
  2. 在引导装载程序菜单中,选择想要引导的条目。在基于 BIOS 的系统中按 Tab 键,或者使用 UEFI 的系统中的 e 键编辑所选输入选项。
  3. 在选项列表中找到 kernel 行 - 即以关键字 linux 开头的行。在这个行中,找到并删除 rhgb
  4. F10 或者 Ctrl+X 使用编辑选项引导您的系统。

如果系统成功启动,您可以正常登录。然而,如果没有永久禁用图形引导,则必须在每次系统引导时都执行这个步骤。

过程: 永久禁用图形引导

  1. 登录到您系统中的 root 帐户。
  2. 使用 grubby 工具来查找默认的 GRUB2 内核:

    # grubby --default-kernel
    /boot/vmlinuz-4.18.0-94.el8.x86_64
  3. 使用 grubby 工具从 GRUB2 配置的默认内核中删除 rhgb 引导选项。例如:

    # grubby --remove-args="rhgb" --update-kernel /boot/vmlinuz-4.18.0-94.el8.x86_64
  4. 重启系统。不再使用图形化引导序列。如果您要启用图形化引导序列,请遵循相同的步骤,使用 --args="rhgb" 参数替换 --remove-args="rhgb"。这会将 rhgb 引导选项恢复到 GRUB2 配置中的默认内核。

A.3.3. X 服务器在登录后失败

X 服务器是 X 窗口系统中的程序,运行在本地机器上,即用户直接使用的计算机。X 服务器处理对图形卡、显示屏和输入设备的所有访问,典型的是那些计算机的键盘和鼠标。X 窗口系统通常称为 X,它是 一 个完整、跨平台和免费的客户端-服务器系统,可在单机和计算机网络上管理 GUI。服务器/客户端模式是一个在两个独立的,但可以连接的程序间进行操作的体系结构,我们称之为客户端和服务器。*

如果 X 服务器在登录后崩溃, 一 个或者多个文件系统可能已经满。要排除这个问题,请执行以下命令:

$ df -h

验证哪个分区是完整的 - 在大多数情况下,问题在于 /home 分区。下面是 df 命令的输出示例:

Filesystem                                  Size  Used Avail Use% Mounted on
devtmpfs                                    396M     0  396M   0%  /dev
tmpfs                                       411M     0  411M   0%  /dev/shm
tmpfs                                       411M  6.7M  405M   2%  /run
tmpfs                                       411M     0  411M   0%  /sys/fs/cgroup
/dev/mapper/rhel-root                       17G    4.1G  13G   25% /
/dev/sda1                                   1014M  173M 842M  17% /boot
tmpfs                                       83M    20K   83M   1%  /run/user/42
tmpfs                                       83M    84K  83M    1%  /run/user/1000
/dev/dm-4                                   90G    90G    0  100% /home

在这个例子里,您可以看到 /home 分区已满,这会导致失败。删除所有不需要的文件。腾出一些磁盘空间后,使用 startx 命令启动 X。有关 df 的额外信息以及对可用选项的解释,比如在本示例中使用的 -h 选项,请参见 df(1)手册 页。

*Source: http://www.linfo.org/x_server.html

A.3.4. 内存不被识别

在某些情况下,内核无法识别所有内存(RAM),这会导致系统使用比所安装的内存少的内存。您可以使用 free -m 命令找出正在使用多少 RAM。如果内存总量不匹配您的预期,您可能至少有 一 个内存模块出现问题。在基于 BIOS 的系统上,您可以使用 Memtest86+ 工具测试您的系统内存。

有些硬件配置有系统 RAM 保留的 一 部分,因此该系统无法使用它。有些笔记本电脑使用集成的显存卡为 GPU 保留 一 部分内存。例如: 内存 4 GiB 的笔记本电脑和整合的 Intel 显卡大约显示了可用内存的 3.7 GiB。另外,在大多数 Red Hat Enterprise Linux 系统中默认启用 kdump 崩溃内核转储机制,可在主内核失败时为次内核保留 一 些内存。使用 free 命令时,这个预留的内存不会被显示为可用的。

步骤: 手动配置内存

使用 mem= kernel 选项手动设置内存量。

  1. 启动您的系统并等到引导装载程序菜单被显示为止。如果将引导超时时间设定为 0,按 Esc 键访问它。
  2. 在引导装载程序菜单中,使用您的光标键突出您想引导的条目,然后在基于 BIOS 的系统上按 Tab 键,或者使用 UEFI 的系统中的 e 键编辑所选条目选项。
  3. 在选项列表中找到 kernel 行 - 即以关键字 linux 开头的行。在该行末尾附加以下选项:

    mem=xxM
  4. xx 替换成您使用 MiB 的 RAM 数量。
  5. F10 或者 Ctrl+X 使用编辑选项引导您的系统。
  6. 等待系统引导,然后登录。
  7. 打开命令行,然后再次执行 free -m 命令。如果命令显示的 RAM 总量与您的预期相符,请在 /etc/default/grub 文件中的 GRUB_CMDLINE_LINUX 行后附加以下行以使更改持久:

    # grub2-mkconfig --output=/boot/grub2/grub.cfg

A.3.5. 系统显示信号 11 错误

信号 11 错误,通常被称为分段错误,意思是程序访问了没有为其分配的内存位置。安装的某个软件中有一个程序错误会导致信号 11 错误,或者硬件出现问题。如果您在安装过程中收到 一 个信号 11 错误,请验证您是否使用最新的安装镜像,并提示安装程序验证它们,以确定它们不会被损坏。如需更多信息,请参阅 第 A.1.4 节 “校验引导介质”

导致信号 11 错误的常见原因是安装介质有问题(比如光盘有损害)。建议在每次安装前校验安装介质的完整性。有关获取最新安装介质的详情,请参考 第 2.6 节 “下载安装 ISO 镜像”

要在安装启动前执行介质检查,请在引导菜单中附加 rd.live.check 引导选项。如果您执行介质检查时没有出错信息,且您仍会遇到分段错误,这通常表示您的系统遇到硬件错误。在这种情况下,这个问题最可能存在于系统的内存(RAM)中。即使您之前在同 一 计算机中使用不同操作系统,但不会出现任何错误,这也是个问题。

注意

AMD 和 Intel 64 位和 64 位 ARM 架构: 在基于 BIOS 的系统上,您可以使用安装介质中的 Memtest86+ 内存测试模块对系统内存进行彻底测试。如需更多信息,请参阅 第 A.1.3 节 “使用 Memtest86 应用程序检测内存故障”

其他可能的原因不在本文档讨论范围内。查看硬件厂商的文档,并参阅红帽硬件兼容性列表,地址为 https://access.redhat.com/ecosystem/search/#/category/Server

A.3.6. 无法从网络存储空间 IPL

注意

这个问题只针对于 IBM Power 系统。

如果在试图从网络存储空间(*NWSSTG)中执行 IPL 时遇到困难,这可能是因为缺少了 PReP 分区。在这种情况下,您必须重新安装该系统并在分区阶段或 Kickstart 文件中创建这个分区。

A.3.7. 使用 XDMCP

有些情况下,您安装了 X 窗口系统并希望使用图形登录管理器登录到 Red Hat Enterprise Linux。使用这个步骤启用 X 显示管理器控制协议(XDMCP),并从任何与 X 兼容的客户端(如 一 个通过网络连接的工作站或 X11 终端)远程登录到桌面环境。

注意

Wayland 协议不支持 XDMCP。如需更多信息,请参阅在 RHEL 8 中使用桌面环境

注意

这个问题适用于 IBM Z。

流程

  1. 在文本编辑器,比如 vinano 中打开 /etc/gdm/custom.conf 配置文件。
  2. custom.conf 文件中找到以 [xdmcp] 开始的部分。在这个部分,添加以下行:

    Enable=true
  3. 保存文件并退出文本编辑器。
  4. 重启 X 窗口系统。要做到这一点,您可以重启系统,也可以以根用户身份使用以下命令来重启 GNOME 显示管理器:

    # systemctl restart gdm.service
  5. 等待登录提示并使用您的用户名和密码登录。X 窗口系统现在是为 XDMCP 配置的。您可以通过在客户工作站上的 X 命令启动远程 X 会话,从另一个工作站(客户端)连接它。例如:

    $ X :1 -query address
  6. 使用远程 X11 服务器的主机名替换 address。该命令使用 XDMCP 连接到远程 X11 服务器,并在 X11 服务器系统的 display :1 中显示远程图形登录屏幕(通常使用 Ctrl-Alt-F8可访问)。您还可以使用一个嵌套的 X11 服务器来访问远程桌面会话。它还在您当前的 X11 会话的一个窗口中打开远程桌面。您可以使用 Xnest 在本地 X11 会话中打开远程桌面。例如,使用以下命令运行 Xnest,用远程 X11 服务器的主机名替换地址:

    $ Xnest :1 -query address

    有关 XDMCP 的详情,请参考 X 窗口系统文档,地址为 http://www.x.org/releases/X11R7.6/doc/libXdmcp/xdmcp.html

A.3.8. 使用救援(rescue)模式

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

注意

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

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

重要

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

A.3.8.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/sysimage/. 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/sysimage/ 目录下。如果挂载分区失败,则会收到通知。如果选择 2,它会尝试将文件系统挂载到 /mnt/sysimage 目录下,但使用只读模式。如果选择 3,文件系统将不会被挂载。

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

    sh-4.2#
  7. 即使挂载了您的文件系统,救援模式中的默认 root 分区是一个临时的 root 分区,而不是正常用户模式(multi-user.target 或者 graphical.target)中的文件系统 root 分区。如果您选择要挂载文件系统,并且成功挂载,您可以通过执行以下命令将救援模式的 root 分区变为您文件系统的 root 分区:

    sh-4.2# chroot /mnt/sysimage

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

  8. 如果选择 3,仍可尝试在救援模式中手动挂载分区或者 LVM2 逻辑卷,方法是创建一个目录,如 /directory/,并输入以下命令:

    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 命令。

A.3.8.2. 在救援模式中使用 SOS 报告

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

先决条件

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

流程

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

    sh-4.2# chroot /mnt/sysimage/
  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/sysimage/var/tmp/sosreport new_location
  6. 要通过网络传输归档,使用 scp 实用程序:

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

    其它资源

A.3.8.3. 重新安装 GRUB2 引导装载程序

在某些情况下,GRUB2 引导装载程序被错误地删除、损坏或者被其他操作系统替代。使用这个步骤在主引导记录中重新安装 GRUB2。

先决条件

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

流程

  1. 更改根分区:

    sh-4.2# chroot /mnt/sysimage/
  2. 重新安装 GRUB2 引导装载程序,其中 install_device 是引导设备,通常为 /dev/sda:

    sh-4.2# /sbin/grub2-install install_device
  3. 重启系统。

A.3.8.4. 使用 RPM 添加或删除驱动

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

重要

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

步骤: 使用 RPM 添加驱动程序

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

先决条件

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

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

      sh-4.2# chroot /mnt/sysimage/
    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/sysimage/root/drivers/ 目录。

    4. 退出 chroot 环境:

      sh-4.2# exit

步骤: 使用 RPM 移除驱动程序

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

先决条件

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

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

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

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

      sh-4.2# exit

      如果由于某种原因无法删除有问题的驱动,可以将该驱动列入黑名单,使其不会在引导时加载。

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

A.3.9. ip= boot 选项返回一个错误

使用 ip= 引导选项格式 ip=[ip address],例如 ip=192.168.1.1 返回错误消息 Fatal for argument 'ip=[insert ip here]'\n sorry, unknown value [ip address] refusing to continue

在之前的 Red Hat Enterprise Linux 版本,引导选项的格式为:

--ip=192.168.1.15 --netmask=255.255.255.0 --gateway=192.168.1.254 --nameserver=192.168.1.250 --hostname=myhost1

然而,在 Red Hat Enterprise Linux 8 中,引导选项的格式是:

ip=192.168.1.15::192.168.1.254:255.255.255.0:myhost1::none: nameserver=192.168.1.250

要解决这个问题,使用格式: ip=ip::gateway:netmask:hostname:interface:none,其中:

  • ip 指定客户端的 ip 地址。您可以在方括号中指定 IPv6 地址,例如: [ 2001:DB8::1]
  • gateway 是默认网关。IPv6 地址也被接受。
  • netmask 是要使用的子网掩码。这可以是一个完整的子网掩码,例如: 255.255.255.0 或一个前缀,例如 64
  • hostname 是客户端系统的主机名。这个参数是可选的。

如需更多信息,请参阅 第 D.2 节 “网络引导选项”


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