A.3. 安装后进行故障排除
以下部分中的故障排除信息在安装后诊断可能会有帮助。以下部分适用于所有支持的构架。但是,如果某个问题与某个具体构架有关,它会在本节的开头指定。
A.3.1. 无法使用 RAID 卡引导
如果您无法在安装后引导系统,您可能需要重新安装并重新分区您的系统存储。某些 BIOS 类型不支持从 RAID 卡引导。在完成安装并第一次重启系统后,基于文本的屏幕会显示引导装载程序提示(如 grub>
)以及闪动的光标。如果情况如此,需要重新对系统进行分区,并将 /boot
分区和引导装载程序移到 RAID 阵列之外。/boot
分区和引导装载程序必须位于同一驱动器中。完成这些更改后,应该可以完成安装并正确引导系统。
A.3.2. 图形引导序列没有响应
当在安装后第一次重启您的系统时,系统在图形引导序列中可能不响应。如果出现这种情况,则需要对系统进行重置。在这种情况下,引导装载程序菜单会被成功显示,但选择任意条目并试图引导系统会导致停止。这通常表示图形化引导序列有问题。要解决这个问题,您必须在引导时暂时修改图形引导,然后永久修改它。
步骤: 禁用图形化引导
-
启动您的系统并等到引导装载程序菜单被显示为止。如果将引导超时时间设定为
0
,按 Esc 键访问它。 - 在引导装载程序菜单中,选择想要引导的条目。在基于 BIOS 的系统中按 Tab 键,或者使用 UEFI 的系统中的 e 键编辑所选输入选项。
-
在选项列表中找到 kernel 行 - 即以关键字 linux 开头的行。在这个行中,找到并删除
rhgb
。 - 按 F10 或者 Ctrl+X 使用编辑选项引导您的系统。
如果系统成功启动,您可以正常登录。然而,如果没有永久禁用图形引导,则必须在每次系统引导时都执行这个步骤。
过程: 永久禁用图形引导
- 登录到您系统中的 root 帐户。
使用 grubby 工具来查找默认的 GRUB2 内核:
# grubby --default-kernel /boot/vmlinuz-4.18.0-94.el8.x86_64
使用 grubby 工具从 GRUB2 配置的默认内核中删除
rhgb
引导选项。例如:# grubby --remove-args="rhgb" --update-kernel /boot/vmlinuz-4.18.0-94.el8.x86_64
-
重启系统。不再使用图形化引导序列。如果您要启用图形化引导序列,请遵循相同的步骤,使用
--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 选项手动设置内存量。
- 启动您的系统并等到引导装载程序菜单被显示为止。如果将引导超时时间设定为 0,按 Esc 键访问它。
- 在引导装载程序菜单中,使用您的光标键突出您想引导的条目,然后在基于 BIOS 的系统上按 Tab 键,或者使用 UEFI 的系统中的 e 键编辑所选条目选项。
在选项列表中找到 kernel 行 - 即以关键字 linux 开头的行。在该行末尾附加以下选项:
mem=xxM
- 将 xx 替换成您使用 MiB 的 RAM 数量。
- 按 F10 或者 Ctrl+X 使用编辑选项引导您的系统。
- 等待系统引导,然后登录。
打开命令行,然后再次执行 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。
流程
-
在文本编辑器,比如 vi 或 nano 中打开
/etc/gdm/custom.conf
配置文件。 在
custom.conf
文件中找到以[xdmcp]
开始的部分。在这个部分,添加以下行:Enable=true
- 保存文件并退出文本编辑器。
重启 X 窗口系统。要做到这一点,您可以重启系统,也可以以根用户身份使用以下命令来重启 GNOME 显示管理器:
# systemctl restart gdm.service
等待登录提示并使用您的用户名和密码登录。X 窗口系统现在是为 XDMCP 配置的。您可以通过在客户工作站上的 X 命令启动远程 X 会话,从另一个工作站(客户端)连接它。例如:
$ X :1 -query address
使用远程 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. 引导至救援模式
使用这个步骤引导至救援模式。
流程
- 使用最小引导介质或者完整安装 DVD 或者 USB 驱动器引导该系统,并等待显示引导菜单。
-
在引导菜单中,选择 Troubleshooting > Rescue a Red Hat Enterprise Linux system 选项,或者在引导命令行中添加
inst.rescue
选项。要进入引导命令行,在基于 BIOS 的系统中按 Tab 键;或在使用 UEFI 的系统中按 e 键。 可选: 如果您的系统需要驱动程序磁盘中提供的第三方驱动程序才能引导,请将
inst.dd=driver_name
附加到引导命令行:inst.rescue inst.dd=driver_name
可选: 如果作为 Red Hat Enterprise Linux 发行本一部分的某个驱动阻止系统引导,将
modprobe.blacklist=
选项附加到引导命令行中:inst.rescue modprobe.blacklist=driver_name
按 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,文件系统将不会被挂载。选择 1 来继续。系统进入救援模式后,会在 VC(虚拟控制台)1 和 VC 2 中出现提示。使用
Ctrl+Alt+F1
组合键访问 VC 1 和Ctrl+Alt+F2
访问 VC 2:sh-4.2#
即使挂载了您的文件系统,救援模式中的默认 root 分区是一个临时的 root 分区,而不是正常用户模式(
multi-user.target
或者graphical.target
)中的文件系统 root 分区。如果您选择要挂载文件系统,并且成功挂载,您可以通过执行以下命令将救援模式的 root 分区变为您文件系统的 root 分区:sh-4.2# chroot /mnt/sysimage
如果您需要运行命令,比如
rpm
,这就很有用,这些命令要求您的 root 分区被挂载为/
。要退出 chroot 环境,输入 exit 来返回提示符。如果选择 3,仍可尝试在救援模式中手动挂载分区或者 LVM2 逻辑卷,方法是创建一个目录,如
/directory/
,并输入以下命令:sh-4.2# mount -t xfs /dev/mapper/VolGroup00-LogVol02 /directory
在以上命令中,
/directory/
是您创建的目录,/dev/mapper/VolGroup00-LogVol02
是要挂载的 LVM2 逻辑卷。如果分区类型不是 XFS,使用正确的类型(比如 ext4)替换 xfs 字符串。如果不知道所有物理分区的名称,使用以下命令列出它们:
sh-4.2# fdisk -l
如果不知道所有 LVM2 物理卷、卷组或者逻辑卷的名称,使用
pvdisplay
、vgdisplay 或
lvdisplay
命令。
A.3.8.2. 在救援模式中使用 SOS 报告
sosreport
命令行工具会收集配置和诊断信息,如运行的内核版本、载入的模块以及系统和服务配置文件。程序输出保存在 /var/tmp/
目录中的 tar 归档中。sosreport
有助于分析系统错误和故障排除。使用这个步骤捕获救援模式中的 sosreport
输出结果。
先决条件
- 引导至救援模式。
-
您已经以读写模式挂载了安装的系统
/(root)
分区。 - 已就您的问题单联系了红帽支持团队,并已获得了一个问题单号。
流程
将根目录改为
/mnt/sysimage/
目录:sh-4.2# chroot /mnt/sysimage/
执行
sosreport
生成带有系统配置和诊断信息的归档文件:sh-4.2# sosreport
重要sosreport
会提示您输入您的名称以及您从红帽支持收到的问题单号。只使用字母和数字,添加以下字符或空格可能会导致报告不可用:# % & { } \ < > > * ? / $ ~ ' " : @ + ` | =
可选: 如果想用网络把所生成的归档传输到一个新的位置,需要配置一个网络接口。在这种情况下,使用动态 IP 地址作为不需要其他步骤。但是,在使用静态寻址时,输入以下命令将 IP 地址(如 10.13.153.64/23)分配给网络接口,如 dev eth0:
bash-4.2# ip addr add 10.13.153.64/23 dev eth0
退出 chroot 环境:
sh-4.2# exit
将所生成的存档保存在一个新位置以便进行访问:
sh-4.2# cp /mnt/sysimage/var/tmp/sosreport new_location
要通过网络传输归档,使用
scp
实用程序:sh-4.2# scp /mnt/sysimage/var/tmp/sosreport username@hostname:sosreport
其它资源
- 有关 sosreport 的常规信,请查看 sosreport 是什么以及如何在 Red Hat Enterprise Linux 中创建?
- 有关在救援模式中使用 sosreport 的详情,请参考 如何在救援环境中生成 sosreport。
- 有关将 sosreport 生成到 /tmp 以外的不同位置的信息,请参阅如何把 sosreport 写入另一个位置?。
- 有关手动收集 sosreport 的详情,请参考 sosreport 失败。我应该提供什么数据?
A.3.8.3. 重新安装 GRUB2 引导装载程序
在某些情况下,GRUB2 引导装载程序被错误地删除、损坏或者被其他操作系统替代。使用这个步骤在主引导记录中重新安装 GRUB2。
先决条件
- 引导至救援模式。
-
您已经以读写模式挂载了安装的系统
/(root)
分区。
流程
更改根分区:
sh-4.2# chroot /mnt/sysimage/
重新安装 GRUB2 引导装载程序,其中
install_device
是引导设备,通常为/dev/sda
:sh-4.2# /sbin/grub2-install install_device
- 重启系统。
A.3.8.4. 使用 RPM 添加或删除驱动
缺少驱动程序或者驱动程序无法正常工作会在引导系统时出现问题。救援模式提供 一 个环境,您可以在其中添加或删除驱动程序,即使系统无法引导也 一 样。建议您尽可能使用 RPM 软件包管理器来删除发生故障的驱动,或添加已更新或丢失的驱动。使用以下步骤添加或删除驱动程序。
当您从驱动程序磁盘安装驱动时,驱动盘会更新系统中的所有 initramfs
镜像来使用这个驱动程序。如果驱动出现问题导致系统无法引导,您就无法依赖另一个 initramfs
镜像引导系统。
步骤: 使用 RPM 添加驱动程序
使用此流程添加驱动程序。
先决条件
- 引导至救援模式。
您已经以读写模式挂载安装系统。
-
可以使用包含驱动的软件包。例如: 挂载 CD 或者 USB 闪存驱动器并将 RPM 软件包复制到
/mnt/sysimage/
下您选择的位置,例如:/mnt/sysimage/root/drivers/
。 将根目录改为
/mnt/sysimage/
:sh-4.2# chroot /mnt/sysimage/
使用
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/
目录。退出 chroot 环境:
sh-4.2# exit
-
可以使用包含驱动的软件包。例如: 挂载 CD 或者 USB 闪存驱动器并将 RPM 软件包复制到
步骤: 使用 RPM 移除驱动程序
使用此流程删除驱动程序。
先决条件
- 引导至救援模式。
您已经以读写模式挂载安装系统。
将根目录改为
/mnt/sysimage/
目录:sh-4.2# chroot /mnt/sysimage/
使用
rpm -e
命令删除驱动软件包。例如,要删除xorg-x11-drv-wacom
驱动程序软件包,请运行:sh-4.2# rpm -e xorg-x11-drv-wacom
退出 chroot 环境:
sh-4.2# exit
如果由于某种原因无法删除有问题的驱动,可以将该驱动列入黑名单,使其不会在引导时加载。
- 当您完成添加和删除驱动程序后,重启该系统。
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 节 “网络引导选项”。
为了尽快向用户提供最新的信息,本文档可能会包括由机器自动从英文原文翻译的内容。如需更多信息,请参阅此说明。