目录
一、Linux系统启动过程
1.加载BIOS
2.读取MBR(主引导记录)
3.GRUB引导
4.加载Kernel文件
5.第一个进程init和systemd
6.欢迎界面进行登录
二、MBR扇区故障修复
1.我们先对MBR进行备份
2.模拟破坏MBR引导扇区
3.重启系统
4.选择Rescue a Centos system进入linux急救模式
5.按1回车 继续
6.创建一个文件夹用于挂载sdb1中的备份内容
7.启动成功,故障已排除
二、GRUB引导故障修复
三、centos7忘记root密码重置方法
一、Linux系统启动过程
1.加载BIOS
当你打开计算机电源,计算机会首先加载基本输入输出系统(Basic Input Output System )BIOS系统。检查硬件设备有没有损坏,在这里可以选择启动磁盘。BIOS程序一般被存放在主板ROM之中、即使在关机或掉电以后该程序也不会丢失。
2.读取MBR(主引导记录)
读取硬盘上磁道的第一个扇区被称为MBR,也就是Master Boot Record即主引导记录、它的大小是512字节,根据MBR记录中的引导信息调用启动菜单(如GRUB);即运行放在MBR扇区里的启动GRUB引导程序
3.GRUB引导
Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核做好一切准备。GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg,来获取内核和镜像文件系统的设置和路径位置。
4.加载Kernel文件
根据grub设定的内核映像所在路径,系统读取内存映像,并进行解压缩操作。此时,屏幕一般会输出“Uncompressing Linux”的提示。当解压缩内核完成后,屏幕输出“OK, booting the kernel”。
系统将解压后的内核放置在内存之中,并调用start_kernel()函数来启动一系列的初始化函数并初始化各种设备,完成Linux核心环境的建立。至此,Linux内核已经建立起来了,基于Linux的程序应该可以正常运行了。
5.第一个进程init和systemd
内核加载完毕,会启动Linux操作系统第一个守护进程init,Linux内核首先将系统中的“/sbin/init”程序加载到内存中运行(运行中的程序称为进程),init进程负责完成一系列的系统初始化过程,最后等待用户进行登录systenmed;加载硬件驱动程序, 内核把init进程加载到内存中运行
传统sysvinit依赖于串行执行shell脚本启动服务,导致效率低下,系统启动速度较慢systemd能够将更多的服务进程并行启动,并且具有提供按需启动的能力,使得启动更少进程,从而提高系统启动速度。/etc/inittab文件的作用是设定Linux的运行等级,Linux常见运行级别如下
- 0:关机模式
- 1:单用户模式
- 2:无网络支持的多用户模式
- 3:字符界面多用户模式
- 4:保留
- 5:图像界面多用户模式
- 6:重启模式
init进程
由Linux内核加载运行/sbin/init程序
init进程是系统中第一个进程
init进程的PID(进程标记)号永远为1
Systemd
Systemd是Linux操作系统的一种init软件
CentOS7中采用全新的Systemd启动方式,取代传统的SysVinit
CentOS7中运行的第一个init进程是/liblsystemd/systemd
6.欢迎界面进行登录
二、MBR扇区故障修复
1.我们先对MBR进行备份
创建一个备份文件夹,例如backup,将一个备份磁盘挂载在该文件夹下,并对MBR进行备份
mkdir backup
mount /dev/sdb1 /backup
dd if=/dev/sda of=/kackup/mbr.bak bs=512 count=1
2.模拟破坏MBR引导扇区
[root@ljp dev]# dd if=/dev/zero of=/dev/sda bs=512 count=1
记录了1+0 的读入
记录了1+0 的写出
512字节(512 B)已复制,0.000736407 秒,695 kB/秒
3.重启系统
由于MBR的缺失,会进入这样的界面,我们使用光标选择Troubleshooting并回车确认
4.选择Rescue a Centos system进入linux急救模式
5.按1回车 继续
继续回车获得一个shell
6.创建一个文件夹用于挂载sdb1中的备份内容
mkdir backupdir
mount /dev/sdb1 /backupdir
将sdb1中的备份重新放入sda中,然后退出该模式进行重启
dd if=/backupdir/mbr.bak of=/dev/sda bs=512 count=1
exit
7.启动成功,故障已排除
二、GRUB引导故障修复
在linux中,/boot/grub目录下的包是用于启动菜单的背景图片及样式
GRUB配置文件 /boot/grub2/grub.cfg
1.删除grub配置文件模拟故障
rm -rf /boot/grub2/grub.cfg
2.重启系统并进入急救模式,流程参考上文MBR修复过程
3.使用chroot命令,切换到系统跟环境
chroot /mnt/sysimage
4.重新将grub引导程序安装到第一块硬盘的MBR扇区
grub2-install /dev/sda
5.重新构建grub菜单的配置文件,之后退出并重启
grub2-mkconfig -o /boot/grub2/grub.cfg
exit
reboot
三、centos7忘记root密码重置方法
1.进入急救模式,加载系统镜像,选择troubleshooting
chroot /mnt/sysimage
2.重设root密码
passwd root
3.退出后重启系统并以重置的密码进行登录