数据问题

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

管理分区映像

有时您需要从整个分区甚至硬盘来执行备份。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 占位符替换为您各自的分区。在这种情况下,映像文件可以位于同一硬盘上不同的分区中。

备份关键数据

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

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

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

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

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

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

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

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

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

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

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

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

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

  2. 选择自动启动备份

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

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

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

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

恢复系统备份

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

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

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

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

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

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

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

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

恢复受损的系统

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

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

使用 YaST 系统修复

[Note]键盘和语言设置

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

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

自动修复

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

自定义修改

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

专家工具

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

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

自动修复

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

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

  2. 重引导系统。

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

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

  5. 选择自动修复

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

    图 28.4. 自动修复方式

    自动修复方式

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

    检查分区表

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

    检查交换区

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

    检查文件系统

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

    检查 fstab 项

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

    检查包数据库

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

    检查 Boot Loader 配置

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

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

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

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

自定义修改

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

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

  2. 重引导系统。

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

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

  5. 选择自定义修复

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

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

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

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

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

专家工具

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

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

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

  2. 重引导系统。

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

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

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

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

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

安装新的 Boot Loader

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

引导已安装系统

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

启动分区工具

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

修复文件系统

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

恢复丢失的分区

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

[Important]重构建分区表

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

将系统设置保存到软盘

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

校验安装的软件

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

使用救援系统

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

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

检查和操作配置文件

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

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

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

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

    mount /dev/sda6 /mnt

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

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

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

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

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

修复和检查文件系统

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

访问已安装系统

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

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

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

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

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

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

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

[Warning]限制

尽管对已安装系统的文件和应用程序有完全访问权,但仍有一些限制。 运行的内核是用救援系统引导的那个,不是用 change root 环境引导的那个。该内核只支持关键性硬件,不可能从已安装系统添加内核模块,除非内核版本完全一致(这没有可能性)。 举例来说,这样您将无法访问声卡。 也不可能启动图形用户界面。

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

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

有时,系统无法引导是因为引导加载程序配置已损坏。 例如,如果没有正常工作的引导加载程序,启动例程将无法将物理驱动器转化为 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. 卸载分区,从更改根环境中注销并重引导该系统:

    umount -a
    exit
    reboot