本章重点:
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 到指定目录即可完成修复