linux系统启动过程详解及root密码找回

系统启动流程

BIOS---->MBR:Boot Code---->执行引导程序GRUB(操作系统引导程序)---->加载内核---->执行init--->runlevel

其实不同的系统启动时,启动程序是大同小异的

1、BIOS

Basic input output system我们称之为基本输入输出系统,一般保存在主板上的BIOS芯片中。

计算机启动的时候第一个运行的就是BIOS,BIOS负责检查硬件并查找可启动设备

可启动设备在BIOS设置中进行定义,如USB、CDROM、HD

可启动设备的识别:第一个512字节的后2个字节是不是55AA来判断

2、MBR(512字节)

BIOS找到可启动设备后执行其引导代码

引导代码为MBR的前446字节,功能就是用来引导更复杂的系统引导程序(因446字节比较小,功能有限),linux中是引导GRUB

(MBR的前446字节,因446字节比较小,功能有限,它仅仅只作为一个跳转,跳转到真正的引导程序)


(扩展:若底层不是BIOS而是EFI,如苹果或高端的服务器,则分区格式或引导格式就会是GPT而不是MBR)


3、GRUB  

 

GRUB是现在linux使用的主流引导程序,它可以用来引导现在几乎所有的操作系统,winPE盘就是用GRUB做引导的

GRUB的相关文件保存在/boot/grub/中

GRUB配置文件为/boot/grub/grub.confspacer.gif

wKiom1aKkS6hEGaEAAC4t-3aVr0587.png

4、KERNEL

MBR的引导代码负责找到并加载内核

linux内核保存在/boot/vmlinuz-2.6.32-504.el6.x86_64

一般还会加载内核模块打包文件:/boot/initramfs-2.6.32-504.el6.x86_64.img

linux为保持kernel的精简将一些不常用的驱动,功能编译成为模块,在需要的时候动态加载,而这些模块被打包保存为一个initramfs文件

命令dmesg或cat /var/log/dmesg可以查看本次启动时内核的输出信息


5、INIT

INIT是linux系统中运行的第一个进程

调用/etc/rc.d/rc.sysinit负责对系统进行初始化,挂载文件系统,并且根据运行级别启动相应服务

linux运行级别:

0关机、1单用户模式、2不带网络的多用户模式、3多用户模式、4未使用、5 X11图形模式、6重新启动

可以通过/etc/inittab配置文件修改默认的运行级别

wKioL1aKkZChg0rHAAI8H_8wf0E851.jpgspacer.gif

每个级别对应的启动服务保存在、etc/rc.d/rc[0123456].d中

命令runlevel可显示当前及上一个运行级别

命令init可用以改变当前的运行级别

修改密码1、普通用户可以通过root用户更改密码

#passwd 用户名

2、root用户找回密码

单用户模式修改root密码

为内核传递参数“1”或“single“可系统进入单用户模式

单用户模式下不启动任何服务

单用户模式直接以root登陆,并且不需要密码

可以使用passwd修改密码

具体步骤:

开机启动时按上键或下键让界面停止-->按e键进入编辑界面-->选中kernel行按e键进入-->在末尾加入数字”1“后回车-->按b启动即进入单用户启动模式-->键入passwd命令修改密码-->按exit后即退出单用户模式并正常启动

3、GRUB加密

为防止任何人接触物理主机后恶意修改root密码,便需要grub加密

通过在grub.conf中的启动配置中加入如下参数即可对grub进行加密

加密后的密码可以通过grub-md5-crypt生成

具体步骤:

第一步:通过grub-md5-crypt生成加密密码

wKiom1aKkkLhY8QZAAAkdN9iuM4678.pngspacer.gif

第二步:在/boot/grub/grub.conf的配置文件行首加入加密后的密码

wKiom1aKklng0HSwAABHzuVp65Y807.pngspacer.gif

第三步:init 6重启系统,再进入单用户模式时按e已经不能进入编辑模式,只能按p后输入grub密码才能进入单用户模式,从而防止了恶性人为修改root密码

wKiom1aKkpjSm7JjAAAfOBRYP8s979.pngspacer.gif

4、若不小心忘了grub加密密码,那事情就大了

解决方法:

只能先找到物理主机,拆下硬盘--->找一个好的主机将硬盘插上--->开机找到grub.conf文件,删除grub加密密码信息即可。

5、防止人为恶意拆硬盘盗数据,可以在上述的加密基础上对重要文件的分区及目录再做加密


你可能感兴趣的:(linux,系统启动,过程详解)