linux 系统启动的配置
2010/4/8 12:13:10
我们将以问题开始说明:
案例:
由于n年前的误操作,导致系统启动的时候,提示如下错误:
Couldn't find matching filesystem:LABEL=/iloveyao
*** An error occurred during the filesystem check.
***Dropping you to a shell; the system will reboot
***When you leave the shell
故障分析:
linux系统在启动的时候,为了加载相关的文件系统,会去检查配置文件 /etc/fstab ,然后按照其内容将相关分区mount以供我们使用。在系统启动后,我们还可以cat /etc/mtab 查看那些文件系统已经mount。也就是说 /etc/mtab 他和 /etc/fstab 的不同点在于:一个是确实已经mount的(包括操作系统建立的虚拟文件等)、一个是准备mount(但不一定都是mount成功的)。
其中,如果 /etc/fstab 配置错误,或者对文件系统进行了相关操作,但是没有更新 /etc/fstab ,就会导致相应问题出现。
根据上面的提示,我们可以判断, 由于系统没有发现label名称为 /liloveyao 的分区,从而导致系统无法正常启动。而且我们也可以推断出,这个出错的配置在 /etc/fstab 文件中的大概内容如下(如果是默认安装的linux9):
LABEL=/iloveyao 文件名 ext3 defaults 1 2
这里简要解释上面一下:
第一列:代表我们要加载分区的label名称,除了使用label名称,我们也可以直接使用分区的设备名称,如 /dev/sda3 或者 /dev/sda6。需要注意label的名称要加“/”,否则,启动时会报错。
第二列:代表该分区加载到哪个 目录文件,例如为 /iloveyao ,当然目录名称可以任取,但是关键是要确实存在这个目录名称。
第3列:代表文件系统
第4列:代表启动的时候加载分区
第5、6:linux对齐检查备份使用的,除了 / 分区,其他正常分区多为 1 2
那么,系统为什么没有label名称为 /liloveyao 的分区呢?
最大的可能就是:
a、分区存在,但是分区上次启动前,被改了 label 名称
b、分区移走了,当然 label 也就没有了
附:有一种情况,就是 label名称为 /iloveyao 的分区存在,但在 加载的目录文件不存在,这个时候,系统提示是不一样的。
解决方法:
a、针对a的情况,重新修改该分区的label名称即可,例如该分区设备名称为 /dev/sda6 ,那么修改方法有:
e2label /dev/sda6 /iloveyao
还有:mkfs.ext3 -L /iloveyao /dev/sda6
之后重新启动。
b、针对b的情况,需要修改 /etc/fstab 文件,将关于 /iloveyao 的那行删除,然后重启。
***这里引申出一个问题,就是不知道各分区的 label名称是什么,怕修改错了,把正常的分区的label也改了,解决方法是使用下面的命令进行修改前的检查:
fdisk -l
然后:
e2label /dev/sda1 (或者为 /dev/hda1 ,下同 )
e2label /dev/sda2
e2label /dev/sda3
e2label /dev/sda5
e2label /dev/sda6
……
然后:cat /etc/fstab 或者 df
发现配置正常的分区,就不要去改了。
案例:
由于n年前的误操作,导致系统启动的时候,提示如下错误:
Couldn't find matching filesystem:LABEL=/iloveyao
*** An error occurred during the filesystem check.
***Dropping you to a shell; the system will reboot
***When you leave the shell
故障分析:
linux系统在启动的时候,为了加载相关的文件系统,会去检查配置文件 /etc/fstab ,然后按照其内容将相关分区mount以供我们使用。在系统启动后,我们还可以cat /etc/mtab 查看那些文件系统已经mount。也就是说 /etc/mtab 他和 /etc/fstab 的不同点在于:一个是确实已经mount的(包括操作系统建立的虚拟文件等)、一个是准备mount(但不一定都是mount成功的)。
其中,如果 /etc/fstab 配置错误,或者对文件系统进行了相关操作,但是没有更新 /etc/fstab ,就会导致相应问题出现。
根据上面的提示,我们可以判断, 由于系统没有发现label名称为 /liloveyao 的分区,从而导致系统无法正常启动。而且我们也可以推断出,这个出错的配置在 /etc/fstab 文件中的大概内容如下(如果是默认安装的linux9):
LABEL=/iloveyao 文件名 ext3 defaults 1 2
这里简要解释上面一下:
第一列:代表我们要加载分区的label名称,除了使用label名称,我们也可以直接使用分区的设备名称,如 /dev/sda3 或者 /dev/sda6。需要注意label的名称要加“/”,否则,启动时会报错。
第二列:代表该分区加载到哪个 目录文件,例如为 /iloveyao ,当然目录名称可以任取,但是关键是要确实存在这个目录名称。
第3列:代表文件系统
第4列:代表启动的时候加载分区
第5、6:linux对齐检查备份使用的,除了 / 分区,其他正常分区多为 1 2
那么,系统为什么没有label名称为 /liloveyao 的分区呢?
最大的可能就是:
a、分区存在,但是分区上次启动前,被改了 label 名称
b、分区移走了,当然 label 也就没有了
附:有一种情况,就是 label名称为 /iloveyao 的分区存在,但在 加载的目录文件不存在,这个时候,系统提示是不一样的。
解决方法:
a、针对a的情况,重新修改该分区的label名称即可,例如该分区设备名称为 /dev/sda6 ,那么修改方法有:
e2label /dev/sda6 /iloveyao
还有:mkfs.ext3 -L /iloveyao /dev/sda6
之后重新启动。
b、针对b的情况,需要修改 /etc/fstab 文件,将关于 /iloveyao 的那行删除,然后重启。
***这里引申出一个问题,就是不知道各分区的 label名称是什么,怕修改错了,把正常的分区的label也改了,解决方法是使用下面的命令进行修改前的检查:
fdisk -l
然后:
e2label /dev/sda1 (或者为 /dev/hda1 ,下同 )
e2label /dev/sda2
e2label /dev/sda3
e2label /dev/sda5
e2label /dev/sda6
……
然后:cat /etc/fstab 或者 df
发现配置正常的分区,就不要去改了。