本章重点:

1.linux引导流程

2.linux运行级别

3.linux启动服务管理

4.GRUB配置与应用

5.启动故障分析解决

linux启动流程

1.固件(fireware):固话在硬件上的程序,主要有CMOS/BIOS

2.post加电自检,

1.检测硬件信息,如cpu,内存,等硬件信息是否工作正常。

2.安全设置

3.可引导介质列表

4.可引导介质的搜索程序

5.电源管理

6.启动细节信息


3.读取MBR(master boot record)主引导记录

MBR位于0柱头0磁头1扇区

读取主引导记录过程:

1.boot loader自举程序载入内核

载入内核后

驱动硬件:针对别的嵌入式内核可以做删减,只读取该平台所需要的驱动即可,驱动与固件检测不同,驱动所指在软件层面上认识硬件。

启动init:初始化进程是系统启动的第一个进程,启动后会读取inittab文件,并执行缺省的运行级别,从而继续引导,在UNIX中,init进程的pid也就是进程id恒为1,一般

别的进程是随机变化的,但是init进程不同,从pid看出该init进程向一个更高级的进程负责,便是kernel scheduler内核调度器,这个调度器是分配cpu时间的,是linux分

时特性的执行者,从而获取cpu时间。

ps:在linux中的两种进程

1.孤儿进程:父进程死亡,子进程未死亡,此时的子进程便会被指向init进程。

2.僵尸进程:子进程死亡,父进程未死亡。

从 ps –le |more 可以看到进程的信息

2.partition table

3.Magic Number


init进程会读取 /etc/inittab文件

linux运行级别:

0 halt关机,不要设置为默认运行级别

1 单用户模式

2 多用户模式,无图形界面,没有NFS(net file server)文件共享服务

3 多用户模式,有NFS

4 unused自定义运行级别,也可以说是预留运行级别

5 xll安装系统后默认的,即xwindow的版本号

6 reboot重启,也不要设置为默认。


可以通过runlevel 查看当前运行级别。或者telinit切换运行级别

也可以ctrl+alt FN n为运行级别号


针对GRUB配置文件

default定义了缺省启动的操作系统0表示第一个

timout缺省等待时间,就是GRUB默认是3秒键盘不反应就进入

splashimage定义了GRUB界面图片(如果需要自定义那就弄小点,这时候显卡还不能很好的运行)

hidden menu隐藏菜单

ps:(hd0,0)第一块硬盘的第一个分区  /boot若未单独划分,则属于根分区

title定义了菜单项的名称

root设置了GRUB(hd0,0)根设备所在分区

kernel定义内核所在位置

initrd载入镜像文件



在忘记root密码的时候可以进入单用户模式,在GRUB按e(edit)进入编辑行模式选中kernel行再按e 在新的界面最后一行输入1或者s(single) 再按B即可进入单用户模式。通过passwd更改root密码


GRUB命令,可以通过hiddenmenu进行设置。

e:编辑当前行

c:commod

b:boot

d:删除当前行

1.设置GRUB密码可以通过GRUB自带的GRUB-md5-crpyt

复制密文粘贴到grub conf title上

password –md5 密文

再进入到GRUB时候则需要P来输入密码了


GRUB修复

当开机后进入GRUB只有

grub>这样的提示符,则看看 /grub/grub.conf

则进入grub命令行进行手工引导


如果整个inittab文件被删除,则需要进入到BIOS使用镜像进行修复,进入F5修复模式,输入linux rescue 进入修复

会将数据挂载到 /mnt/sysimage

cp inittab 到指定目录即可完成修复