一、故障现象

现网的一台小库主机(使用的redhat 6.x)在一次例行维护进行重启后,发现无法正常启动。通过HP ILO口登陆查看主机停留下“ An error occurred during the file system check” 处报错。具体截图类似如下(问题时未截图,该图为网上找来的图):

fstab
fstab

二、故障处理

在修复时,查看主机的/etc/fstab查看主机的分区挂载信息类似如下 :

1# cat /etc/fstab
2/dev/sda1     swap          swap       defaults              0 0
3/dev/sda2     /             ext3       acl,user_xattr        1 1
4/dev/sda3     /boot         ext3       acl,user_xattr        1 2
5/dev/sda8     /home         ext3       acl,user_xattr        1 2
6/dev/sda9     /opt          ext3       acl,user_xattr        1 2
7/dev/sda6     /tmp          ext3       acl,user_xattr        1 2
8/dev/sda5     /usr          ext3       acl,user_xattr        1 2
9/dev/sda7     /var          ext3       acl,user_xattr        1 2

可以看到除了根分区和swap之外,每项最后面的值都是1 2 ,最后两例的作用分别是是否做dump备份和做开机会扇区检查 ,这里全部选择了开机,如果有扇区检查不通过时,就会出现上面的界面。这里将所有的1 2 改为0 0,如下:

1# cat /etc/fstab
2/dev/sda1     swap         swap       defaults              0 0
3/dev/sda2     /            ext3       acl,user_xattr        1 1
4/dev/sda3     /boot        ext3       acl,user_xattr        0 0
5/dev/sda8     /home        ext3       acl,user_xattr        0 0
6/dev/sda9     /opt         ext3       acl,user_xattr        0 0
7/dev/sda6     /tmp         ext3       acl,user_xattr        0 0
8/dev/sda5     /usr         ext3       acl,user_xattr        0 0
9/dev/sda7     /var         ext3       acl,user_xattr        0 0

保存后再重新开机,发现可以正常启动。

三、故障总结

故障原因就是扇区开机自检时不通过导致主机无法正常启动。这里将/etc/fstab从第二到第列的内容再做下记录:

  • 第二列 Mount point 设备的挂载点,就是你要挂载到哪个目录下。
  • 第三列 filesystem 磁盘文件系统的格式,包括ext2、ext3、reiserfs、nfs、vfat等
  • 第四列 parameters 文件系统的参数
Async/sync 设置是否为同步方式运行,默认为async
auto/noauto 当下载mount -a 的命令时,此文件系统是否被主动挂载。默认为auto
rw/ro 是否以以只读或者读写模式挂载
exec/noexec 限制此文件系统内是否能够进行”执行”的操作
user/nouser 是否允许用户使用mount命令挂载
suid/nosuid 是否允许SUID的存在
Usrquota 启动文件系统支持磁盘配额模式
Grpquota 启动文件系统对群组磁盘配额模式的支持
Defaults 同事具有rw,suid,dev,exec,auto,nouser,async等默认参数的设置
  • 第五列:能否被dump备份命令作用

dump是一个用来作为备份的命令。通常这个参数的值为0或者1

0 代表不要做dump备份
1 代表要每天进行dump的操作
2 代表不定日期的进行dump操作
  • 第六列 是否检验扇区

开机的过程中,系统默认会以fsck检验我们系统是否为完整(clean)。

0 不要检验
1 最早检验(一般根目录会选择)
2 1级别检验完成之后进行检验