系统崩盘恢复解决的大致思路

  假设内核和引导程序文件本身没有问题,问题出现在 root 文件系统,那么就可能会导致 root 或者 /boo t文件系统不能正确识别、定位或者加载。作为启动过程的一部分,大多数 Linux 系统的启动脚本会检测启动状态,并且判断上一次启动时卸载过程是否彻底完成。在一般情况下,在启动过程中就可以解决文件系统崩溃的问题,但是如果崩溃影响到系统的启动脚本或者fsck工具本身,那么系统就会出现无法启动的现象。 
    不同类型的急救盘有不同的能力。一些比较简单的急救方案提供的就只有一个启动扇区和一个可以让你加载现有 root 文件系统的内核;一些比较复杂的解决方案则会提供一个完整的工具集,它几乎可以处理任何情况下的硬盘崩溃。 
    一般情况的解决办法 
    计算机出现无法启动的情形有很多种,不过在很多情况下,我们都可以使用相对简单的办法来进行恢复。下面是一些可以恢复系统的办法: 
    1. 因为 root 文件系统已经崩溃,系统甚至无法启动到可以访问fsck工具时候。这种情况比较简单,可以从急救盘启动,然后使用fsck来修复崩溃的文件系统。我们可以使用一些标准的fsck常用的一些技巧来进行修复。如果文件确实丢失了,那么可以从其它的系统上把文件拷贝至系统并且将其进行安装,另外,如果能够访问源盘的话,可以从源盘重新安装。
    2. 文件系统配置不当也是一个问题。对于这种情况,可以从急救盘启动,然后修复文件系统配置文件( /etc/fstab )或者使用诸如 tune2fs、debugfs 等工具来纠正配置不当的地方。 
    3. 如果是引导程序有问题,那么可以从急救盘启动,然后修改引导程序的配置文件,并且重新安装部分或者全部的引导程序。 
    4. 如果系统丢失了内核,也可以从急救盘启动,加载 Linux 系统的 root 分区,然后重新编译内核。 
    5. 最坏的情况是文件系统损坏得非常厉害,这时重新安装整个文件系统反而更容易一些。在这种情况下,可以从急救盘启动,然后使用备份工具将有用的文档备份至网络或者其它可移动的存储设备上。当然,进行这些操作的前提是你的急救盘支持这些功能。 
    很多常见的 Linux 发行版都会提供急救机制,下面我们就详细看一看各种 Linux 发行版的急救机制。 
    针对发行版的急救盘 
    大部分的 Linux 发行版都把创建一个急救软盘作为 Linux 安装进程中的一部分。这些急救软盘主要是在系统出现一些简单的启动配置错误或者引导程序出现问题时用于恢复系统的。比如:在重新编译、安装了一个新内核之后忘了升级引导程序的配置文件;进行了升级引导程序的配置以后忘了运行 LILO (如果使用 LILO 作为启动管理器的话)等等。 
    各种发行版提供的这种急救盘具有的最大缺点是它们一般都不提供用于应付比较严重问题的工具。比如,Red Hat 中使用“ mkbootdisk ”创建的急救盘只是用于定位系统的 root 文件系统的。因此,此种急救盘只能用于与制作启动盘的机器有相同分区的机器。 
    当使用 Red Hat 等的软盘急救时,如果分区和试图去修复的系统不同,通常在急救盘的 LILO 提示符可以指定“ root=/dev/root 分区”选项,其中要用欲修复的系统的 root 分区来代替“ root 分区”。不过,因为这种类型的急救盘包含有一个用于制作急救盘系统的内核映像,因此它可能不支持你系统里的硬件。比如,在一个不支持 SCSI 的系统里,我们无法创建一个支持SCSI系统的急救盘,除非急救盘的内核中被编译进去了对 SCSI 的支持。然而大部分急救软盘并不包括可加载的内核模块。当然,这并不奇怪,毕竟软盘的容量实在是有限。 
    基于软盘的急救盘的设计过于简单,并且一般都不包含任何工具,因此无法修复损坏严重的系统。还是以 Red Hat 为例,使用“ mkbootdisk ”脚本创建的急救盘只包含有一个启动扇区、内核和与之有关的配置文件。该急救盘主要是依赖于能够定位和加载系统的 root 文件系统,然后再由此发现可以彻底修复系统的工具。因此如果你的系统 root 文件系统已经崩溃或者有其它的损坏,就不能访问那些修复系统的工具了。 
    今天,大部分的 Linux 发行版都在其启动光盘中有一个“应急”模式。它以常用的内核来启动,然后给用户提供对 fsck 和用于创建和修改启动配置信息的命令和工具。下面,我们来看一看从光盘启动的各种 Linux 发行版的急救能力。 
    以应急模式启动 Linux 
    在商业领域里,在选择 Linux 发行版时,公司更倾向于整个公司都使用同一个 Linux 发行版。不过,不管有什么理由,选择一个有商家支持的版本还是很有必要的。诸如戴尔这样的硬件厂商捆绑的 Linux 发行版一般都是针对他们的硬件进行优化和改进过的。所以,除非你使用的是他们捆绑的 Linux ,否则他们是不会帮助你的。 
    如果在一台机器上安装多个版本的操作系统或者在一个企业的桌面上使用多个版本的 Linux ,那么就意味着在它出现问题的时候你必需要准备好一堆的 Linux 光盘。所幸的是,被损坏的 Linux 是各个不同的发行版,一般也可以用某一个发行版的光盘来修复它们。当然这还取决于你使用的硬件、文件系统以及各个发行版所支持的引导管理器。 
    我们来看一看比较流行的 Linux 发行版的各种应急模式,以及它们提供的可以帮助修复损坏 Linux 系统的工具。 
    Debian 
    从使用 jigdo 工具( Jigdo 是为了缓解庞大的 CD 和 DVD 光盘映像文件对 Debian 镜像网络造成的冲击而开发出来的)创建的 Debian 2.6 CD 启动时,有两种急救机制可供选择。可以从 CD 启动,然后进行安装,以修复现有的系统。此外,也可以使用“ root=/dev/root 分区”选项指定一个现存的root分区。在前一种情况中,选择了所使用的语言以后,就可以进行一些“查看分区表”、“执行一个 shell ”、“使系统可以启动”、“制作一个启动盘”等与修复相关的命令了。选择执行一个 Shell ,可以访问、操作 ext2 和 ext3 文件系统的 fsck、fdisk 分区工具,以及用于 ext2 文件系统的 mkfs 工具和重建崩溃交换分区的 mkswap 工具。 
    Mandrake 8.2 
    Mankrake 传统、友好的用户界面也反应在其提供发行版光盘的应急模式之上。从光盘启动以后,按 F1 键可以进入一个高级选项列表,在 boot 提示符下输入“ rescue ”,然后按回车。启动以后,Mankrake 的应急模式会显示一些菜单选项:“ Re-install Boot Loader ”、“ Restore Windows Boot Loader”、“Mount your partitions under /mnt”、 “Go to console”、“Reboot”和“Doc: what's addressed by this Rescue?”。这其中“ Go to console ”是这些选项中最有用的选项,因为它会给用户一个 root 提示符。这样,通过访问相应的工具,用户就可以修复自己的系统了。 
  Mankrake 8.2 的应急模式提供了可用于ext2、ext3、JFS、ReiserFS 和 XFS文件系统的fsck工具。对于那些损坏非常严重的不幸用户,它还提供了 fdisk 和sfdisk 分区工具以及用于 ext2 文件系统的 mkfs 。如果引导程序损坏了,Mandrake应急模式还可以安装 grub。 
    Red Hat 7.3 
    Red Hat 的应急模式非常强大。从第一张光盘启动以后,按 F4 键,然后在 LILO 的 boot 提示符下键入“ linux rescue ”,这时系统以应急的内核启动,然后就可选择使用的语言和键盘。这时,应急模式就会尝试加载现存 Red Hat 的 root 目录,并将其加载至 /mnt/sysimage 。这时可以按下回车,登录到一个 shell 中。 
    Red Hat 的应急模式只包含可用于 ext2、ext3 和 ReiserFS 文件系统的fsck 版本。如果分区无法用fsck来恢复,那么Red Hat的应急模式还提供了fdisk和 sfdisk 分区工具以及可以创建 ext2、ext3、RAID、ReiserFS、交换分

你可能感兴趣的:(linux,计算机,解决方案,程序,检测)