系统启动流程
BIOS
开机后BIOS启动进行一些自检
MBR:Boot Code
磁盘分区,同时包含了引导代码
执行引导程序-GRUB
操作系统的引导程序,用来加载内核,不同操作系统不一样,linux用的最多的是
GRUB
加载内核
到这一步操作系统的底层就已经启动起来了
执行init
执行第一个进程init
runlevel
系统启动的级别
1-BIOS
BIOS(Basic Input Output System)我们称之为基本输入输出系统,
一般保存在主板上的BIOS芯片中,可以说我计算机启动的第一个程序
计算机启动的时候第一个运行的就是BIOS,BIOS负责检查硬件并查找可启动设备
方式可启动设备(就具有引导信息)
可启动设备在BIOS设置中进行定义,如USB、CDROM、HD
通过什么去识别可启动设备?答:MBR
2-MBR
BIOS找到可启动设备后执行其引导代码
引导代码为MBR的前446字节
MBR由于大小有限其实只是做一个跳转,跳转到去寻找真正的引导程序GRUB
3-GRUB
Grub是现在Linux使用的主流引导程序
可以用来引导现在几乎所有的操作系统(包括我们常用的win pe之类的启动盘)
Grub的相关文件保存在/boot/grub目录中
Grub配置文件为/boot/grub/grub.conf
4-KERNEL
MBR的引导代码将负责找到并加载Linux内核
Linux内核保存在/boot/vmlinux-2.6.32-279.el6.i686
一般还会加载内核模块打包文件:/boot/initramfs-2.6.32-279.el6.i686.img
Linux为了保持kernel的精简将一些不常用的驱动、功能编译成为模块,在需要
的时候动态加载,而这些模块被打包保存为一个initramfs文件。
早期版本Linux使用initrd文件,initramfs是initrd的替换优化版本,比initrams更加节省空间,更加灵活。
命令dmesg可以查看本次启动时内核的输出信息
5-INIT
init时linux系统中运行的第一个程序
调用/etc/rc.d/rc/sysinit负责对系统进行初始化,挂载文件系统,并根据运行级别启动相应服务
Linux运行级别
-0 关机
-1 单用户模式
-2不带网络的多用户模式
-3 多用户模式
-4 未使用
-5 XII 图形化模式
-6 重新启动
可以通过/etc/inittab配置文件修改默认的运行级别
每个级别对应的启动服务保存在/etc/rc.d/rc[0123456].d中
命令runlevel可显示当前以及上一个运行级别
命令init可以改变当前运行级别
当用户修改root密码
当root 忘记密码需要修改密码需要进入单用户模式
在grub里传递一个参数“1”
为内核传递参数“1”或“single”可系统进入单用户模式
单用户模式下不启动任何服务
单用户模式直接以root用户登陆,并且不需要修改密码
可以使用passwd修改root密码
为防止任何接近物理机的人都能修改root密码
GRUB加密
通过在grub.conf中的启动配置中加入如下参数即可对grub进行加密
password --md5 $ 1 $aoWpTe$/MWUUYbBIF.2RUZK8nbWU0
加密后的密码可以通过grub-md5-crypt生成
网友评论