跳到内容跳到页面导航:上一页 [access key p]/下一页 [access key n]
documentation.suse.com / SUSE Linux Enterprise Server 文档 / 管理指南 / 查错 / 常见问题及其解决方案
适用范围 SUSE Linux Enterprise Server 12 SP4

40 常见问题及其解决方案

本章将描述一系列可能发生的问题及其解决方法。即使您的情况并未精确地列在这里,也可能有足够相似的情况可提供解决您的问题的方法提示。

40.1 查找和收集信息

Linux 报告情况时是很详细的。当您的系统发生问题时,可以从几个位置查看,通常大多数是 Linux 系统的标准日志,有一些是与 SUSE Linux Enterprise Server 系统相关的日志。多数日志文件可以用 YaST(杂项 ›  启动日志)查看。

YaST 可提供支持团队所需的所有系统信息。使用 其他 ›  支持 ,然后选择问题类别。当所有信息都被集合后,将其附加在您的支持请求。

将出现最常检查的日志文件的列表,并附有其典型用途说明。包含 ~ 的路径是指当前用户的用户主目录。

日志文件

描述

~/.xsession-errors

来自当前运行的桌面应用程序的消息。

/var/log/apparmor/

来自 AppArmor 的日志文件,详细信息请参见Part IV, “Confining Privileges with AppArmor

/var/log/audit/audit.log

来自审计的日志文件,用来跟踪对系统的文件、目录或资源的任何访问,并跟踪系统调用。有关详细信息,请参见Part VI, “The Linux Audit Framework

/var/log/mail.*

来自邮件系统的消息。

/var/log/NetworkManager

来自 NetworkManager 的日志文件通过网络连接收集问题

/var/log/samba/

包含 Samba 服务器及客户端日志消息的目录。

/var/log/warn

所有来自内核与系统日志守护程序的消息为警告或更高级别。

/var/log/wtmp

包含当前计算机会话的用户登录记录的二进制文件。可使用 last 查看它。

/var/log/Xorg.*.log

来自 X Window 系统的各种启动和运行时日志文件。在调试失败的 X 启动时,该日志很有用。

/var/log/YaST2/

包含 YaST 操作及其结果的目录。

/var/log/zypper.log

Zypper 的日志文件。

除了日志文件外,您的计算机还可提供关于运行中的系统的信息。请参见表 40.2: /proc 文件系统的系统信息

表 40.2︰ /proc 文件系统的系统信息

文件

描述

/proc/cpuinfo

包含处理器信息,包括处理器类型、制造商、型号和性能。

/proc/dma

显示当前使用的 DMA 通道。

/proc/interrupts

显示正在使用的中断和已使用的中断数量。

/proc/iomem

显示 I/O(输入/输出)内存的状态。

/proc/ioports

显示当时正在使用的 I/O 端口。

/proc/meminfo

显示内存状态。

/proc/modules

显示各个模块。

/proc/mounts

显示当前装入的设备。

/proc/partitions

显示所有硬盘的分区。

/proc/version

显示当前的 Linux 版本。

除了 /proc 文件系统外,Linux 内核还可通过 sysfs 模块(一个内存内的文件系统)导出信息。该模块表示了内核对象及其属性以及关系。有关 sysfs 的更多信息,请参见第 21 章 “使用 udev 进行动态内核设备管理 中 udev 的环境。表 40.3 包含 /sys 下最常见目录的概述。

表 40.3︰ /sys 文件系统的系统信息

文件

描述

/sys/block

包含系统中发现的每个块设备的子目录。通常多数是磁盘类设备。

/sys/bus

包含每个物理总线类型的子目录。

/sys/class

包含按设备功能类型分组的子目录(如图形、网络、打印机等)

/sys/device

包含全局设备层次结构。

Linux 自带了几个用于系统分析和监视的工具。请参见Chapter 2, System Monitoring Utilities以选择在系统诊断中使用的最重要的工具。

以下包含的每个情景都以一个描述问题的标题开头,后跟一两段内容,提供建议的解决方案、解决方案详细信息的参考,以及对其他可能相关的情景的交叉引用。

40.2 安装问题

安装问题是指计算机无法进行安装的情况。一种可能是完全无法进行安装,另一种是无法启动图形安装程序。本节将着重介绍您可能会遇到的一些典型问题,并提供可行的解决方案或针对此类情况的变通方案。

40.2.1 检查媒体

如果您使用 SUSE Linux Enterprise Server 安装媒体时遇到任何问题,请检查安装媒体的完整性。从该媒体引导,然后从引导菜单中选择检查安装媒体。在运行中的系统上,启动 YaST 并选择软件 ›  媒体检查。要检查 SUSE Linux Enterprise Server 媒体,将它插入驱动器中,在 YaST 的媒体检查屏幕中单击启动检查。这可能要花几分钟时间。如果检测到有任何错误,则不应使用此媒体进行安装。媒体问题可能是您在自行刻录媒体时发生的。以较低的速度 (4x) 刻录媒体有助于避免问题。

检查媒体
图 40.1︰ 检查媒体

40.2.2 没有可用于引导的 DVD 驱动器

如果您的计算机没有可引导的 DVD-ROM 驱动器,或者 Linux 不支持您的驱动器,则有几种无需内置 DVD 驱动器便可安装计算机的方法:

使用外置的引导设备

如果您的 BIOS 和安装内核支持,请从外部 DVD 驱动器或 USB 储存设备引导。有关如何创建可引导 USB 储存设备的说明,请参见第 6.2.2 节 “PC (AMD64/Intel 64/ARM AArch64):系统启动”

通过 PXE 进行网络引导

如果计算机没有 DVD 驱动器,但是提供了有效的以太网连接,则可以执行完全基于网络的安装。详情请参见第 10.1.3 节 “通过 VNC 进行远程安装 - PXE 引导和网络唤醒”第 10.1.6 节 “通过 SSH 进行远程安装 - PXE 引导和网络唤醒”

40.2.2.1 外置引导设备

Linux 支持多数的现有 DVD 驱动器。如果系统上没有 DVD 驱动器,仍可能用通过 USB、FireWire 或 SCSI 连接的外部 DVD 驱动器引导系统。这主要取决于 BIOS 与所使用硬件的交互。如果遇到问题,有时执行 BIOS 更新可能会有用。

从 Live CD 安装时,也可以创建用于引导的 Live 闪存盘

40.2.3 从安装媒体引导失败

计算机不从安装媒体引导的一个原因可能是 BIOS 中引导顺序的设置不正确。BIOS 引导顺序必须将 DVD 驱动器设置为第一引导项。否则计算机将尝试从其他媒体引导,通常为硬盘。有关更改 BIOS 引导顺序的指南可在随主板提供的文档中找到,也可以参见以下段落。

BIOS 是实现计算机最基本功能的软件。主板厂商提供专门为他们的硬件设计的 BIOS。通常,只能在特定时间(例如引导计算机时)访问 BIOS 设置。在此初始化阶段,计算机会执行若干项诊断硬件测试。其中一项测试就是内存检查,由内存计数器指示。当显示计数器时,请查找一行(通常在计数器下面,有时也在底部),该行提到要访问 BIOS 设置需要按的键。通常,要按的键是 DelF1Esc。按此键,直到出现 BIOS 设置屏幕。

  1. 使用由引导例程声明的适当键输入 BIOS,然后等待 BIOS 屏幕出现。

  2. 若要更改 AWARD BIOS 中的引导顺序,请查找 BIOS FEATURES SETUP 项。其他制造商可能对该项使用不同的名称,例如 ADVANCED CMOS SETUP。当您找到该项后,将其选中并按 Enter 键确认。

  3. 在所打开的屏幕中,查找名为 BOOT SEQUENCEBOOT ORDER 的子项。按 Page ↑Page ↓ 键来更改设置,直到 DVD 驱动器在最前面。

  4. 通过按 Esc 键离开 BIOS 设置屏幕。若要保存更改,请选择 SAVE & EXIT SETUP 或按 F10 键。若要确认应保存设置,按 Y 键。

过程 40.2︰ 更改 SCSI BIOS(Adaptec 主机适配器)中的引导顺序
  1. CtrlA 打开设置。

  2. 选择磁盘实用程序。现在将显示所连接的硬件组件。

    记下您 DVD 驱动器的 SCSI ID。

  3. Esc 退出菜单。

  4. 打开配置适配器设置。在其他选项下,选择引导设备选项,然后按 Enter 键。

  5. 输入 DVD 驱动器的 ID,然后再次按 Enter 键。

  6. Esc 键两次以返回到 SCSI BIOS 的开始屏幕。

  7. 退出此屏幕,并确认以引导计算机。

不论最终安装将使用何语言及键盘布局,大多数 BIOS 配置都使用美式键盘布局,如下图所示:

美式键盘布局
图 40.2︰ 美式键盘布局

40.2.4 无法引导

某些硬件类型(主要是过旧或非常新的硬件)可能无法安装。此问题往往是由于安装内核中缺少此类硬件的支持或该内核中包含的某些功能(如 ACPI,它仍会在某些硬件上引起问题)而引起的。

如果系统无法使用第一个安装引导屏幕上的标准安装方式进行安装,请尝试使用以下方法:

  1. 将第一张 DVD 留在驱动器中,然后使用 CtrlAltDel 或硬件重设置按钮来重引导计算机。

  2. 在出现引导屏幕时,按 F5 键,使用键盘上的箭头键浏览至无 ACPI,然后按 Enter 键起动引导和安装过程。此选项将禁用对 ACPI 电源管理技术的支持。

  3. 第 6 章 “使用 YaST 进行安装中所述的步骤进行安装。

如果此操作失败,请按照以上步骤继续,但应选择安全设置。此选项将禁用 ACPI 和 DMA 支持。大多数硬件应使用此选项引导。

如果以上两个选项都失败,请使用引导选项提示向安装内核传递支持此硬件类型所需的任何其他参数。关于可用作引导选项的参数的更多信息,请参见 /usr/src/linux/Documentation/kernel-parameters.txt 中的内核文档。

提示
提示:获取内核文档

安装 kernel-source 包以查看内核文档。

在为完成安装执行引导之前,还可以在引导提示下输入其他与 ACPI 相关的内核参数:

acpi=off

此参数禁用计算机上的整个 ACPI 子系统。如果您的计算机无法处理 ACPI 或如果您认为是计算机中的 ACPI 导致问题的产生,则可以使用此参数。

acpi=force

始终启用 ACPI,即使计算机使用的是 2000 年以前的 BIOS。如果除了 acpi=off 之外还设置了此参数,则此参数将启用 ACPI。

acpi=noirq

不要将 ACPI 用于 IRQ 路由。

acpi=ht

只运行足够的 ACPI 来启用超线程。

acpi=strict

降低对不严格遵循 ACPI 规格的平台的容许度。

pci=noacpi

禁用新 ACPI 系统的 PCI IRQ 路由。

pnpacpi=off

在您的 BIOS 设置包含错误的中断或端口时,此选项用于串行或并行问题。

notsc

禁用时戳计数器。此选项可用于解决系统上的计时问题。这是一项新功能,如果看到计算机上有衰退,尤其是时间相关的或甚至完全挂起,此选项值得一试。

nohz=off

禁用 nohz 功能。如果您的计算机挂起,则此选项可能有帮助。否则就没有用处。

一旦确定了正确的参数组合,YaST 会自动将其写入引导加载程序配置中以确保系统下一次能够正确引导。

如果在装载内核或安装过程中出现无法解释的错误,则在引导菜单中选择内存测试以检查内存。如果内存测试返回一个错误,则通常这是硬件错误。

40.2.5 无法启动图形安装程序

在将媒体插入驱动器并重引导计算机之后,出现安装屏幕,但是在选择安装之后,图形安装程序没有启动。

有多种方法可解决此情况:

  • 尝试为安装对话框另选一种屏幕分辨率。

  • 选择文本方式进行安装。

  • 使用图形安装程序进行远程安装(通过 VNC)。

过程 40.3︰ 安装时更改屏幕分辨率
  1. 引导以安装。

  2. F3 键打开一个菜单,从中选择一个较低的安装分辨率。

  3. 选择安装,然后按第 6 章 “使用 YaST 进行安装中所述的步骤进行安装。

过程 40.4︰ 用文本方式进行安装
  1. 引导以安装。

  2. F3,然后选择文本方式

  3. 选择安装,然后按第 6 章 “使用 YaST 进行安装中所述的步骤进行安装。

过程 40.5︰ VNC 安装
  1. 引导以安装。

  2. 在引导选项提示下输入以下文本:

    vnc=1 vncpassword=SOME_PASSWORD

    SOME_PASSWORD 替换为用于 VNC 安装的口令。

  3. 选择安装,然后按 Enter 键启动安装。

    系统未正确启动图形安装例程,而是仍以文本方式继续运行,接着暂停,显示一条消息,其中包含了可通过浏览器界面或 VNC 查看器应用程序访问安装程序的 IP 地址和端口号。

  4. 如果使用浏览器来访问安装程序,请启动浏览器并输入由未来 SUSE Linux Enterprise Server 计算机上的安装例程提供的地址信息,然后按 Enter

    http://IP_ADDRESS_OF_MACHINE:5801

    随后浏览器窗口中将打开一个对话框,提示您输入 VNC 口令。输入口令,然后按第 6 章 “使用 YaST 进行安装中所述的步骤进行安装。

    重要
    重要:跨平台支持

    通过 VNC 安装这一方法可在任意操作系统下的任意浏览器上进行,只要启用了 Java 支持即可。

    看到提示时,提供您的 VNC 查看器的 IP 地址和口令。然后,将打开一个窗口,其中显示了多个安装对话框。照常进行安装。

40.2.6 只能启动简陋的引导屏幕

将媒体插入了驱动器,BIOS 例程结束,但是系统未启动图形引导屏幕。而是启动了一个非常简陋的基于文本的界面。如果计算机的图形内存不足而无法生成图形引导屏幕,则可能发生这种情况。

虽然文本引导屏幕看起来比较简陋,但是它所提供的功能与图形引导屏幕几乎是相同的。

引导选项

与图形界面不同的是,不能使用键盘的鼠标键来选择其他引导选项。文本引导屏幕上的引导菜单提供了一些可在引导提示下输入的关键字。这些关键字与图形版本中提供的选项相对应。输入您的选择,然后按 Enter 起动引导过程。

自定义引导选项

在选择引导选项之后,请在引导提示下输入相应的关键字,或者根据第 40.2.4 节 “无法引导” 中所述输入自定义引导选项。要启动安装过程,请按 Enter 键。

屏幕分辨率

使用功能键 (F1 ... F12) 确定安装的屏幕分辨率。如果需要以文本方式引导,请选择 F3

40.2.7 日志文件

有关安装期间创建的日志文件的详细信息,请参见第 39.5 节 “在安装过程中收集信息”

40.3 引导问题

引导问题是指系统不能正确引导时出现的情况(不能引导到预期的目标和登录屏幕)。

40.3.1 GRUB 2 引导加载程序无法装载

如果硬件运行正常,则可能是由于引导加载程序已损坏而使 Linux 无法在计算机上启动。在这种情况下,需要修复引导加载程序。为此,您需要按第 40.6.2 节 “使用救援系统”中所述启动救援系统,然后根据第 40.6.2.4 节 “修改和重新安装引导加载程序”中的说明操作。

另外,您可以按以下方式使用救援系统来修复引导加载程序。从安装媒体引导计算机。在引导屏幕中,选择更多 › 引导 Linux 系统。使用默认内核选项选择包含已安装的系统和内核的磁盘。

系统引导后,启动 YaST 并切换到系统 › 引导加载程序。确保启用了将通用引导代码写入 MRB 选项,然后按确定。如此会通过重写来修复损坏的引导加载程序,或者安装缺失的引导加载程序。

其他导致计算机无法引导的原因可能与 BIOS 相关:

BIOS 设置

检查与硬盘相关的 BIOS 设置。如果在当前的 BIOS 设置中找不到硬盘本身,GRUB 2 可能就不能启动。

BIOS 引导顺序

请检查您的系统引导顺序中是否包含硬盘。如果未启用硬盘选项,即使系统正确安装,在访问所需的硬盘时仍可能无法引导。

40.3.2 无图形登录

如果计算机能够启动,但是无法引导进入图形登录管理器,则问题可能出在默认的 systemd 目标选项或 X Window 系统的配置上。要检查当前的 systemd 默认目标,请运行命令 sudo systemctl get-default。如果返回的值为 not graphical.target,请运行命令 sudo systemctl isolate graphical.target。如果图形登录屏幕已启动,请登录并启动 YaST ›  系统 ›  服务管理器,然后将默认系统目标设置为图形界面。此后,系统应该能够引导进入图形登录屏幕。

如果即使已引导或者切换到图形目标,图形登录屏幕也不启动,则原因可能是您的桌面或 X Window 软件设置错误或者已损坏。请检验 /var/log/Xorg.*.log 中的日志文件,查找它尝试启动的 X 服务器发出的详细消息。如果桌面在启动期间发生错误,可能会在系统日记中记录错误讯息,您可以使用命令 journalctl 查询该日记(有关详细信息,请参见第 15 章 “journalctl:查询 systemd 日记)。如果这些错误消息指出问题出在 X 服务器中的配置上,请尝试修正这些问题。如果图形系统仍无法启动,请考虑重安装图形桌面。

40.3.3 无法装入 Btrfs 根分区

如果 btrfs 根分区已损坏,请尝试以下选项:

  • 使用 -o recovery 选项装入该分区。

  • 如果不起使用,请在您的根分区上运行 btrfs-zero-log

40.3.4 强制检查根分区

如果根分区损坏,请在引导提示符处使用参数 forcefsck 。这样会将选项 -f (force) 传递给 fsck 命令。

40.4 登录问题

登录问题是指计算机虽然引导到预期的欢迎屏幕或登录提示界面,却拒绝接受用户名和口令,或者虽然接受了用户名和口令,但是行为异常(无法启动图形桌面、发生错误或转到了命令行等)。

40.4.1 有效的用户名和口令组合失败

如果系统配置为使用网络身份验证或目录服务,但出于某些原因无法从为其配置的服务器上检索到结果,通常就会发生此问题。只有作为唯一本地用户的 root 用户仍能登录到这些计算机。以下是计算机看似能够运行但无法正确处理登录的常见原因:

  • 网络出现故障。有关此问题的进一步说明,请转到第 40.5 节 “网络问题”

  • DNS 在当时不起作用(这使得 GNOME 不起作用,并使系统无法向安全服务器发出经验证的请求)。如果是这种情况,则表现为计算机对任何操作的响应都需要极其长的时间。有关该主题的详细信息,请参见第 40.5 节 “网络问题”

  • 如果将系统配置为使用 Kerberos,则系统的本地时间与 Kerberos 服务器时间之间的差异可能超过了可接受的值(通常为 300 秒)。如果 NTP(网络时间协议)未正确地起作用,或者本地 NTP 服务器不起作用,则 Kerberos 身份验证将不再工作,因为该身份验证依赖于整个网络的通用时钟同步。

  • 系统的身份验证配置不正确。请对相关的 PAM 配置文件进行检查以确定是否存在指令输入错误或排序错误。有关 PAM 的其他背景信息及相关配置文件的语法,请参见Chapter 2, Authentication with PAM

  • 主分区是加密的。有关该主题的详细信息,请参见第 40.4.3 节 “登录至加密的主分区失败”

在不涉及外部网络问题的所有情况下,解决方法是将系统重引导到单用户方式并修复配置,然后再次引导到操作方式并重试登录。要引导到单用户方式,请执行以下操作:

  1. 重引导系统。此时将出现引导屏幕,其中显示一个提示。

  2. Esc 退出启动屏幕,并转到 GRUB 2 基于文本的菜单。

  3. B 进入 GRUB 2 编辑器。

  4. 在包含内核参数的行中添加以下参数:

    systemd.unit=rescue.target
  5. F10

  6. 输入 root 的用户名与口令。

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

  8. 在命令行中输入 systemctl isolate graphical.target,以引导进入完全的多用户和网络模式。

40.4.2 有效的用户名和口令不被接受

这是到目前为止用户最常遇到的问题,因为有许多原因可能引起该问题。登录失败可由多种原因造成,取决于您是使用本地用户管理和身份验证,还是使用网络身份验证。

本地用户管理失败可由以下原因造成:

  • 用户可能输入了错误的口令。

  • 用户包含桌面配置文件的主目录已损坏或被写保护。

  • 验证该特定用户的 X Window 系统可能存在问题,尤其是在安装当前版本之前,该用户的主目录已被其他 Linux 分发版使用时。

要找到本地登录失败的原因,请执行如下操作:

  1. 在尝试调试整个身份验证机制之前,请检查用户所记的口令是否正确。如果用户可能记错了口令,请使用“YaST 用户管理”模块更改用户的口令。注意 Caps Lock 键,如果需要请解锁。

  2. root 身份登录,并使用 journalctl -e 检查系统日记,找出登录过程和 PAM 的错误讯息。

  3. 尝试从控制台登录(使用 CtrlAltF1)。如果成功了,则问题不在 PAM 上,因为可以在该计算机上身份验证此用户。尝试找出与 X Window 系统或 GNOME 桌面相关的任何问题。有关更多信息,请参考第 40.4.4 节 “登录成功但 GNOME 桌面发生故障”

  4. 如果用户的主目录被其他 Linux 产品所使用,请将该用户主目录中的 Xauthority 文件删除。使用控制台登录(通过 CtrlAltF1),然后以该用户的身份运行 rm .Xauthority。这样应该可以消除该用户的 X 身份验证问题。然后再次尝试图形登录。

  5. 如果桌面由于配置文件损坏而无法启动,请参见第 40.4.4 节 “登录成功但 GNOME 桌面发生故障”

下面列出了在特定的计算机上对特定用户进行的网络身份验证可能失败的常见原因:

  • 用户可能输入了错误的口令。

  • 用户名存在于计算机的本地身份验证文件中,但同时网络身份验证系统也提供了该用户名,从而引起冲突。

  • 主目录存在,但已损坏或不可用。该目录可能处于写保护状态或位于此刻无法访问的服务器上。

  • 用户无权登录到身份验证系统中的该特定主机。

  • 计算机出于某种原因更改了主机名,而用户无权登录到该主机。

  • 计算机无法访问包含该用户信息的身份验证服务器或目录服务器。

  • 验证该特定用户的 X Window 系统可能存在问题,尤其是在安装当前办法之前,该用户的主目录已被其他 Linux 分发版使用时。

要通过网络身份验证找到登录问题的原因,请执行以下步骤:

  1. 在尝试调试整个身份验证机制之前,请检查用户所记的口令是否正确。

  2. 确定计算机在身份验证时要依赖的目录服务器,并确保计算机在正常运行且与其他计算机正常通讯。

  3. 确定该用户的用户名和口令在其他计算机上是否有效,以确保存在该用户的身份验证数据且已正确分发。

  4. 确定其他用户是否可以登录到该故障计算机。如果其他用户可以正常登录,或 root 可以登录的话,请登录并使用 journalctl -e> 文件检查系统日记。找到与登录尝试相对应的时间戳记,然后确定 PAM 是否生成了任何错误消息。

  5. 尝试从控制台登录(使用 CtrlAltF1)。如果成功,则问题不在用户主目录中的 PAM 或目录服务器上,因为可以在该计算机上验证此用户。尝试找出与 X Window 系统或 GNOME 桌面相关的任何问题。有关更多信息,请参考第 40.4.4 节 “登录成功但 GNOME 桌面发生故障”

  6. 如果用户的主目录被其他 Linux 产品所使用,请将该用户主目录中的 Xauthority 文件删除。使用控制台登录(通过 CtrlAltF1),然后以该用户的身份运行 rm .Xauthority。这样应该可以消除该用户的 X 身份验证问题。然后再次尝试图形登录。

  7. 如果桌面由于配置文件损坏而无法启动,请参见第 40.4.4 节 “登录成功但 GNOME 桌面发生故障”

40.4.3 登录至加密的主分区失败

对于便携式计算机建议使用加密的主分区。如果无法登录到您的便携式计算机,原因通常很简单:您的分区无法解锁。

在引导时,需要输入通行口令来解锁加密的分区。如果不输入它,引导进程继续,但保持分区锁定。

要解锁您的加密分区,请如下操作:

  1. CtrlAltF1 切换到文本控制台。

  2. 成为 root 用户。

  3. 用以下步骤重启动解锁进程:

    systemctl restart home.mount
  4. 输入您的通行口令以解锁加密的分区。

  5. AltF7 退出文本控制台并切换回登录屏幕。

  6. 如常登录。

如果是这种情况,可能您的 GNOME 配置文件已损坏。可能出现的症状包括键盘不起作用、屏幕几何图形变形,甚至整个屏幕变成灰色。而最重要的差别在于其他用户登录时,该计算机能正常运行。那么可能只需将用户的 GNOME 配置目录移到某个新位置,以便使 GNOME 初始化一个新的桌面,这样就能很快地解决此问题。虽然用户不得不重配置 GNOME,但不会丢失任何数据。

  1. CtrlAlt F1 切换到文本控制台。

  2. 用您的用户名登录。

  3. 将用户的 GNOME 配置目录移到某个临时位置:

    mv .gconf  .gconf-ORIG-RECOVER
    mv .gnome2 .gnome2-ORIG-RECOVER
  4. 注销。

  5. 再次登录,但别运行任何应用程序。

  6. 通过以下命令将 ~/.gconf-ORIG-RECOVER/apps/ 目录复制回新的 ~/.gconf 目录,这样就能恢复您的个人应用程序配置数据(包括 Evolution 电子邮件客户端数据):

    cp -a .gconf-ORIG-RECOVER/apps .gconf/

    如果这引起登录问题,则尝试只恢复重要的应用程序数据并重配置其他的应用程序。

40.5 网络问题

系统的许多问题可能都与网络相关,即使初看起来不是这样。例如,系统不允许用户登录可能是某种网络问题造成的。本节介绍一个简单的核对表,您可以使用它来确定任何所遇到的网络问题的原因。

过程 40.6︰ 如何识别网络故障

在检查计算机的网络连接时,请执行如下操作:

  1. 如果使用的是以太网连接,请首先检查硬件。确保您的网络电缆已正确插入计算机和路由器(或集线器等)。以太网连接器旁边的控制灯通常应全部激活。

    如果连接失败,请检查网线在别的计算机上是否正常。如果正常,则可能是网卡引起了该问题。如果您的网络设置中有集线器或交换机,它们也可能有故障。

  2. 如果使用的是无线连接,请检查是否可与其他计算机建立此无线链接。如果没有,请联系无线网络的管理员。

  3. 一旦完成了对基本网络连通性的检查,请尝试找出没有响应的服务。收集设置中所需的所有网络服务器的地址信息。在相应的 YaST 模块中查找这些信息,或者询问您的系统管理员。下面列出了设置中涉及的一些典型网络服务器以及服务中断的症状。

    DNS(名称服务)

    名称服务中断或发生故障会在许多方面影响网络运行。如果本地计算机依赖于任一网络服务器进行身份验证,而这些服务器由于名称解析问题而无法找到,则用户甚至还不能登录。网络中由中断的名称服务管理的计算机将无法看到彼此且不能通信。

    NTP(时间服务)

    NTP 服务发生故障或完全中断可能会影响 Kerberos 身份验证和 X 服务器功能。

    NFS(文件服务)

    如果任何应用程序所需的数据储存在 NFS 装入目录中,则一旦此服务停止或配置错误,应用程序便无法启动或正常运行。最坏的情况是,如果由于 NFS 服务器发生故障而无法找到包含 .gconf 子目录的用户主目录,则该用户主目录所属的用户的个人桌面配置将无法启动。

    Samba(文件服务)

    如果任何应用程序需要的数据储存在有故障的 Samba 服务器上的某个目录中,它便无法启动或正常运行。

    NIS(用户管理)

    如果您的 SUSE Linux Enterprise Server 系统依赖有故障的 NIS 服务器提供用户数据,用户将无法登录此计算机。

    LDAP(用户管理)

    如果您的 SUSE Linux Enterprise Server 系统依赖有故障的 LDAP 服务器提供用户数据,用户将无法登录此计算机。

    Kerberos(身份验证)

    身份验证无法进行,登录至任何计算机都会失败。

    CUPS(网络打印)

    用户无法打印。

  4. 请检查网络服务器是否正在运行并且您的网络设置是否允许您建立连接:

    重要
    重要:限制

    下面介绍的调试步骤只适用于简单的网络服务器/客户端设置,不涉及任何内部路由。假设服务器和客户端都是同一子网的成员,不需要额外的路由。

    1. 使用 ping IP_ADDRESS/HOSTNAME(用服务器的主机名或 IP 地址替换)来检查各台服务器是否正在运行,且能够对网络作出响应。如果此命令成功,表示您所查找的主机在正常运行,并且网络的名称服务配置正确。

      如果 ping 命令失败,同时显示消息目标主机不可访问,则表明您的系统或期望的服务器未正确配置或已宕机。从另一台计算机运行 ping IP addressYOUR_HOSTNAME 命令,来检查是否可连接您的系统。如果可以从其他计算机访问您的计算机,则表明该服务器未运行或未正确配置。

      如果 ping 命令失败且返回 unknown host,则表示名称服务未正确配置或使用的主机名不正确。要对该问题进行进一步的检查,请参见步骤 4.b。如果 ping 命令仍然失败,则可能网卡未正确配置或网络硬件存在故障。

    2. 请使用 host HOSTNAME 来检查您尝试连接的服务器的主机名是否正确地转译为 IP 地址,反之亦然。如果此命令返回了该主机的 IP 地址,则名称服务已在正常运行。如果 host 命令失败,请检查您主机上所有与名称和地址解析相关的网络配置文件:

      /etc/resolv.conf

      此文件用于对当前使用的名称服务器和域进行跟踪。您可手工修改该文件,或者由 YaST 或 DHCP 自动调整。建议采用自动调整。但是,请确保此文件具有以下结构并且所有的网络地址和域名都正确无误:

      search FULLY_QUALIFIED_DOMAIN_NAME
      nameserver IPADDRESS_OF_NAMESERVER

      此文件中可以包含多个名称服务器地址,但是其中必须至少有一个能够对您的主机提供正确的名称解析。如果需要,请使用 YaST 的“网络设置”模块(“主机名/DNS”选项卡)调整此文件。

      如果您的网络连接是通过 DHCP 处理的,请在 YaST 的“网络设置”模块(“主机名/DNS”选项卡)中选择通过 DHCP 设置主机名(可针对所有接口全局设置,也可以逐个接口设置)和通过 DHCP 更新名称服务器和搜索列表,以允许 DHCP 更改主机名和名称服务信息。

      /etc/nsswitch.conf

      此文件告诉 Linux 到何处查找名称服务信息。它应显示为:

       ...
      hosts: files dns
      networks: files dns
      ...

      dns 条目是必需的。它告诉 Linux 要使用外部名称服务器。通常这些项是 YaST 自动管理的,但最好谨慎地检查。

      如果主机上的所有相关条目均正确,请让系统管理员检查 DNS 服务器配置,以确定时区信息是否正确。有关 DNS 的详细信息,请参见第 25 章 “域名系统如果确信主机和 DNS 服务器的 DNS 配置正确,请检查网络和网络设备的配置。

    3. 如果系统无法与网络服务器建立连接,并且已排除了名称服务出现问题的可能,则请检查网卡的配置。

      使用 ip addr show NETWORK_DEVICE 命令来检查此设备是否已正确配置。确保已正确设置带网络掩码 (/MASK) 的 inet address。如果 IP 地址中出现错误或网络掩码中缺少一位,将使您的网络配置无法使用。如有必要,也在服务器上执行该检查。

    4. 如果名称服务和网络硬件已正确配置且正在运行,但有些外部网络连接仍然长时间超时或完全失败,请使用 traceroute FULLY_QUALIFIED_DOMAIN_NAME 命令(以 root 用户的身份执行)来跟踪这些请求所经过的网络路由。此命令将列出某一请求从您的计算机传递到其目标所经过的所有网关(跳跃)。其中列出了每个跃点的响应时间以及此跃点是否可访问。请将 traceroute 和 ping 结合使用以确定故障原因并通知管理员。

一旦确定了网络故障的原因,就可以自行解决(如果问题出在您自己的计算机上),或告诉网络系统管理员您的发现,以便其重配置服务或修复必要的系统。

40.5.1 NetworkManager 问题

如果网络连接有问题,请按过程 40.6 “如何识别网络故障” 中所述缩小范围。如果 NetworkManager 看上去有问题,请执行以下步骤,以获取相关的日志来找出 NetworkManager 失败原因的线索:

  1. root 用户身份打开外壳并登录。

  2. 重启动 NetworkManager:

    systemctl restart Network.Manager
  3. 以普通用户身份打开一个网页,例如 http://www.opensuse.org,看看是否可以连接。

  4. 收集 /var/log/NetworkManager 中有关 NetworkManager 状态的任何信息。

有关 NetworkManager 的更多信息,请参考第 36 章 “使用 NetworkManager

40.6 数据问题

数据问题是指无论计算机是否能够正确引导,有一点是明确的,即系统上的数据损坏并且系统需要恢复。这些情况下需要对关键数据进行备份,以便您能够在系统出现故障时恢复故障前的状态。

40.6.1 管理分区映像

有时您需要从整个分区甚至硬盘来执行备份。Linux 附带了 dd 工具,该工具可用于创建磁盘的精确副本。与 gzip 一起使用可节约一些空间。

过程 40.7︰ 备份和恢复硬盘
  1. root 用户身份启动外壳。

  2. 选择源设备。通常形如 /dev/sda(标记为 SOURCE)。

  3. 确定要把您的映像储存在何处(标记为 BACKUP_PATH)。它不能与您的源设备相同。换句话说:如果从 /dev/sda 备份,则映像文件不得储存在 /dev/sda 下。

  4. 运行以下命令创建压缩映像文件:

    dd if=/dev/SOURCE | gzip > /BACKUP_PATH/image.gz
  5. 用以下命令恢复硬盘:

    gzip -dc /BACKUP_PATH/image.gz | dd of=/dev/SOURCE

如果只需备份某个分区,请将 SOURCE 占位符替换为相应的分区。在这种情况下,映像文件可以位于同一硬盘上不同的分区中。

40.6.2 使用救援系统

有多种原因会造成系统无法正常启动和运行。系统崩溃后造成文件系统损坏、配置文件损坏或引导加载程序配置损坏是最常见的原因。

为了帮助您解决这些状况,SUSE Linux Enterprise Server 提供了一套您可以引导的救援系统。该救援系统是一个小型 Linux 系统,可以装载到一个 RAM 磁盘并以 root 文件系统的形式装入,使您可以从外部访问 Linux 分区。使用该救援系统,可以恢复或修改系统中任何一个重要的方面:

该救援系统可以从各种来源和位置进行装载。最简单的选择是从原始安装媒体上引导该救援系统。

注意
注意:在 IBM z Systems 上启动救援系统

在 IBM z Systems 上,可将安装系统用于救援。要启动救援系统,请根据第 40.7 节 “IBM z Systems:将 initrd 用作救援系统”中的说明操作。

一旦进入该救援系统,便可通过 AltF1AltF6 键来访问虚拟控制台。

/bin 目录中提供了一个外壳和其他有用的实用程序,如 mount 程序。/sbin 目录包含重要的用于查看和修复文件系统的文件和网络实用程序。此目录还包含用于系统维护的最重要的二进制文件,如 fdiskmkfsmkswapmountshutdown,以及用于维护网络的 ipss。目录 /usr/bin 包含 vi 编辑器、find、less 和 SSH。

要查看系统讯息,请使用命令 dmesg,或使用 journalctl 查看系统日志。

40.6.2.1 检查和操作配置文件

举一个可以通过该救援系统修复配置的例子,假设有一个被损坏的配置文件,使该系统无法正常引导。您可以通过救援系统修复该配置文件。

要操作配置文件,请执行以下步骤:

  1. 用上述方法之一启动救援系统。

  2. 要在救援系统中装入位于 /dev/sda6 下的 root 文件系统,请使用如下命令:

    mount /dev/sda6 /mnt

    系统所有目录现在均位于 /mnt 之下

  3. 将目录切换为所装入的 root 文件系统:

    cd /mnt
  4. 在 vi 编辑器中打开有问题的配置文件。调整并保存配置。

  5. 从救援系统中卸载 root 文件系统:

    umount /mnt
  6. 重引导计算机。

40.6.2.2 修复和检查文件系统

通常,不能在正在运行的系统上修复文件系统。如果遇到严重问题,您甚至都无法装入 root 文件系统,系统引导可能以显示 kernel panic 结束。在这种情况下,唯一的方法是从外部修复系统。该系统包含的实用程序可检查并修复 btrfsext2ext3ext4reiserfsxfsdosfsvfat 文件系统。您可以试试命令 fsck. 文件系统,例如,如果需要对 btrfs 进行文件系统检查,请使用 fsck.btrfs

如果需要从救援系统访问已安装系统,需要在更改 root 环境中执行此操作。例如,修改引导加载程序配置或执行硬件配置实用程序。

要设置基于已安装系统的更改 root 环境,请执行以下步骤:

  1. 提示
    提示:导入 LVM 卷组

    如果您使用的是 LVM 设置(有关更多一般性细节,请参见第 II 部分 “逻辑卷 (LVM)”),请导入所有现有的卷组,以便能够查找和装入设备:

    rootvgimport -a

    运行 lsblk 以检查哪个节点对应于根分区。在本例中,该节点为 /dev/sda2

    lsblk
    NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
    sda           8:0    0 149,1G  0 disk
    ├─sda1        8:1    0     2G  0 part  [SWAP]
    ├─sda2        8:2    0    20G  0 part  /
    └─sda3        8:3    0   127G  0 part
      └─cr_home 254:0    0   127G  0 crypt /home
  2. 从安装的系统装入根分区:

    mount /dev/sda2 /mnt
  3. 装入 /proc/dev/sys 分区:

    mount -t proc none /mnt/proc
    mount --rbind /dev /mnt/dev
    mount --rbind /sys /mnt/sys
  4. 现在可以更改根分区为新的环境,并保留 bash 外壳:

    chroot /mnt /bin/bash
  5. 最后,装入已安装系统的剩余分区:

    mount -a
  6. 现在可以访问已安装系统了。在重引导系统之前,请用 umount -a 卸载分区并用 exit 退出更改 root环境。

警告
警告:限制

尽管对已安装系统的文件和应用程序有完全访问权,但仍有一些限制。运行的内核是用救援系统引导的那个,不是用更改 root 环境引导的那个。它仅支持关键硬件,如果内核版本不完全相同,则无法从已安装系统中添加内核模块。始终用 uname -r 检查当前正在运行的(救援)内核版本,然后查明更改 root 环境中 /lib/modules 目录下是否有匹配的子目录。如果是,可以使用已安装模块;否则,需要在其他媒体(例如闪盘)上提供模块的正确版本。很多时候,救援内核版本与已安装模块不同,这样您完全无法访问声卡等。也不可能启动图形用户界面。

还应注意,在使用 F1AltF6 键切换控制台时,要退出Alt更改 root环境。

40.6.2.4 修改和重新安装引导加载程序

有时,系统无法引导是因为引导加载程序配置已损坏。例如,如果没有正常工作的引导加载程序,启动例程将无法将物理驱动器转化为 Linux 文件系统中的实际位置。

要检查引导加载程序配置并重新安装引导加载程序,请执行以下步骤:

  1. 第 40.6.2.3 节 “访问已安装系统” 中所述执行必要的步骤以访问已安装系统。

  2. 检查系统上是否已安装 GRUB 2 引导加载程序。如果未安装,请安装 grub2 包并运行

    grub2-install /dev/sda
  3. 根据第 12 章 “引导加载程序 GRUB 2中所述的 GRUB 2 配置原则,检查下列文件是否正确配置,并根据需要应用修复。

    • /etc/default/grub

    • /boot/grub2/device.map(选用文件,手动创建后才存在)

    • /boot/grub2/grub.cfg(此文件是系统生成的,不要编辑)

    • /etc/sysconfig/bootloader

  4. 使用以下命令序列重新安装引导加载程序:

    grub2-mkconfig -o /boot/grub2/grub.cfg
  5. 卸载分区,从更改 root环境中注销并重引导该系统:

    umount -a
    exit
    reboot

40.6.2.5 修复内核安装

内核更新会产生新的 bug,这样会影响系统运行。例如,系统某个硬件的驱动程序有故障,您就无法访问和使用该硬件。在这种情况下,需还原到上一个工作内核(如果在系统上可用),或从安装媒体安装原始内核。

提示
提示:如何在更新后保留最后几个内核

为了防止内核更新出现故障后无法进行引导,请使用内核多版本功能,并告知 libzypp 在更新后保留哪些内核。

例如,要始终保留最后两个内核和当前正在运行的内核,请将

multiversion.kernels = latest,latest-1,running

添加到 /etc/zypp/zypp.conf 文件。有关详细信息,请参见第 15 章 “安装多个内核版本

类似的情况是,当您需要重新安装或更新不受 SUSE Linux Enterprise Server 支持的设备的已损坏驱动程序时。例如,当硬件供应商使用特定设备时,比如硬件 RAID 控制器,它需要一个二进制驱动程序才能被操作系统识别。供应商通常会发布含有固定版或更新版必要驱动程序的驱动程序更新磁盘 (DUD)。

这两种情况下,您都需要以救援模式访问已安装系统,并修复内核相关问题,否则系统可能无法正确引导:

  1. SUSE Linux Enterprise Server 安装媒体引导。

  2. 如果您正在从内核更新故障中恢复,请跳过此步骤。如果需要使用驱动程序更新磁盘 (DUD),请在出现引导菜单后按 F6 装载驱动程序更新,并选择驱动程序更新的路径或 URL,然后确认

  3. 从引导菜单中选择救援系统,并按 Enter。如果选择使用 DUD,将要求您指定储存驱动程序更新的位置。

  4. Rescue: 提示符处输入 root。无需口令。

  5. 手动将目标系统和更改 root装入新环境。有关详细信息,请参见第 40.6.2.3 节 “访问已安装系统”

  6. 如果使用的是 DUD,请安装/重新安装/更新有故障的设备驱动程序包。始终确保已安装的内核版本与您正在安装的驱动程序版本完全相同。

    如果要修复有故障的内核更新安装,可以从安装媒体使用以下过程安装原始内核。

    1. 使用 hwinfo --cdrom 命令确定您的 DVD 设备信息,使用 mount /dev/sr0 /mnt 命令装入设备。

    2. 导航到 DVD 上储存内核文件的目录,例如,cd /mnt/suse/x86_64/

    3. 使用 rpm -i 命令安装具有您风格的必需 kernel-*kernel-*-basekernel-*-extra 包。

  7. 更新配置文件,必要时可重初始化引导加载程序。有关详细信息,请参见第 40.6.2.4 节 “修改和重新安装引导加载程序”

  8. 从系统驱动器中删除所有可引导的媒体,然后重引导。

40.7 IBM z Systems:将 initrd 用作救援系统

如果升级或修改 SUSE® Linux Enterprise Server for IBM z Systems 的内核,则可能会意外以不一致的状态重引导系统,这样会使已安装系统的标准 IPL 过程失败。在这种情况下,您可以使用安装系统来提供救援。

第 4.2 节 “准备安装”中所述,对 SUSE Linux Enterprise Server for IBM z Systems 安装系统执行 IPL。选择开始安装,然后输入所有必需的参数。安装系统装载之后,系统会询问您要使用哪个显示类型来控制安装,此时请选择 SSH。现在,您可以不输入口令直接以 root 身份通过 SSH 登录系统。

在此情况下,没有做任何磁盘配置。需要在在能进入以前配置磁盘。

过程 40.8︰ 配置 DASD
  1. 用以下的命令配置 DASD:

    dasd_configure 0.0.0150 1 0

    DASD 以 0.0.0150 连接。1 表示激活该磁盘(此位置若为 0 则将停用该磁盘)。0 表示磁盘无 DIAG 模式1 使磁盘的 DAIG 访问可用)。

  2. 现在,DASD 为联机(用 cat /proc/partitions 检查),并可用于后续命令。

过程 40.9︰ 配置 zFCP 磁盘
  1. 配置 zFCP 磁盘,首先要配置 zFCP 调节器。请使用以下命令完成该操作:

    zfcp_host_configure 0.0.4000 1

    0.0.4000 是调节器的连接目标通道 1 表示激活(0使调节器无效)。

  2. 调节器被激活后,可以配置磁盘。请使用以下命令完成该操作:

    zfcp_disk_configure 0.0.4000 1234567887654321 8765432100000000  1

    0.0.4000 是以前用的通道 ID, 1234567887654321 为 WWPN (国际端口号码 World wide Port Number), 而 8765432100000000 是 LUN (逻辑单位号码 logical unit number). 1 意味着激活该磁盘 (这里的 0 将使该磁盘无效)。

  3. 现在,zFCP 磁盘为联机(用 cat /proc/partitions 检查),并可用于后续命令。

现在,救援系统已完全设置好,您可以开始修复安装的系统。有关如何修复最常见问题的说明,请参见第 40.6.2 节 “使用救援系统”