Linux —— 系统引导过程及引导修复

目录

1. 通电

2. blos初始化

3. 磁盘引导

4. grub2文件引导

​5. 内核加载

6. 系统初始化镜像

7. 系统启动级别

8. 超级用户密码忘记


1. 通电

2. blos初始化

  • 对硬件检测
  • 初始化硬件时钟

3. 磁盘引导

mbr=主引导记录=0磁道1扇区446字节

作用:记录grub2引导文件的位置

当mbr数据丢失,系统会因为找不到启动分区而停止启动

 

问题模拟:  系统磁盘:/dev/nvme0n1数据损坏及修复过程

 

dd if=/dev/zero of=/dev/nvme0n1 bs=446 count=1   ## 清空系统dev/nvme0n1上的mbr数据

 

## 恢复方式:用光盘进入挽救模式
chroot /mnt/sysimage
grub2-install /dev/XXXXXX   ## 重新安装grub2到系统硬盘上,此处的XXXXXX指的是之前我们通过fdisk -l所查到的磁盘名称
  •  清空系统dev/nvme0n1上的mbr数据

 

在这里由于我们清空了磁盘的数据,因此会默认从光盘启动,在这里为了验证实验效果,我们先将光盘断开连接 

 可以看到此时系统已经无法正常启动!

  • 修复系统dev/nvme0n1

 我们进入BLOS界面,设置通过光盘启动

 在这里不是重新安装,在重新启动后,选择Troubleshooting

选择Rescue a Red Hat Enterprise Linux system 

 将系统恢复后通过两次exit即可以重启,在这里要注意,我们刚刚修改了启动方式是从光盘启动,现在将其恢复为磁盘启动就可以正常启动!

4. grub2文件引导

rhel7

/boot/grub2/grub.cfg

rhel8

/boot/grub2/grub.cfg

/boot/loader/entries/xxxxxx.conf

作用:

  • 指定启动分区(/boot)位置
  • 指定系统启动时加载文件名称

rhel7

rhel8

模拟问题

rhel7:

rm -fr  /boot/grub2/grub.cfg

rhel8:

rm -fr /boot/loader/entries/xxxxxx.conf

 

## rhel7:

rm -fr  /boot/grub2/grub.cfg

## rhel8:

rm -fr /boot/loader/entries/xxxxxx.conf
## 恢复
## rhel7
grub2-mkconfig > /boot/grub2/grub.cfg

## rhel8 
kernel-install add KERNEL-VERSION KERNEL-IMAGE   ## KERNEL-VERSION KERNEL-IMAGE
                                                    内核版本号      内核压缩镜像
kernel-install add $(uname -r) /lib/modules/$(uname -r)/vmlinuz
  •  rhel8删除启动加载文件

重启后我们的界面已经无法正常显示

  • 手动引导正常启动

 

## 删除过程:
ls /boot/ ## 查看文件名称和镜像文件
uname -r  ## 查看内核版本
rm -fr /boot/loader/entries/*
## 手动引导
set root='hd0,msdos1'
linux16 /vmlinuz-4.18.0-147.el8.x86_64 ro root=/dev/nvme0n1p3
initrd16 /initramfs-4.18.0-147.el8.x86_64.img
boot
## 但是手动引导不是永久更改的,因此我们还需要用命令来修复引导文件

 

  •  命令修复引导文件

5. 内核加载

加载内核作用:/boot/vmlinuz-$(uname -r)

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

 

模拟问题:

rm -fr  /boot/vmlinuz-$(uname -r) 

恢复:

重装内核

 

  • 删除内核文件操作
rm -fr  /boot/vmlinuz-4.18.0-147.el8.x86_64

 

 

  • 恢复内核文件操作 

 

## rhel7 rhel8恢复
## 进入挽救模式
chroot /mnt/sysimage
mount /dev/cdrom /mnt
cd /mnt/BaseOS/Packages
rpm -ivh kernel-core-xxxxxx.rpm --force

rhel7: 

rhel8: 

 恢复成功!

6. 系统初始化镜像

系统初始化镜像文件:/boot/initramfs-4.18.0-147.el8.x86_64.img

作用:

  • 加载系统时钟
  • 加载selinux
  • 加载系统主机信息
  • 加载/etc/fstab文件中磁盘挂载策略
  • 加载磁盘配额
  • 初始化系统程序开启开机启动服务

  • 开启虚拟控制台
  • 开启图形

 模拟问题:

删除系统初始化镜像文件:

rm -fr /boot/initramfs-4.18.0-147.el8.x86_64.img

 

恢复系统初始化镜像文件:

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

7. 系统启动级别

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

更改配置:

systemctl set-default reboot.target   ## 会陷入无限重启过程

恢复配置:

## 在开机选择界面按<e>进入到引导文件编辑模式
## 在内核加载选项最后加入启动级别5
ctrl+x  
systemctl set-default graphical.target   ## 永久设定为5,否则还会陷入重启循环

 

8. 超级用户密码忘记

恢复:

  1. 在开机选择界面按<e>进入到引导文件编辑模式
  2. 在内核加载选项最后删除到ro选项
  3. 更改ro ----> rw
  4. 加入rd.break参数终止系统启动进入单用户模式
  5. ctrl+x启动
  6. chroot /sysroot
  7. echo redhat | passwd --stdin root
  8. touch /.autorelabel   ## 当/.autorelabel文件存在selinux会重新初始化

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值