⼀、系统故障
1. linux系统⽆法启动
原因1:
⽂件系统配置不当,⽐如/etc/fstab⽂件等配置错误或丢失,导致系统错误⽆法启动。⼀般是⼈为修改错误 或者⽂件系统故障。
排查⽅法:系统配置/etc/fstab错误或丢失⽽⽆法启动,当启动的时候,出现starting system logger后停⽌了;
解决⽅法:
想办法恢复/etc/fstab⽂件,利⽤linuxrescue修复模式登录系统,
从⽽获取挂载点和分区信息,重构/etc/fstab⽂件。
原因2:
⾮法关机,导致root⽂件系统破坏,也就是linux根分区破坏,系统⽆法正常启动。
排查⽅法:
Linux下普遍采⽤的是ext3⽂件系统,ext3是⼀个具有⽇志记录功能的⽇志⽂件系统,可以进⾏简单的容错和恢复,但是在⼀个⾼负荷读写的ext3⽂件系统下,如果突然发⽣掉电,就很有可能发⽣⽂件系统内部结构不⼀致,导
致⽂件系统破坏。
Linux在启动时,会⾃动去分析和检查系统分区,如果发现⽂件系统有简单的错误,会⾃动修复,如果⽂件系统破坏⽐较严重,系统⽆法完成修复时,系统就会⾃动进⼊单⽤户模式下或者出现⼀个交互界⾯,提示⽤户介⼊⼿动修复,现象类似下⾯所示:
从这个错误可以看出,系统根分区⽂件系统出现了问题,系统在启动时⽆法⾃动修复,然后进⼊到了⼀个交互界⾯,提示⽤户进⾏系统修复。
这个问题发⽣的机率很⾼,引起这个问题的主要原因就是系统突然掉电,引起⽂件系统结构不⼀致。⼀般情况下解决此问题的办法是采⽤fsck命令,进⾏强制修复。
解决⽅法:
根据上⾯的错误提示,当按下“Control-D”组合键后系统⾃动重启,当输⼊root密码后进⼊系统修复模
式,在修复模式下,可以执⾏fsck命令,具体操作过程如下:
[root@localhost /]#umount /dev/sdb5
[root@localhost /]#fsck .ext3 -y /dev/sdb5
e2fsck 1.39 (29-May-2006)
/ contains a file system with errors, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Inode 6833812 ref count is 2, should be 1. Fix? yes
Unattached inode 6833812
Connect to /lost+found? yes
Inode 6833812 ref count is 2, should be 1. Fix? yes
Pass 5: Checking group summary information
Block bitmap differences: -(519--529) -9273
Fix? yes…… ……
/: * FILE SYSTEM WAS MODIFIED **
/: 19/128520 files (15.8% non-contiguous), 46034/514048 blocks
需要注意的是,在执⾏fsck的时候,⼀定要先卸载要修复的分区,
然后再执⾏修复操作!
原因3:
linux内核⽂件丢失或者崩溃,从⽽⽆法启动,也可能是因为内核升级错误或者内核存在bug。
这种情况⼀般linux系统启动会报错找不到内核⽂件,⽽内核⽂件存储在/boot分区,主要包括内核⽂件和初始化⽂件:
1、vmlinuz:内核镜像⽂件,包含内核代码和数据
显示error: file’/vmlinuz’not found
解决⽅案:
a. 使⽤可启动修复介质启动系统,并挂载系统磁盘的/boot分区;
b. 从安装介质或系统备份中提取vmlinuz内核⽂件,复制到/boot分区;
c. 更新引导配置(grub.cfg),将menuentry块中的linux⾏
指向vmlinuz内核⽂件;
d. 重启系统,在引导菜单选择更新后的菜单项启动系统。
2、initrd/initramfs:初始化RAM磁盘,包含启动时需要的模块和驱动
显示error: file’/initrd.img’not found
解决⽅案:
a. 参考内核⽂件丢失的解决步骤a,挂载/boot分区和获取initrd.img⽂件;
b. 将initrd.img⽂件复制到/boot分区;
c. 更新grub.cfg,找到initrd相关⾏,将其指向新⽂件;
d. 重启系统,启动更新后的菜单项。
原因4:
硬件故障,⽐如主板、电源、硬盘等出现问题,导致linux⽆法启动。