Linux中的系统引导过程及其引导修复

环境:两台主机
在rhel7上连接rhel8进行操作
再rhel8上测试
#################################

1.通电

#################################
开启电源。
#################################

2.bios初始化

#################################
开始对对硬件进行检测
初始化硬件时钟
#################################

3.磁盘引导

#################################

mbr : 主引导记录 = 0 磁道 1 扇区 446字节,磁盘上的磁头转动到此位置,获取下一步动作信息

作用:记录grub2引导文件的位置,当mbr数据丢失系统会因为找不到启动分区而停止启动

问题模拟方式   ##断开rhel8上的光盘,防止从光盘启动

系统磁盘/dev/nvme0n1    *所在的设备有mbr
在这里插入图片描述
dd if=/dev/zero of=/dev/nvme0n1 bs=446 count=1     ##清空系统dev/nvme0n1上的mbr数据
在这里插入图片描述
在这里插入图片描述
无法正常启动

恢复方式:
用光盘进入系统挽救模式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
进入到挽救模式,选择1继续
在这里插入图片描述
提示系统被挂载到了/mnt/sysimage上,并提示输入命令,按回车获得一个shell
在这里插入图片描述
看出系统第一块磁盘挂载到了 /mnt/sysimage/ 上,执行chroot /mnt/sysimage命令后,挂载正常

grub2-install /dev/nvme0n1         ##重新安装grub2到系统硬盘上
在这里插入图片描述
两次退出重启,则正常启动

#################################

4.grub2文件引导

#################################

rhel7中:
/boot/grub2/grub.cfg

rhel8中:
/boot/grub2/grub.cfg
/boot/loader/entries/xxxxxxxxx.conf

作用:按照文件的记录,加载系统的内核和初始化镜像。
指定/boot位置,指定系统启动时加载文件名称

模拟问题:
rhel7:
rm -fr /boot/grub2/grub.cfg
rhel8:
rm -fr /boot/loader/entries/xxxxxxxxx.conf

修复:
未重启情况下直接执行命令:
rhel7
grub2-mkconifg > /boot/grub2/grub.cfg
rhel8:
在这里插入图片描述
kerne-install  add  内核版本号  内核镜像
kernel-install add   $(uname -r)  /lib/modules/$(uname -r)/vmlinuz    # uname -r 查看内核版本
在这里插入图片描述

手动引导
set root=‘hd0,msdos1’
linux16 /vmlinuz-3.10.0-957.el7.x86_64 ro root=/dev/nvme0n1p2  # / 挂载的位置,
initrd16 /initramfs-4.18.0-80.el8.x86_64.img
boot
在这里插入图片描述
重启完成后执行 kerne-install  add  内核版本号  内核镜像 ,否则下次重启还得手动引导。

#################################

5.内核加载

#################################
/boot/vmlinuz-$(uname -r)

加载内核作用:

系统初始化硬件设备
只读挂在/设备

问题出现:
rm  -fr  /boot/vmlinuz-$(uname -r)

恢复:
重装内核
进入到挽救模式
chroot /mnt/sysimage
mount /dev/cdrom /mnt
cd /mnt/BaseOS/Packages
rpm -ivh kernel-4.18.0-80.el8.x86_64.rpm  --force
在这里插入图片描述
在rhel7中恢复完成
rhel8:
rpm -ivh kernel-core-4.18.0-80.el8.x86_64.rpm  --force

#################################

6.系统初始化镜像

#################################

/boot/initramfs-4.18.0-80.el8.x86_64.img

作用:

加载系统时钟
加载selinux
加载系统主机信息
加载/etc/fstab文件中磁盘挂在策略
加载磁盘配额
初始化系统程序开启开机启动服务
开启虚拟控制台
开启图形

问题出现:
rm -fr /boot/initramfs-xxxxx.img

恢复:
mkinitrd  /boot/initramfs-$(uname -r).img  $(uname -r)

未重启直接执行命令,重启后进入到挽救模式执行命令

#################################

7.系统启动级别

#################################

0 关机
1 单用户
2 无图形网络模式
3 无图形网络模式
4 无图形网络模式
5 有图形网络模式
6 重启

问题出现:
systemctl set-default reboot.target
在这里插入图片描述
开机在读取到default文件时会重启,无限重启
恢复:
在开机选择界面按进入到引导文件编辑模式
在内核加载选项最后加入启动级别5
ctrl+x
在这里插入图片描述
开机后执行:systemctl set-default graphical.target

#################################

8.超级用户密码忘记

#################################

恢复:
1.在开机选择界面按进入到引导文件编辑模式
2.在内核加载选项最后删除到ro选项
3.更改ro---->rw
4.加入rd.break参数终止系统启动进入单用户模式
在这里插入图片描述
5.ctrl+x启动
6.chroot /sysroot
7.echo lee| passwd --stdin root
8.touch /.autorelabel        ##当/.autorelabel文件存在selinux会重新初始化
在这里插入图片描述
两次exit退出,开机后密码已经更正。

发布了36 篇原创文章 · 获赞 13 · 访问量 1460

猜你喜欢

转载自blog.csdn.net/thermal_life/article/details/104554473