1 案例描述
此文对平时测试过程中由不同原因导致Linux系统启动失败这个结果做一些分析并给出解决方案。
(注:此文中的“系统”专指RHEL4 Linux操作系统,内核版本:2.6.9-42。)
2 fsck.ext3中途退出,系统启动失败。
2.1 fsck简介
当执行fsck命令时,fsck命令如果发现存在孤立的文件或目录,这些孤立的文件或目录对于系统管理员或用户来说,无法访问到它,因为它与它的上级目录失去了关联,如果用户允许fsck重新把它们找回来的话,fsck命令就会把这些孤立的文件或目录放在文件系统的/lost+found目录下,并用各自的inode号来命名,以便用户查找自己需要的文件。
因此当某个用户发现自己丢失了某个文件,可以在执行fsck之后到/lost+found目录下去查找,这时通过文件名已无法辨认出文件的作用,只能用file之类的命令来确定文件的类型,如果是数据文件,可以用more或vi命令来查看,如果是二进制文件,可以用dbx命令来调试或者试着执行它(注意它可能是一个具有破坏性的程序),知道文件或目录的作用之后,可以对其进行改名。
如果用户不允许fsck把这些孤立的文件或目录找回来,那么fsck命令就会破坏这些文件或目录,彻底丢失这些文件或目录,用户或系统管理员永远也无法找回它们。
2.2 问题描述
如果需要读或写分区的服务检测到分区坏或只读时会对该分区进行fsck动作,以期使分区能够完整保存原来的文件。但在测试过程中发现系统执行fsck命令时失败,并报告0x20错误。
2.3 原因分析
没有加载swap分区。
2.4 解决步骤
1) fdisk –l找到swap分区/dev/sda2
2) swapon /dev/sda2,使能swap分区
3) 对需要进行fsck的分区手工执行fsck动作。
4) fsck完成后,编辑文件/etc/sysconfig/dump
## Type: list(0,1) ## Default: 1 # DUMP_ACTIVE indicates whether the dump process is active or not. If this # variable is 0, the dump kernel process will not be activated. # DUMP_ACTIVE="1" 更改上一行为: DUMP_ACTIVE="0" |
5) 重启系统。
(注:若系统中无swap分区,可以先在一块空闲分区上dd一个块,然后通过mkswap命令把该块转为swap系统,最后执行swapon把swap系统挂载到系统。)