Linux系统启动过程故障排查
1、首先我们来认识一下内核。查看/etc/grub.conf 内核文件。可以看到许多需要加载的文件和镜像。
2、我们看一下有这么一个镜像文件initrd-2.6.18-164.el5.img
查看文件类型[root@localhost abc]# file initrd-2.6.18-164.el5.img
也可以查看该文件的解压缩过程,[root@localhost abc]# zcat initrd-2.6.18-164.el5.img |cpio -id(cpio -id 是解压缩命令)
解压缩之后就可以看到 ext3.ko 模块了,这是为了正常的把内核文件转交给根,必须加载一些驱动。驱动又放在根下,为了防止绕弯,于是加载了initrd-2.6.18-164.el5.img这个镜像文件。
存放进程大文件:/proc/文件下,当我们开启一个程序时,该进程的进程id号,都在该文件夹里。
[root@localhost proc]# cat cmdline
ro root=LABEL=/ rhgb quiet
[root@localhost proc]# dmesg |grep -i cpu (用dmesg 命令查看各种硬件信息)或cat cpuinfo命令。
我们要是感觉网络出现问题,可以考虑查一下/net/ipv4/的文件,查看是否被改动。
例如 icmp_echo_ignore_all 的默认值是0 ,如果我们把该值改成1时,我们再ping这个机器ip就再也ping不通了。用echo “1” > icmp_echo_ignore_all 的指令修改。
这样改只是临时修改,如要想永久修改。得修改配置文件,/etc/sysctl.conf 中 重启后生效,
我们可以运行这个命令,就不需要重启了,:sysctl -p .
查看我们系统加载的模块:lsmod 命令查看。可以看到每一行一个模块。Used by指的是该模块被加载应用了多少次。查看模块 modinfo 卸载模块:rmmod name
重新加载 insmod 路径 依赖模块 或者 modprobe 模块名称 (自动找路径,依赖关系)
模块参数定义改变该文件/etc/modprobe.conf参数。 可以查看一下。
系统启动过程和故障处理
1、 通电---cmos --post 硬件自检。
2、 过程如下图所示:
如果硬件出现问题一直出现在开机自检(BIOS)位置,grub 菜单:
第一阶段MBR引导 第二阶段grub 菜单的加载参数,和必要的驱动,/etc/grub.conf 为配置文件。
接下来我们模拟一下一个故障,尝试故障排查的过程。
模拟grub菜单(grub.conf)出现故障,应该如何排除
1: /etc/grub.conf和/boot/grub/grub.conf中的grub.conf实质上一样的
2:模拟grub菜单出故障,将grub.conf改名即可
[root@localhost ]# cd /boot/grub/ #切换到该目录下
[root@localhost ] grub]# mv grub.conf grub.conf.old #将grub.conf改名为grub.conf.old
[root@localhost ] grub]# init 6 #重启系统,观察遇到的结果
3:定义引导分区,输入root后按<tab>键
4:查找引导分区上的内核
上面是一个镜像文件的加载。
5:使用boot指令重新引导系统
6:测试引导是否成功:
7:[root@localhost ]# cd /boot/grub/ #切换到该目录下
[root@localhost grub]# mv grub.conf.old grub.conf #此时在系统中只有grub.conf.old,必须将其名 称改为:grub.conf,否则下次无法正常启动。
8:测试系统是否正常启动
模拟初始化脚本/etc/inittab出故障,编辑/etc/fatab,使其出现故障,应该如何排除
1:编辑/etc/fstab
2:[root@localhost ]# init 6 #重启系统,观察是否出现系统不能正常启动
3:(Repair filesystem)# #输入管理员口令后进入修复文件系统模式
(Repair filesystem)#mount �Co rw,remount / #将根目录冲新挂载并修改权限为rw
(Repair filesystem)#vim /etc/fstab #编辑该文件 如图:
4:(Repair filesystem)#init 6 #重启系统观察结果:登录成功
嗯,我们有可能会遇到这样的开机故障,那摩可以用这种方法试一试。应该能解决你所遇到的故障问题。
还有可多的故障我们或许会遇到,我会继续更新的。