Linux系统的启动的大概过程:
1:POST自检,BIOS将控制权交给第一启动设备,这里一般是交给硬盘
2:载人MBR,grub引导程序可以安装在MBR和可引导的分区上,这里是GRUB的第一阶段,定位grub引导的位置,如果在这一阶段出现问题,可以在救援模式重新安装下grub引导程序解决
3:读取/boot/grub/grub.conf文件,确定boot分区,内核以及初始化闪存盘的位置,如果该文件丢失,可以通过在"grub >"模式下手动指定,如果内核和初始化闪存盘出现问题,需要进入救援模式修复
4:读取/etc/modprobe.conf文件,该文件定义了硬盘存储,网卡,声卡等别名
5:读取/etc/fstab文件,该文件定义了分区,挂载点挂载选项,文件系统格式等信息
6:读取/etc/inittab文件,该文件定义默认的运行级,终端等一系列重要的参数
7:读取/etc/rc.sysinit文件,该文件定义了主机名,seLinux,系统时间,lvm卷组,清除旧的pid等等一系列重要的参数
8:执行/etc/rc.d/rc 1-6这一组的脚本,启动system V服务
9:执行/etc/rc.d/rc.local文件
10:如果是在运行级5,则读取/etc/X11/prefdm文件,进入图形登录窗口
常见的系统启动故障及排除方法:
1:/bin/bash被删除后,将无法关机!用光盘进行rescue模式修复的时候将无法进行chroot操作
rpm -Uvh --force /mnt/source/Server/bash-*.rpm --root /mnt/sysimage
救援模式可以从光盘,网络,硬盘等方式启动获取,其中网络支持nfs,http,ftp,首选nfs方式,解决了安装源问题。
2:/bin/mount被删除后,无法从内核空间进入用户空间
rpm -Uvh --force /mnt/source/utils-Linux*.rpm --root /mnt/sysimage
3:/boot/initrd.*.img被删除后,grub无法正常引导,出现file not found这样的错误提示,进rescue模式,用mkinitrd命令重建initrd.*.img或重新安装次内核可解决此问题
rpm -Uvh --force /mnt/source/kernel-*.rpm --root /mnt/sysimage
chroot /mn/sysimage
mkinitrd initrd.*.img `uname -r`
4:grub被删除或者破坏后,系统无法到达引导选项选择页!可以进救援模式修复
chroot /mnt/sysimage
grub-install --no-floppy --recheck /dev/sda
--no-floppy选项表示忽略软驱,--recheck表示重新进行下BIOS检测
5:使用光盘下的isoLinux目录下的initrd.img和vmlinuz构建一个本地的救援环境
mount /dev/cdrom /mnt
cp /mnt/isoLinux /boot
vi /etc/grub.conf
title Red Hat rescue
root (hd0,0)
kernel /isoLinux/vmlinuz rescue
initrd /isoLinux/initrd.img