Linux启动流程
Linux系统启动流程:
- BIOS(或其它)
- MBR:Boot code(或其它可启动设备)
- 执行引导程序:grub
- 加载内核
- 执行init
BIOS(或其它)
BIOS:基本输入输出系统,一般保存在主板的BIOS芯片中。
说明:
- 主板启动后运行的第一个程序就是BIOS,负责检查硬件并查找可启动设备(带引导程序的,即程序的前512字节的最后两位是55aa);
- 可在启动BIOS时设置对可启动设备的启动顺序进行定义,如COROM、USB、HD(也可从网络启动);
MBR(或其它可启动设备)
说明:BIOS找到硬盘后执行其引导代码。
引导程序-GRUB
GRUB:Linux使用的主流引导程序,几何可以引导所有的操作系统。
说明:
- grub相关文件保存在/boot/grub目录下
- grub配置文件为/boot/grub/grub.conf,格式如下:
内核-KERNEL
说明:
- 引导程序负责找到并加载Linux内核;
- 内核保存在/boot/vmlinuz中;
- 一般还会加载内核模块打包文件(为了保持linux内核精简,通常将一些不常用的驱动、动能编译成模块打包)/boot/initramfs(initrd的优化版);
- 命令dmesg可查看本次启动时内核的输出信息(通常用于查看内核级的故障信息,或者有些设备驱动不起来时查看);
INIT
init:是Linux系统启动后运行的第一个进程,调用/etx/rc/d/rc/sysinit对系统进行初始化,挂载文件系统,并根据运行级别启动相应服务。
Linux运行级别:(通常linux的运行级别为3或者5)
- 0:关机
- 1:单用户模式
- 2:不带网络的多用户模式
- 3:多用户模式
- 4:未使用
- 5:XII图形化模式
- 6:重新启动
runlevel:
- 可通过配置文件/etc/inittab来修改默认的运行级别;
- 每个运行级别对应的启动服务保存在/etc/rc.d/rc[0123456].d中;
- 命令runlevel可显示上一个及当前运行级别;
- 命令init可改变当前的运行级别;
单用户模式:在加载内核时对内核传递参数“I”或“single”可进入单用户模式
- 单用户模式下不启动任何服务;
- 用户模式可以直接登录root用户,无需密码,且可用passwd命令修密码;
- 可在grub.conf文件中设置密码,用于在加载内核时限制修改加载信息,如图: