1 系统启动的流程
BIOS -> MBR+boot code -> 执行引导程序: GRUB -> 加载内核 -> 执行init -> 运行runlevel
2 启动详解
1 BIOS
1 BIOS 指的是基本的输入输出系统(basic input output system),一般保存在主板上的BIOS芯片中
2 计算机启动的第一步一般都是先启动BIOS,然后BIOS去检查硬件以及查找可启动的设备
3 可启动的设备可以在BIOS中进行设置,包括USB , CDROM , HD等
2 MBR
1 MBR是512字节的,前446字节为引导代码
2 BIOS“通过第一个扇区的512字节中最后两个字节为55aa来判断“设备为启动设备
3 MBR只是去加载引导程序GURB
3 GRUB
1 GRUB是现在Linux使用的主流的引导程序
2 GRUB可以引导几乎所有的操作系统
3 GRUB的相关文件保存在/boot/grub中
4 KERNEL
1 MBR的引导代码将负责找到并加载Linux的内核
2 Linux内核保存在 /boot/vmlinuz......
3 一般还会加载内核模块的打包文件 /boot/init.....
4 Linux为了保持内核的精简会将一些不常用的驱动,功能编译为模块,然后在要用的时候动态的加载,而这些模块被保存为initrmfs文件
5 早期的Linux是使用initrd文件,但是现在的绝大多数的Linux版本都是使用initrmfs,这样能够更节省空间,更加灵活
6 命令dmesg可以用来查看被次启动内核的输出信息
5 INIT
1 init 是Linux运行的第一个进程,init是所有进程的父进程,编号为1
2 调用/etc/rc.d/rc.sysinit来对系统进行初始化,挂载文件系统,并且根据运行级别启动相应的程序
3 Linux的运行级别
0 关机
1 单用户模式
2 不带网络的多用户模式
3 命令行的多用户模式
4 未使用
5 图形界面多用户模式
6 重启
4 我们可以通过runlevel查看之前和当前的运行级别
5 命令init可以用来查看改变当前的运行级别
6 单用户修改root密码
1 为内核传递参数“1”或者是“single”可使系统进入单用户模式
2 单用户模式不启动任何的服务
3 单用户模式直接以root登录,不需要密码
4 我们可以通过passwd来修改root的密码
5 由于任何接近我们这个物理机的人都有可能修改我们的root密码,因此我们可以通过GRUB加密来防止密码被修改
6 我们在grub.conf中的启动设置里面添加一行password --md5 加密后的串
密码我们可以通过grub-md5-crypt 生成