对于操作系统出现的问题,虽然出现的问题可能千差万别,不过在多数情况下都可以用相对简单统一的一些方法来恢复系统,下面我们就针对上面提出的几个问题,结合Redhat Linux系统环境,给出一些常用的、普遍的解决问题的方法.
1./etc/fstab文件丢失,导致系统无法启动
/etc/fstab文件存放了系统中文件系统的相关信息,如果正确的配置了该文件,那么在linux启动时,系统会读取此文件,自动挂载linux的各个分区,如果此文件配置错误,或者丢失,就会导致系统无法启动,具体的故障现象是在检测mount partition时出现:
starting system logger
此后系统启动就停止了.
针对这个问题,我们的第一思路就是想办法恢复/etc/fstab这个文件的信息,只要恢复了此文件,系统就能自动挂载每个分区,正常启动.可能很多读者想到的是将系统切换到单用户模式下,然后手动挂载分区,结合系统信息,重建/etc/fstab文件.
但是这种方法是行不通的,fatab文件丢失导致linux无法挂载任何一个分区,即使linux还能切换到单用户下,那么此时的系统也只是一个read-only的文件系统,无法向磁盘写入任何信息.
我们介绍另外一个方法,就是利用linux rescue修复模式登录系统,进而获取分区和挂载点信息,重构/etc/fstab文件.
这里以rhel5为例,将系统第一章光盘放入光驱,设置BOIS从光驱启动,这样系统就从光驱引导,然后在boot后输入:linux rescue,如图1所示:
图1设置linux进入修复模式
接着系统自动开始引导,进入图2所示画面:
图2 选择语言
这里是选择模式使用的语言,可以按照自己需要设定,我们这里选择“English“,然后按tab键,选中“ok”,回车进入下一步.
下面进入的是键盘选择界面,如图3所示,这里选择默认的“us”即可.
图3 选择键盘类型
下面进入网络配置界面,如图4所示:
图4 是否启用网络
这里是选择是否启用网络,系统已经无法启动,我们已经在linux系统上进行操作了,启用网络与否都无所谓.这里选择不启用.
下面到了最关键的步骤了,如图5所示,修复模式会自动将系统的所有分区挂载到/mnt/sysimage目录下,选择“Continue”,则修复环境进入到read-write状态下,可以对分区进行读写操作,选择“Read-Only”,修复环境进入到只读模式,我们要重建fstab文件到/etc目录下,因此选择“Continue”进入可读写模式下.
图5 选择修复模式的启动方式
下面是一个友情提示界面,如图6所示,fstab文件丢失,修复模式找不到任何可挂载的分区,从这里可知,修复模式在这里也读取/etc/fstab文件,回车,进入下一步.
图6 无法挂载系统任何分区
下面就进入了修复环境下,可以进行操作了.如图7所示
图7 修复模式命令行
上面详细演示了如何进入linux的修复模式,其实很多情况下,linux无法启动时,都可以通过这个方式登录系统进行修复和更改操作.
下面是恢复/etc/fstab文件的详细过程:
查看一下系统分区情况,如下所示:
sh-3.1# fdisk -l
Disk /dev/sda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 25 200781 83 Linux
/dev/sda2 26 1300 10241437 83 Linux
/dev/sda3 1301 1682 3068415 83 Linux
/dev/sda4 1683 5221 28427017 5 Extended
/dev/sda5 1683 1873 1534176 83 Linux
/dev/sda6 1874 2064 1534176 83 Linux
/dev/sda7 |