Linux(18)系统启动详解

系统启动流程

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生成 

你可能感兴趣的:(Linux(18)系统启动详解)