第 28 章常见问题及其解决方案

目录

28.1. 查找和收集信息
28.2. 安装问题
28.3. 引导问题
28.4. 登录问题
28.5. 网络问题
28.6. 数据问题

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

28.1. 查找和收集信息

Linux 报告情况时是很详细的。在您的系统遇到问题时,有几个地方可以查看,大多数是 Linux 系统的标准问题,有一些是与 SUSE Linux Enterprise Desktop 系统相关的问题。多数日志文件可以用 YaST(其他+启动日志)查看。

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

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

表 28.1. 日志文件

日志文件

描述

~/.xsession-errors

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

/var/log/apparmor/

来自 AppArmor 的日志文件,详细信息请参见第 IV 部分 “Confining Privileges with Novell AppArmor” (↑安全指南)。

/var/log/audit/audit.log

来自审计的日志文件,用来跟踪对系统的文件、目录或资源的任何访问,并跟踪系统调用。

/var/log/boot.msg

引导期间报告的来自内核的消息。

/var/log/mail.*

来自邮件系统的消息。

/var/log/messages

(运行时)来自内核和系统日志守护程序的消息。

/var/log/NetworkManager

NetworkManager 的日志文件,用于收集网络连接性问题

/var/log/samba/

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

/var/log/SaX.log

来自 SaX 屏幕和 KVM 系统的硬件消息。

/var/log/warn

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

/var/log/wtmp

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

/var/log/Xorg.*.log

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

/var/log/YaST2/

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

/var/log/zypper.log

zypper 的日志文件。


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

表 28.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 的更多信息,请参见第 13 章 使用 udev 进行动态内核设备管理 中 udev 的环境。表 28.3 包含 /sys 下最常见目录的概述。

表 28.3. /sys 文件系统的系统信息

文件

描述

/sys/block

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

/sys/bus

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

/sys/class

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

/sys/device

包含全局设备层次结构。


Linux 带有一些用于系统分析和监视的工具。请参见第 2 章 System Monitoring Utilities (↑系统分析和微调指南)以选择在系统诊断中使用的最重要的工具。

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

28.2. 安装问题

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

28.2.1. 检查媒体

如果您使用 SUSE Linux Enterprise Desktop 安装媒体时遇到任何问题,用软件+,媒体检查检查安装媒体的完整性。您自己刻录的媒体更有可能出问题。要检查 SUSE Linux Enterprise Desktop 媒体,将它插入驱动器中,在 YaST 的媒体检查屏幕中单击启动检查。这可能要花几分钟时间。如果检测到有任何错误,则不应使用此媒体进行安装。

图 28.1. 检查媒体

检查媒体

28.2.2. 硬件信息

使用硬件+硬件信息显示检测到的硬件和技术数据。单击树的任意节点以获取有关设备的更多信息。在提交需要硬件信息的支持请求时,此模块特别有用。

单击保存到文件将显示的硬件信息保存到文件。选择需要的目录和文件名,然后单击保存以创建文件。

图 28.2. 显示硬件信息

显示硬件信息

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

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

从软盘引导

创建一张引导软盘,然后从软盘而非 DVD 引导。

使用外置的引导设备

如果您的 BIOS 和安装内核支持,从外部 DVD 驱动器引导。

通过 PXE 进行网络引导

如果计算机没有 DVD 驱动器,但是提供了有效的以太网连接,则可以执行完全基于网络的安装。详情请参见第 11.1.3 节 “Remote Installation via VNC—PXE Boot and Wake on LAN” (第 11 章 Remote Installation, ↑部署指南)和第 11.1.6 节 “Remote Installation via SSH—PXE Boot and Wake on LAN” (第 11 章 Remote Installation, ↑部署指南)。

28.2.3.1. 从软盘引导 (SYSLINUX)

在某些较旧的计算机上,没有可用于引导的 DVD 驱动器,但有软盘驱动器。要在此类系统上安装,需要创建引导磁盘,然后使用引导磁盘引导系统。

引导磁盘包括加载程序 SYSLINUX 和程序 linuxrc。SYSLINUX 支持在引导过程中选择内核以及指定所使用的硬件所需的任何参数。程序 linuxrc 支持为您的硬件装载内核模块并随后启动安装。

在从引导磁盘引导时,引导过程由引导加载程序 SYSLINUX(syslinux 包)启动。当引导系统时,SYSLINUX 运行最小硬件检测,主要由以下步骤组成:

  1. 该程序将检查 BIOS 是否提供符合 VESA 2.0 标准的帧缓冲支持并相应地引导内核。

  2. 读取监视数据(DDC 信息)。

  3. 读取第一个硬盘的第一个块 (MBR) 以在引导加载程序配置过程中将 BIOS ID 映射到 Linux 设备名。程序将尝试通过 BIOS 的 lba32 功能读取块以确定 BIOS 是否支持这些功能。

如果在 SYSLINUX 启动时按住 Shift 键,则将跳过所有这些步骤。出于查错的目的,请将行

verbose 1

插入 syslinux.cfg 中,以便引导加载程序显示当前正在执行哪个操作。

如果不能从软盘引导计算机,则可能需要将 BIOS 中的引导顺序更改为 A,C,CDROM

28.2.3.2. 外置引导设备

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

28.2.4. 从安装媒体引导失败

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

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

过程 28.1. 更改 BIOS 引导顺序

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

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

  3. 在所打开的屏幕中,查找名为 BOOT SEQUENCEBOOT ORDER 的子项。引导顺序形如 C,AA,C。在前一种情况中,计算机首先搜索硬盘 (C),然后搜索软盘驱动器 (A) 以查找可引导媒体。通过按 PgUp 键或 PgDown 键更改设置,直到顺序为 A、CDROM 和 C

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

过程 28.2. 更改 SCSI BIOS(Adaptec 主机适配器)中的引导顺序

  1. Ctrl+A打开设置。

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

    记下您 DVD 驱动器的 SCSI ID。

  3. ESC 退出菜单。

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

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

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

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

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

图 28.3. 美式键盘布局

美式键盘布局

28.2.5. 无法引导

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

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

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

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

  3. 按第 3 章 Installation with YaST (↑部署指南)中所述的步骤进行安装。

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

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

[Tip]获取内核文档

安装 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 会自动将其写入引导加载程序配置中以确保系统下一次能够正确引导。

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

28.2.6. 无法启动图形安装程序

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

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

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

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

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

过程 28.3. 安装时更改屏幕分辨率

  1. 引导以安装。

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

  3. 选择安装,然后按第 3 章 Installation with YaST (↑部署指南)中所述的步骤进行安装。

过程 28.4. 用文本方式进行安装

  1. 引导以安装。

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

  3. 选择安装,然后按第 3 章 Installation with YaST (↑部署指南)中所述的步骤进行安装。

过程 28.5. VNC 安装

  1. 引导以安装。

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

    vnc=1 vncpassword=some_password

    some_password 替换为用于 VNC 安装的密码。

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

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

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

    http://ip_address_of_machine:5801

    随后浏览器窗口中将打开一个对话框,提示您输入 VNC 密码。输入密码,然后按第 3 章 Installation with YaST (↑部署指南)中所述的步骤进行安装。

    [Important]

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

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

28.2.7. 只能启动简陋的引导屏幕

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

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

引导选项

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

自定义引导选项

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

屏幕分辨率

使用 F 键来确定安装屏幕的分辨率。如果需要以文本方式引导,请选择 F3

28.3. 引导问题

引导问题是指系统不能正确引导时出现的情况(不能引导到期望的运行级别和登录屏幕)。

28.3.1. 无法装载 GRUB 引导加载程序

如果硬件运行正常,则可能是由于引导加载程序已损坏而使 Linux 无法在计算机上启动。在这种情况下,需要重安装引导加载程序。要重安装引导加载程序,请执行如下操作:

  1. 将安装介质插入驱动器中。

  2. 重引导计算机。

  3. 从引导菜单中选择安装

  4. 选择一种语言。

  5. 接受许可证协议。

  6. 安装模式屏幕中,选择修复已安装系统

  7. 然后在“YaST 系统修复”模块中,选择专家工具,再选择安装新引导加载程序

  8. 恢复原始设置并重安装引导加载程序。

  9. 退出“YaST 系统修复”模块并重引导系统。

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

BIOS 设置

请检查 BIOS 中对硬盘驱动器的引用。如果在当前的 BIOS 设置中找不到硬盘驱动器本身,则 GRUB 可能就不能启动。

BIOS 引导顺序

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

28.3.2. 不出现登录或提示

这种情况通常在内核更新失败后发生,称为 kernel panic,原因是该过程中最后阶段有时可以在系统控制台上的错误类型。如果实际上计算机刚刚在软件更新后重引导,则当前目标是使用旧的经过验证的 Linux 版本内核和关联文件重引导。这在引导过程中,可以如下在 GRUB 引导加载程序屏幕中进行:

  1. 用重设置按钮重引导计算机,或关闭它之后再打开。

  2. 当 GRUP 引导屏幕开始可见时,选择 Linux--Failsafe 然后按 Enter。计算机将使用内核的前一个版本及其关联文件引导。

  3. 引导过程完成之后,删除新安装的内核,并在需要的情况下,手动修改 /boot/grub/menu.lst 以将较旧的内核指定为默认选项。有关此配置文件中所使用的语法的详细信息,请参见第 10 章 引导加载程序 GRUB

    不一定要更新此文件,因为回滚过程中自动更新工具通常会为您修改它。

  4. 重引导.

如果因为 Linux--Failsafe 选项不能正确引导计算机而不能解决该问题,则使用安装媒体引导计算机。计算机引导之后,继续至步骤 3

28.3.3. 无图形登录

如果计算机能够启动,但是无法引导到图形登录管理器中,则问题可能出在默认的运行级别选项或 X Window 系统的配置上。要检查运行级别配置,请作为 root 用户登录,然后检查计算机是否配置为引导到运行级别 5(图形桌面)。有一个快捷的检查方法就是检验 /etc/inittab 中的如下内容:

tux@mercury:~> grep "id:" /etc/inittab 
id:5:initdefault:

如果返回的行表明计算机的默认运行级别(initdefault)设置为 5,则它将引导到图形桌面。如果运行级别设置为其他任何数字,请使用“YaST 运行级别编辑器”模块将其设置为 5

[Important]

请不要手动编辑运行级别配置。否则 SuSEconfig(由 YaST 运行)将在其下次运行时覆盖这些更改。如果需要在此处进行手动更改,请将 /etc/sysconfig/suseconfig 中的 CHECK_INITTAB 设置为 no 以禁用未来的 SUSEconfig 更改。

如果运行级别设置为 5,您的桌面或 X Windows 软件可能配置错误或已损坏。请检验 /var/log/Xorg.*.log 中的日志文件,查找它尝试启动的 X 服务器发出的详细消息。如果桌面在启动时发生故障,它可能将错误消息记录到 /var/log/messages 中。如果这些错误消息指出问题出在 X 服务器中的配置上,请尝试修正这些问题。如果图形系统仍无法启动,请考虑重安装图形桌面。

[Tip]手动启动 X Window 系统

一项快速测试:如果用户当前登录到了控制台,startx 命令会强制 X Window 系统使用已配置的默认值启动。如果这不起作用,它将把错误记录到控制台中。

28.4. 登录问题

登录问题是指计算机实际上已引导到期望的欢迎屏幕或登录提示下,但是拒绝接受用户名和密码,或者虽然接受了用户名和密码,但是未能正确地运行(无法启动图形桌面、发生错误或转到了命令行等)。

28.4.1. 有效的用户名和密码组合失败

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

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

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

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

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

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

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

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

  2. 在引导提示下输入 1,使系统引导到单用户方式。

  3. 输入 root 用户的用户名和密码。

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

  5. 在命令行中输入 telinit 5 以引导到完全的多用户和网络方式。

28.4.2. 不接受有效的用户名和密码

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

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

  • 用户可能输入了错误的密码。

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

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

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

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

  2. root 用户身份登录并检查 /var/log/messages 以找到登录过程和 PAM 的错误消息。

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

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

  5. 如果图形登录依然失败,请使用 Ctrl+Alt+F1 进行控制台登录。尝试在另一个屏幕上启动 X 会话,第一个 (:0) 已经在使用中:

    startx -- :1

    这样应该可以显示图形屏幕和桌面。如果无效,请查看 X Window 系统的日志文件(/var/log/Xorg.displaynumber.log)或您桌面应用程序的日志文件(用户主目录中的 .xsession-errors),以确定是否有任何违反规则的地方。

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

以下是在特定的计算机上对特定用户的网络身份验证可能失败的常见原因:

  • 用户可能输入了错误的密码。

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

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

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

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

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

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

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

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

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

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

  4. 确定其他用户是否可以登录到该故障计算机。如果其他用户可以毫无困难地登录或者 root 用户可以登录,请登录并检验 /var/log/messages 文件。找到与登录尝试相对应的时间戳记,然后确定 PAM 是否生成了任何错误消息。

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

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

  7. 如果图形登录依然失败,请使用 Ctrl+Alt+F1 进行控制台登录。尝试在另一个屏幕上启动 X 会话,第一个 (:0) 已经在使用中:

    startx -- :1

    这样应该可以显示图形屏幕和桌面。如果无效,请查看 X Window 系统的日志文件(/var/log/Xorg.displaynumber.log)或您桌面应用程序的日志文件(用户主目录中的 .xsession-errors),以确定是否有任何违反规则的地方。

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

28.4.3. 登录至加密的主分区失败

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

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

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

  1. Ctrl+Alt+F1 切换到文本控制台。

  2. 成为 root 用户。

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

    /etc/init.d/boot.crypto restart
  4. 输入您的通行密码以解锁加密的分区。

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

  6. 如常登录。

28.4.4. 登录成功但 GNOME 桌面发生故障

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

  1. Ctrl+Alt+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/

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

28.4.5. 登录成功但 KDE 桌面发生故障

KDE 桌面不允许用户登录有多种原因。高速缓存数据以及 KDE 桌面配置文件的损坏都可能引起登录问题。

桌面在启动时会用到缓存数据,这将提高性能。如果数据损坏,则启动将变慢或完全失败。将缓存数据删除会强制桌面启动例程从头开始。这样会花费比正常启动更多的时间,但是在这之后数据将完好无缺,用户也可以登录。

要删除 KDE 桌面的高速缓存文件,请以 root 用户身份发出以下命令:

rm -rf /tmp/kde-user /tmp/ksocket-user

使用您的用户名来替换 user。将这两个目录删除只是删除损坏的高速缓存文件,使用该过程并不会破坏实际数据。

损坏的桌面配置文件始终可以用初始配置文件替换。如果想要恢复用户所作的调整,请在使用默认配置值恢复配置之后,将这些调整从其临时位置小心地复制回原来的位置。

要将损坏的桌面配置替换为初始配置值,请执行如下操作:

  1. Ctrl+Alt+F1切换到文本控制台。

  2. 用您的用户名登录。

  3. 将 KDE 配置目录和 .skel 文件移到临时位置:

    • 对于 KDE3 使用以下命令:

      mv .kde  .kde-ORIG-RECOVER 
      mv .skel .skel-ORIG-RECOVER
    • 对于 KDE4 使用以下命令:

      mv .kde4  .kde4-ORIG-RECOVER 
      mv .skel .skel-ORIG-RECOVER
  4. 注销。

  5. 再次登录。

  6. 在成功启动桌面之后,将用户自己的配置复制回原来的位置:

    cp -a KDEDIR/share .kde/share

    KDEDIR 替换为步骤 3 中的目录。

    [Important]

    如果用户自己的调整先前引起了登录失败并仍然如此,请重复上述步骤,但是不要复制 .kde/share 目录。

28.5. 网络问题

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

过程 28.6. 如何识别网络故障

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

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

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

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

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

    DNS(名称服务)

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

    NTP(时间服务)

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

    NFS(文件服务)

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

    Samba(文件服务)

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

    NIS(用户管理)

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

    LDAP(用户管理)

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

    Kerberos(身份验证)

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

    CUPS(网络打印)

    用户无法打印。

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

    [Important]

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

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

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

      如果 ping 命令失败,同时显示未知主机,则表示名称服务未正确配置或使用的主机名不正确。要对该问题进行进一步的检查,请参见步骤 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 服务器的 DNS 配置正确,请检查网络和网络设备的配置。

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

      请使用 ifconfig network_device 命令(以 root 用户的身份执行)来检查此设备是否已正确配置。确保 inet address Mask 已正确配置。如果 IP 地址中出现错误或网络掩码中缺少一位,将使您的网络配置无法使用。如有必要,也在服务器上执行该检查。

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

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

28.5.1. NetworkManager 问题

如果网络连接有问题,请按过程 28.6, “如何识别网络故障” 中所述缩小范围。如果 NetworkManager 看上去是 culprit,请按如下步骤操作,获得日志,它会提供 NetworkManager 为何失效的线索:

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

  2. 重启动 NetworkManager:

    rcnetwork restart -o nm
  3. 作为普通用户打开 网页(例如 http://www.opensuse.org)看是否能连接。

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

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

28.6. 数据问题

数据问题是指无论计算机是否能够正确引导,有一点是明确的,即系统上的数据损坏并且系统需要恢复。这些情况下需要对关键数据进行备份,以便您能够在系统出现故障时恢复故障前的状态。SUSE Linux Enterprise Desktop 提供了专用的 YaST 模块用于系统备份和恢复,此外还提供了一个救援系统,用于从外部恢复受损的系统。

28.6.1. 管理分区映像

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

过程 28.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 占位符替换为您各自的分区。在这种情况下,映像文件可以位于同一硬盘上不同的分区中。

28.6.2. 备份关键数据

可使用“YaST 系统备份”模块轻松管理系统备份:

  1. 以 root 用户身份启动 YaST,然后选择系统+系统备份

  2. 创建一个存放备份所需的所有详细信息、存档文件的文件名以及备份范围和类型的备份配置文件:

    1. 选择配置文件管理+添加

    2. 输入存档文件的名称。

    3. 如果想要保留本地备份,请输入备份位置的路径。如果要将备份存档在网络服务器上(通过 NFS),请输入 IP 地址或服务器名称以及存放存档文件的目录。

    4. 确定存档类型,然后单击下一步

    5. 确定要使用的备份选项,例如是否要对不属于任何包的文件进行备份以及在创建存档文件之前是否显示文件列表。此外,确定是否使用耗费时间的 MD5 机制来确定更改过的文件。

      使用专家进入备份整个硬盘区域的对话框。目前该选项仅适用于 Ext2 文件系统。

    6. 最后,设置搜索约束条件,以将某些不需要备份的系统区域排除在备份区域之外,如锁文件或高速缓存文件。添加、编辑或删除项目,直到符合要求为止,然后单击确定退出。

  3. 一旦完成了配置文件设置,就可以单击创建备份立即开始备份,或者配置自动备份。此外,还可以创建用于其他各种用途的配置文件。

要为指定的配置文件配置自动备份,请执行如下操作:

  1. 配置文件管理菜单中选择自动备份

  2. 选择自动启动备份

  3. 确定备份频率。选择每天每周每月

  4. 确定备份开始时间。这些设置取决于所选择的备份频率。

  5. 确定是否保留旧的备份以及保留的个数。要自动接收备份过程自动生成的状态消息,请选中向 root 用户发送摘要邮件

  6. 单击确定以应用您的设置,首次备份将在指定的时间开始。

28.6.3. 恢复系统备份

请使用“YaST 系统恢复”模块从备份恢复系统配置。可恢复整个备份,或选择已损坏并需要重置为先前状态的特定部分。

  1. 启动 YaST+系统+系统恢复

  2. 输入备份文件的位置。这可以是本地文件、网络装入文件或可卸设备(如软盘或 DVD)上的文件。然后单击下一步

    以下对话框显示了存档文件属性(如文件名、创建日期、备份类型和可选的注释)的摘要。

  3. 可单击存档文件内容来查看已存档的内容。单击确定可返回到存档文件属性对话框。

  4. 单击专家选项将打开一个对话框,在其中可对恢复过程进行微调。单击确定可返回到存档文件属性对话框。

  5. 单击下一步可打开要恢复的包的视图。按接受可恢复该存档文件中的所有文件,或者使用各个全选取消选择全部选择文件按钮对所选存档文件进行微调。如果 RPM 数据库损坏或被删除,且该文件包含在备份中,则只需使用恢复 RPM 数据库选项。

  6. 在单击接受之后,将恢复备份。在恢复过程完成后,单击完成将退出此模块。

28.6.4. 恢复受损的系统

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

SUSE Linux Enterprise Desktop 提供两种不同方法来解决这些问题。您可以使用 YaST 系统修复功能,也可以引导救援系统。以下部分介绍这两种系统修复方法。

28.6.4.1. 使用 YaST 系统修复

[Note]键盘和语言设置

如果引导后更改了语言设置,您的键盘也随之调整。

在启动 YaST 系统修复模块之前,确定要运行该模块的方式以最佳满足您的需要。依据系统故障的严重性和原因(以及您的专业知识),在三个不同的方式中进行选择:

自动修复

如果由于未知原因系统发生故障并且您基本上不知道系统的哪个部分导致此故障,则使用自动修复。将会对您安装的系统上的所有组件执行全面的自动化检查。有关此过程的详细描述,请参见第 28.6.4.1.1 节 “自动修复”

自定义修改

如果您的系统发生故障并且您已经知道哪个组件导致此故障,则您可以通过将系统分析的范围限制于那些组件来缩短使用自动修复进行系统检查所需的长时间。例如,如果发生故障之前的系统消息指示包数据库出错,则您可以将分析和修复过程只限于检查和恢复系统的此部分。有关此过程的详细描述,请参见第 28.6.4.1.2 节 “自定义修改”

专家工具

如果您已经清楚地知道哪个组件发生故障和修复此故障的方法,则您可以跳过分析运行并直接应用修复相关组件所需的工具。有关详细信息,请参见第 28.6.4.1.3 节 “专家工具”

选择以上描述的一个修复方式并按以下部分所述继续执行系统修复。

28.6.4.1.1. 自动修复

要启动 YaST 系统修复的自动修复方式,请如下执行操作:

  1. 将 SUSE Linux Enterprise Desktop 的安装媒体插入 DVD 驱动器中。

  2. 重引导系统。

  3. 在引导屏幕上选择修复已安装系统

  4. 确认许可协议并单击下一步

  5. 选择自动修复

    YaST 现在对已安装系统启动全面分析。屏幕的底部使用两个进度条显示此过程的进度。上面的进度条显示当前正在运行的测试的进度。下面的进度条显示分析进程的总体进度。上面的日志窗口用于跟踪当前运行的测试及其结果。请参见图 28.4 “自动修复方式”

    图 28.4. 自动修复方式

    自动修复方式

    每次运行都会执行以下主要测试。这些测试又包含许多单独的子测试:

    检查分区表

    检查所有检测到的硬盘的分区表的有效性和一致性。

    检查交换区

    检测并测试已安装系统的交换分区,并在合适的情况下建议激活交换分区。应该接受这一建议以实现更高的系统修复速度。

    检查文件系统

    所有检测到的文件系统都需要进行特定于文件系统的检查。

    检查 fstab 项

    检查文件中项的完整性和一致性。将装入所有有效的分区。

    检查包数据库

    这将检查执行最小安装的操作所需的所有包是否存在。虽然还可以分析基本包,但因为基本包数量太大,将花费很长时间。

    检查引导加载程序配置

    检查已安装系统(GRUB 或 LILO)的引导加载程序配置的完整性和一致性。将检查引导和根设备,并将检查 initrd 模块的可用性。

  6. 当出现错误时,过程将停止并打开一个对话框,其中描述了详细信息和可能的解决方案。

    在接受建议修复之前仔细阅读屏幕消息。如果您确定拒绝建议的解决方案,您的系统将保持不变。

  7. 在修复过程成功终止之后,单击确定完成,除去安装媒体。系统将自动重引导。

28.6.4.1.2. 自定义修改

要启动自定义修复方式并选择性地检查所安装系统的某些组件,请如下执行操作:

  1. 将 SUSE Linux Enterprise Desktop 的安装媒体插入 DVD 驱动器中。

  2. 重引导系统。

  3. 在引导屏幕上选择修复已安装系统

  4. 确认许可协议并单击下一步

  5. 选择自定义修复

    选择自定义修复将显示一组测试,这些测试最初都被标记为准备执行。这些测试的总范围和自动修复的测试范围一致。如果您清楚哪些方面没有损坏,则取消对应测试的标记。单击下一步将启动一个范围相对较小的测试过程,可能将显著缩短运行时间。

    并不是所有的测试组都单独适用。fstab 项的分析会始终与文件系统(包括现有的交换分区)检查一起进行。YaST 会通过选择必需运行的最少测试数量来自动解决此类依赖性。YaST 不支持加密分区。如果您有加密分区,YaST 会通知您。

  6. 当出现错误时,过程将停止并打开一个对话框,其中描述了详细信息和可能的解决方案。

    在接受建议修复之前仔细阅读屏幕消息。如果您确定拒绝建议的解决方案,您的系统将保持不变。

  7. 在修复过程成功终止之后,单击确定完成,除去安装媒体。系统将自动重引导。

28.6.4.1.3. 专家工具

如果您熟悉 SUSE Linux Enterprise Desktop,并且已非常清楚系统中所需的修复,请跳过系统分析来直接应用工具。

要使用 YaST 系统修复模块的专家工具功能,请如下进行操作:

  1. 将 SUSE Linux Enterprise Desktop 的安装媒体插入 DVD 驱动器中。

  2. 重引导系统。

  3. 在引导屏幕上选择修复已安装系统

  4. 确认许可协议并单击下一步

  5. 选择导出工具,再选择修复选项。

  6. 在修复过程成功终止之后,单击确定完成,除去安装媒体。系统将自动重引导。

专家工具提供下列选项修复您的错误系统:

安装新的引导加载程序

这将启动 YaST 引导加载程序配置模块。详细信息请参见第 10.2 节 “使用 YaST 配置引导加载程序”

引导已安装系统

尝试引导已安装的 Linux 系统。

启动分区工具

这将启动 YaST 中的专家分区工具。

修复文件系统

这将检查已安装系统的文件系统。首先将向您提供所有检测到的分区的选择,您可以在其中选择要检查的分区。

恢复丢失的分区

可以尝试重构建损坏的分区表。首先将显示检测到的硬盘的列表以供选择。单击确定开始检查。根据您的计算机速度和硬盘大小及速度,这可能要花一点时间。

[Important]重构建分区表

重构建分区表非常麻烦。YaST 尝试通过分析硬盘的数据扇区识别丢失的分区。在识别出丢失的分区之后,会添加它们以重构建分区表。但是,此操作不能保证在所有可能的情况下都成功。

将系统设置保存到软盘

此选项将重要的系统文件保存到软盘上。如果这些文件中的某个文件被损坏,可以从磁盘恢复该文件。

校验安装的软件

这将检查包数据库的一致性和最重要包的可用性。使用此工具可以重安装任何损坏的已安装包。

28.6.4.2. 使用救援系统

SUSE Linux Enterprise Desktop 包含一个救援系统。该救援系统是一个小型 Linux 系统,可以装载到一个 RAM 磁盘并以根文件系统的形式装入,使您可以从外部访问 Linux 分区。使用该救援系统,可以恢复或修改系统中任何一个重要的方面:

  • 操作任意类型的配置文件。

  • 检查文件系统中的缺陷和启动自动修复进程。

  • 访问更改 root环境下的已安装系统。

  • 检查、修改和重安装引导加载程序配置.

  • 从安装有误的设备驱动程序或不可用内核恢复。

  • 使用 parted 命令调整分区大小。在 GNU Parted 网站 http://www.gnu.org/software/parted/parted.html 上可以找到有关该工具的更多信息。

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

  1. 将安装媒体插入 DVD 驱动器中。

  2. 重引导系统。

  3. 在引导屏幕上按 F4 并选择 DVD-ROM。然后从主屏幕选择救援系统

  4. Rescue: 提示符处输入 root。无需密码。

如果硬件设置不包含 DVD 驱动器,可以从网络源引导该救援系统。以下示例适用于远程引导的情形,如果使用另一引导媒体(例如 DVD),则要相应地修改 info 文件,并像正常安装一样进行引导。

  1. 输入 PXE 引导设置的配置,添加以下行:install=protocol://instsourcerescue=1。但如果需要启动修复系统,请使用 repair=1。如同正常安装的情况一样,protocol 代表任何一种所支持的网络协议(NFS、HTTP、FTP 等);instsource 代表网络安装源的路径。

  2. 如第 11.3.7 节 “Wake on LAN” (第 11 章 Remote Installation, ↑部署指南)中所述,使用网络唤醒引导系统。

  3. Rescue: 提示符处输入 root。无需密码。

一旦进入该救援系统,便可通过 Alt+F1 Alt+F6 键来使用虚拟控制台。

可以在 /bin 目录下找到外壳和许多其他有用的实用程序,如 mount 程序。sbin 目录包含重要的用于查看和修复文件系统的文件和网络实用程序。此目录还包含用于系统维护的最重要的二进制文件,如 fdisk、mkfs、mkswap、mount、mount、init 和 shutdown,以及用于维护网络的 ifconfig、ip、route 和 netstat。目录 /usr/bin 包含 vi 编辑器、find、less 和 telnet。

要查看系统消息,请使用命令 dmesg 或查看文件 /var/log/messages

28.6.4.2.1. 检查和操作配置文件

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

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

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

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

    mount /dev/sda6 /mnt

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

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

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

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

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

28.6.4.2.2. 修复和检查文件系统

通常,不能在正在运行的系统上修复文件系统。如果遇到严重问题,您甚至都无法装入根文件系统,系统引导可能以显示 kernel panic 结束。在这种情况下,唯一的方法是从外部修复系统。强烈建议使用 YaST 系统修复功能执行此任务(请参见第 28.6.4.1 节 “使用 YaST 系统修复” 以了解细节)。但是,如果需要执行手动文件系统检查或修复,请引导救援系统。它包含检查并修复 btrfsext2ext3ext4reiserfsxfsdosfsvfat 文件系统的实用程序。

28.6.4.2.3. 访问已安装系统

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

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

  1. 先从已安装系统和设备文件系统装入引导分区(将设备名改为您当前的设置):

    mount /dev/sda6 /mnt
    mount --bind /dev /mnt/dev
  2. 现在可以更改 root为新的环境:

    chroot /mnt
  3. 然后装入 /proc/sys

    mount /proc
    mount /sys
  4. 最后,装入已安装系统的剩余分区:

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

[Warning]限制

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

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

28.6.4.2.4. 修改和重安装引导加载程序

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

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

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

  2. 依据第 10 章 引导加载程序 GRUB 中所述的 GRUB 配置原则,检查下列文件是否正确配置,如果需要进行修复。

    • /etc/grub.conf

    • /boot/grub/device.map

    • /boot/grub/menu.lst

    • /etc/sysconfig/bootloader

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

    grub --batch < /etc/grub.conf
  4. 卸载分区,从更改 root环境中注销并重引导该系统:

    umount -a
    exit
    reboot
28.6.4.2.5. 修复内核安装

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

[Tip]如何在更新后保留最后几个内核

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

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

multiversion.kernels = latest,latest-1,running

添加到 /etc/zypp/zypp.conf 文件。

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

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

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

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

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

  4. Rescue: 提示符处输入 root。无需密码。

  5. 手动将目标系统和更改 root装入新环境。有关详细信息,请参见第 28.6.4.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 包。

    4. 安装完成后,检查与新安装内核相关的新菜单项是否已添加到引导加载程序配置文件(grub 的引导加载程序配置文件是 /boot/grub/menu.lst)。

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

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