这章简单描述下系统的启动流程,主要以破环修复实验为主:
系统启动基本过程:
Linux系统启动过程大致按照如下步骤进行(这是一个简述):
第一阶段:BIOS启动引导阶段;
在该过程中实现硬件的初始化以及查找启动介质;
从MBR中装载启动引导管理器(GRUB)并运行该启动引导管理
第二阶段:GRUB启动引导阶段;
装载stage1
装载stage1.5
装载stage2
读取/boot/grub.conf文件并显示启动菜单;
装载所选的kernel和initrd文件到内存中
第三阶段:内核阶段:
运行内核启动参数;
解压initrd文件并挂载initd文件系统,装载必须的驱动;
挂载根文件系统
第四阶段:Sys V init初始化阶段:
启动/sbin/init程序;
运行rc.sysinit脚本,设置系统环境,启动swap分区,检查和挂载文件系统;
读取/etc/inittab文件,运行在/et/rc.d/rc(N).d中定义的不同运行级别的服务初始化脚本;
打开字符终端1-6号控制台/打开图形显示管理的7号控制台
同时在上述过程中各阶段所需要读取的文件和操作的对象:
BIOS启动引导阶段 GRUB启动引导阶段 内核阶段 /init/sysinit阶段
None /boot/grub/grub.conf /boot/vmlinuz-<version> /etc/rc.d/rc.sysinit
/boot/grub/stage1_5 /boot/initrd-<version> /etc/inittab
/boot/grub/stage2 /etc/rc.d/rc<#>.d
/etc/rc.d/init.d/*
步骤:1、开机启动读秒后按esc键,进入GUN GRUB 窗口,按a进行内核参数修改。
2、chkconfig –list testsrv 查看服务所有模式下的启动状态
步骤:1、开机进入救援模式,按下面步骤,打开一个shell。
2、按照下图,进行操作,
3 、exit,退出重启.
重启时的界面如下图:
d、如果 password –encrypted 生成的加密口令,放在 title这一行的下面,则变成开机启动 时的密码;
输入对应密码才能启动。
实验五:/etc/grub/grub.conf文件里,initrd 与kernel这两行的顺序不能颠倒,如果顺序反了,如何修复?
启动时报错的界面如下图:
1、重启,按e进入编辑命令模式
2、 启动完成后,再 修改/boot/grub/grub.conf文件;
实验六: 删除/etc/fstab 和/boot ,并恢复?重启后界面如下图:
步骤:1、重启,在读进度条界面快速按esc键,选择下图中救援模式:
2,下图发现,找不到系统的分区了,要先修复/etc/fsatb,让系统识别分区。
3、通过下图中的操作找出/boot和”/”分区,并修复/etc/fstab文件:
4、修复完/etc/fstab 文件,保存退出,重新启动,再次进入救援模式,可以看到,这时候,系统找到根分区了,并且被挂载到/mnt/sysimage下;
可以进行chroot /mnt/sysimage 切根操作了。如下图:
5、先切换根,挂载光盘,发现光盘下有vmlinuz内核文件,移动内核文件到/boot,操作如下图:
#grub-install /dev/sda
8、/boot/grub下缺少grub.conf文件。手动编辑一下,下图中注释可以不写。
注意:如果上述实验步骤8,grub.conf文件写错了,重启时会出现下图的界面:
这里也可以直接写grub.conf文件,然后重新加载boot,就不需要再重新进救援模式重新修改grub.conf文件了;节省大量时间。
等机器重启后,再把grub.conf文件修改好。操作如下图:
原创文章,作者:shenjialong,如若转载,请注明出处:http://www.178linux.com/79676