linux系统启动流程
BIOS:
- (Basic Input Output System)基本输入输出系统,一般保存在主板上的BIOS芯片中
- BIOS是计算机启动时运行的第一个程序,负责检查硬件并且查找可启动设备。
- 可启动设备在BIOS设置中进行定义,如USB、CDROM、HD.
MBR:
- 大小为512字节,
- BIOS找到可启动设备后执行其引导代码,引导代码为MBR的前446字节,因为他的容量很小,不可能完成对操作系统的所有引导工作,因此,它主要完成的是一个跳转的功能,具体的引导程序在GRUB中。
GRUB:
- 它是现在linux使用的主流引导程序,可以用来引导现在几乎所有的操作系统。
- grub的相关文件保存在/boot/grub目录中,配置文件为/boot/grub/grub.conf。
- /boot/grub/grub.conf==> stage1 512字节,是MBR的镜像文件,可用于备份 ==> xxx_stage1_5,加载对文件系统的支持,==> stage2 ==> 内核
-
配置文件中内容如下:
default=0——默认采用第一个配置
timeout=0——在开机的引导画面上等待的时间,该设置为0秒
splashimage=(hd0,0)/grub/splash.xpm.gz——引导界面的背景,使用的一个.xpm.gz格式的图片,可自己手动定制。
hiddenmenu——隐藏菜单栏
配置格式如下:
title Fedora (2.6.35.13-92.fc14.i686.PAE)——开机引导画面上显示的名称,可随意设置
root (hd0,0)——操作系统所在的分区,该配置为第一块硬盘的第一个分区
kernel /vmlinuz-2.6.35.13-92.fc14.i686.PAE(内核文件) ro (参数,只读)root=/dev/mapper/vg_embedclub-lv_root (告诉引导程序根分区所在位置)rd_LVM_LV=vg_embedclub/lv_root rd_LVM_LV=vg_embedclub/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=zh_CN.UTF-8 KEYTABLE=us rhgb quiet
initrd /initramfs-2.6.35.13-92.fc14.i686.PAE.img——内核模块打包文件
KERNEL:
- MBR的引导代码将负责找到并加载linux内核,一般还会加载内核模块打包文件:initrd /initramfs-2.6.35.13-92.fc14.i686.PAE.img
- linux为保持kernel的精简将一些不常用的驱动、功能编译为模块,在需要的时候动态加载,而这些模块被打包保存为一个initramfs文件。
- 早期版本的linux使用initrd文件,initramfs是initrd的替代优化版本,比initrd更加节省空间,更加灵活。
- 命令dmesg可以查看本次启动时内核的输出信息,也可以通过/var/log目录下的dmesg进行查看。
INIT:
- linux系统中运行的第一个进程,是所有进程的父进程,会在操作系统的整个运行过程中一直存在,直到系统关机。top 命令可以查看PID,其中1为init
- 调用/etc/rc.d/rc.sysinit负责对系统进行初始化,挂载文件系统,并且根据运行级别启动相应服务。
- linux运行级别:
0 关机
1 单用户模式
2 不带网络的多用户模式
3 多用户模式
4 未使用
5 xll 图形化多用户
6 重新启动 - 可以通过/etc/inittab配置文件修改默认的运行级别
每个级别对应的启动服务保存在/etc/rc.cd/tc[0123456]中
命令runlevel可显示当前及上一个运行级别
命令init可以改变当前运行级别
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。