Linux操作系统已经为越来越多的企业和用户所接受。相对于Windows系统来说,其安全性和稳定性为大家所称道。然而,作为一种网络操作系统,不可避免地会出现崩溃、死机等情况,这让企业和用户大伤脑筋。是频繁地重新启动机器,还是重新安装系统呢?其实,这些都是比较笨的办法,在企业级 Linux系统中,有很多办法来挽救崩溃的系统。本文将给出在实际使用中存在的最为典型的4种场景,来一一介绍如何成功挽救崩溃的系统。
挽救场景1:修复文件系统
虽然在引导过程中会自动检查文件系统,但如果出了问题不能自动修复,将不得不手动检查。默认情况下,fsck在开机时不能自动修复文件系统,需要让 Linux进入单用户模式,这样就可以手动运行fsck。如果有必要,可以显式启动系统到单用户模式。不要挂载除根以外的任何Linux自动挂载的设备。
值得注意的是:在运行fsck之前要备份严重损坏的文件系统当一个文件系统严重损坏而试图修复它时,fsck有时会使情况变得更糟。在这种情况下,在试图修复它之前,通过从损坏的文件系统中复制可读数据,就有可能恢复更多的数据。当损坏的文件系统保存了重要数据时,在试图使用fsck修复它之前,先使用dd对系统做一个完整的二进制备份。
在单用户模式下执行mount命令,以确保要检查的本地文件系统没有被挂载。然后在这些文件系统上运行fsck,根据需要对其进行修复。请注意告知被修复(并能识别)的任何普通文件或目录的所有者,这些文件可能会不完整或不正确。在每个文件系统中为丢失的文件查找lost+found目录。成功后运行fsck,如果系统自动进入单用户模式,输入exit从单用户shell退出,并恢复引导该系统,否则执行reboot命令。
如果文件不正确或完全丢失,可能必须从文件系统的备份副本中重建它们。
挽救场景2:重新安装MBR
当Windows安装覆盖了MBR时,有必要重新安装它,从安装DVD引导系统,并选择Rescue installed system。然后挂载系统映像并在适当的设备上运行grub-install:
# chroot /mnt/sysimage
# grub-install /dev/sda
挽救场景3:当系统无法引导时
当系统无法从硬盘引导时,引导系统到挽救已安装系统或到单用户/挽救模式。如果系统启动,在硬盘的根文件系统上运行fsck,并尝试再次从硬盘引导。如果系统仍然无法启动,可能需要重新安装主引导记录。
当一切都不行时,在安装过程中执行“升级”到Linux的目前版本。Fedora/RHEL系统可以执行一个非破坏性的升级,并可以在此过程中修复部分损坏内容。
挽救场景4:挽救已安装的系统
当挽救已安装系统时,可以修复一个不能正常引导的系统:可以更改或替换配置文件、使用fsck检查并修复分区、重写引导信息以及更多。为了挽救已安装系统,从网络引导CD或安装DVD引导系统,并从“欢迎”菜单选择Rescue installed system。当系统要求指定要使用的语言和键盘时,随后就会显示挽救画面,如下图1所示:
图1 挽救画面
挽救画面首先会询问是否要设置网络接口。如果想从局域网上的其它系统中复制文件或从互联网上下载文件,这个接口是必需的。选择设置该网络接口时,需要决定是否让DHCP自动配置网络连接还是手动提供接口的IP地址和网络掩码以及网关和DNS服务器的IP地址。
如果挽救过程发现已有Linux安装,可以选择将其挂载到/mnt/sysimage下,可以选择只读模式。随着现有安装的挂载,一旦系统显示 shell提示符(类似于bash-4.2#),可以执行chroot/mnt/sysimage命令以访问现有安装,就如同它已经被正常引导了一样,现有安装的根目录为/(根)。。如果选择不挂载现有安装,则是在用挂载在标准位置(/bin、/usr/bin等)的标准工具运行挽救系统。可以从本地安装修复或挂载分区。当从挽救shell退出后,系统将重新启动。如果想从硬盘引导,请取出CD或DVD。