分享
 
 
 

拯救Linux系统

王朝system·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

作者:马传连

Linux 系统管理员几乎都有过处理瘫痪系统的经历。如果是硬件问题,那么通过更换主板、电源或者控制器等出问题的部件,就可解决了;但如果是文件系统崩溃、引导区出现问题或者配置不当导致系统无法启动,就会出现“数据近在咫尺却无法访问”的现象。

对于这种类型的问题,最简单的解决办法就是使用急救盘来启动系统。急救盘可以是软盘、光盘或者其它可移动的媒体。这种办法可以帮助启动损坏的系统,解决存在的问题并将其迅速恢复。

Linux 急救盘一般分为两类,每一类都有其优点,也有其缺点。第一类急救盘一般由某一特定的 Linux 发行商提供,所以其解决的问题只是针对运行该发行版的机器上出现的问题。这种类型的急救盘可能是启动过程中用软盘制作的,或者直接在发行版的安装盘上。不管是那一种情况,这种针对某一发行版的急救盘一般都反应了该发行版所用的启动管理器、文件系统和工具的一些情况。

第二类急救盘是独立于某一特定的发行版的,一般是在一张软盘或者一张光盘之上。这种类型的急救盘是一种非常灵活的解决方案,它不依赖于任何一个发行版,使用它可以修复很多版本的 Linux 系统。不过,如果该工具不支持你使用的系统,那么你就不得不采用其它的办法了。

很显然,不管是那一种类型的急救盘,我们希望永远都不要用上它,但是一旦真的碰上问题,就会发现有一张急救盘还是非常必要的。我们先来看一看各种需要使用急救盘的情况,然后关注一下由各 Linux 发行版的急救机制。在下一次,我们再通过比较来看一些独立于发行版的、功能强大的急救盘。

使用急救盘

和所有其它的操作系统一样,Linux 自己带有一些工具,它们可以在系统启动过程中自动地修复一些常见问题。当然,在此所说的问题不包括硬件方面的错误,只是指启动过程本身或者启动程序自检出现错误导致系统无法启动的问题。例如,由于硬盘扇区(比如 MBR )丢失或者损坏、引导程序需要的程序(LILO 或者GRUB )丢失、错误的引导程序配置、内核丢失或者损坏导致的启动问题。

假设内核和引导程序文件本身没有问题,问题出现在 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、交换分

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有