2025年复习之linux系统的引导修复

复习之linux系统的引导修复启动 Linux 系统时 需要先通电 接着系统会自动进行 bios 初始化 对硬件进行检测并初始化硬件时钟 之后就进入了 Linux 系统引导过程 Linux 系统引导过程的具体内容和引导修复方法将在下文中进行详细介绍 由于我们在引导修复时需要利用光盘进入系统 所以需要事先为虚拟机 westosa 添加一个挂载了系统镜像的光驱

大家好,我是讯享网,很高兴认识大家。

启动Linux系统时,需要先通电,接着系统会自动进行bios初始化,对硬件进行检测并初始化硬件时钟,之后就进入了 Linux系统引导过程。Linux系统引导过程的具体内容和引导修复方法将在下文中进行详细介绍。由于我们在引导修复时需要利用光盘进入系统,所以需要事先为虚拟机westosa添加一个挂载了系统镜像的光驱

ps:添加光驱时虚拟机必须关机


讯享网

 一、磁盘引导

Linux系统磁盘上0磁道1扇区内的446字节数据存储的是Linux系统的主引导记录mbr,mbr会告诉系统下一步应该读取哪个分区的数据,其中了记录grub2引导文件的位置,当mbr数据丢失系统会因为找不到启动分区而停止启动

1. 问题模拟

查看启动分区所在硬盘

[root@westosa ~]# fdisk -l 

讯享网

 清空系统启动磁盘/dev/sda上的mbr数据

ps:大小只能是446

讯享网[root@westosa ~]# dd if=/dev/zero of=/dev/vda bs=446 count=1 1+0 records in 1+0 records out 446 bytes copied, 4.6178e-05 s, 9.7 MB/s [root@westosa ~]# reboot

重启系统,系统找不到启动分区,无法启动,问题出现!

 2.引导修复

  • 关闭虚拟机,利用光驱启动虚拟机
  • 开启虚拟机,进入挽救模式
  • 重新安装grub2到启动硬盘/dev/vda
  • 关闭SELINUX,其开启状态下会影响系统的启动速度
  • 退出系统,关闭虚拟机
  • 设定用硬盘启动系统,成功开启虚拟机,完成引导恢复

(1)利用光驱启动虚拟机

打开虚拟机

(2)进入挽救模式

 (3)安装grub2到启动硬盘/dev/vda

 修改selinux文件为disabled否则会影响系统的启动速度!

(4)退出系统,关闭虚拟机

(5)重新设定用硬盘启动系统,成功开启虚拟机,引导修复成功!

 

二、grub2文件引导

系统文件引导过程中需要用到以下两类引导文件:
一个主引导文件:/boot/grub2/grub.cfg
两个子引导文件:/boot/loader/entries/xxxxxxxxx.conf
主引导文件指定启动分区/boot位置,子引导文件指定系统启动时加载的文件名称,这两类文件丢失时系统无法启动。

ps:文件损坏时,系统无法启动才需要手动指定操作,如果没有重启系统,直接重新生成引导文件即可!

 1. 主引导文件丢失

(1)主引导文件丢失--问题模拟

删除主引导文件,重启系统时

 发现系统无法重启,需要手动引导!

 (2)手动引导恢复

  • 指定启动磁盘
  • 指定系统内核+挂载根目录:注意要先df看看根的挂载目录
  • 指定系统初始化镜像
  • 启动系统
  • 重新生成主引导文件

 启动系统成功!!

 进入系统,重新生成主引导文件,引导恢复完成!

[root@westosa Desktop]# grub2-mkconfig > /boot/grub2/grub.cfg Generating grub configuration file ... done [root@westosa Desktop]# cd /boot/grub2/ [root@westosa grub2]# ls device.map fonts grub.cfg grubenv i386-pc [root@westosa grub2]# reboot 

重启系统成功!

2. 子引导文件丢失

(1)子引导文件丢失---问题模拟

讯享网[root@westosa Desktop]# cd /boot/loader/entries/ [root@westosa entries]# ls 00ed87f1fefa619c0a5db43-0-rescue.conf 00ed87f1fefa619c0a5db43-4.18.0-193.el8.x86_64.conf [root@westosa entries]# rm -fr * 

此时启动系统失败!

 (2)手动引导恢复

  • 指定启动磁盘
  • 指定系统内核+挂载根目录:注意要先df看看根的挂载目录
  • 指定系统初始化镜像
  • 启动系统
  • 重新生成子引导文件

步骤与上相同!!进入系统重新生成内核引导文件!

  • 查看内核版本: uname  -r
  • 重新生成内核引导文件
[root@westosa Desktop]# uname -r 4.18.0-193.el8.x86_64 [root@westosa Desktop]# kernel-install add 4.18.0-193.el8.x86_64 /lib/modules/4.18.0-193.el8.x86_64/vmlinuz 

文件生成后,查看子引导文件已经存在!

再次重启系统,引导恢复成功!

 三、内核加载

系统启动过程中通过加载/boot/vmlinuz-$(uname -r)这一内核初始化硬件设备,内核丢失后,系统报错无法重新启动。

1.问题模拟

删除系统内核

 如果及时发现,还没有重启系统,直接复制光驱系统中usr下的内核文件到/boot中即可完成恢复

复制方法有两种:

  • 先用uname -r查看内核名,在复制
  • 直接利用$(uname -r)复制
讯享网[root@westosa boot]# uname -r 4.18.0-193.el8.x86_64 [root@westosa boot]# cd [root@westosa ~]# [root@westosa ~]# cp /lib/modules/4.18.0-193.el8.x86_64/vmlinuz /boot/vmlinuz-4.18.0-193.el8.x86_64 [root@westosa ~]# cd /boot/ [root@westosa boot]# ls config-4.18.0-193.el8.x86_64 efi grub2 initramfs-0-rescue-00ed87f1fefa619c0a5db43.img initramfs-4.18.0-193.el8.x86_64.img initramfs-4.18.0-193.el8.x86_64kdump.img loader System.map-4.18.0-193.el8.x86_64 vmlinuz-0-rescue-00ed87f1fefa619c0a5db43 vmlinuz-4.18.0-193.el8.x86_64 [root@westosa boot]# rm -fr vmlinuz-4.18.0-193.el8.x86_64 [root@westosa boot]# cp /lib/modules/4.18.0-193.el8.x86_64/vmlinuz /boot/vmlinuz-$(uname -r) [root@westosa boot]# ls config-4.18.0-193.el8.x86_64 efi grub2 initramfs-0-rescue-00ed87f1fefa619c0a5db43.img initramfs-4.18.0-193.el8.x86_64.img initramfs-4.18.0-193.el8.x86_64kdump.img loader System.map-4.18.0-193.el8.x86_64 vmlinuz-0-rescue-00ed87f1fefa619c0a5db43 vmlinuz-4.18.0-193.el8.x86_64 

复制完成,则恢复成功!

2. 引导恢复

如果删除内核后重启系统了,则需要引导恢复!

  • 关闭虚拟机,利用光驱启动系统
  • 进入挽救模式
  • 复制内核文件到/boot
  • 关闭虚拟机,用硬盘启动系统,恢复成功

删除内核且重启系统了

[root@westosa boot]# ls config-4.18.0-193.el8.x86_64 efi grub2 initramfs-0-rescue-00ed87f1fefa619c0a5db43.img initramfs-4.18.0-193.el8.x86_64.img initramfs-4.18.0-193.el8.x86_64kdump.img loader System.map-4.18.0-193.el8.x86_64 vmlinuz-0-rescue-00ed87f1fefa619c0a5db43 vmlinuz-4.18.0-193.el8.x86_64 [root@westosa boot]# rm -fr vmlinuz-4.18.0-193.el8.x86_64 [root@westosa boot]# reboot [点击并拖拽以移动] ​

 可见系统无法重启,则先关闭虚拟机,利用光驱启动系统!

 进入挽救模式!

chroot /mnt/sysimage切换到真实系统环境的shell下,复制内核文件到/boot

 然后退出系统,关闭虚拟机,利用硬盘启动系统!

 开启虚拟机,引导恢复成功!

 四、系统初始化镜像

系统启动过程中需要利用系统初始化镜像 /boot/initramfs-4.18.0-80.el8.x86_64.img来实现以下功能:加载系统时钟;加载selinux;加载系统主机信息;加载/etc/fstab文件中磁盘挂载策略;加载磁盘配额;初始化系统程序开启开机启动服务;开启虚拟控制台;开启图形等等。系统初始化镜像丢失后,系统报错无法重新启动。

1. 问题模拟

删除系统初始化镜像

讯享网[root@westosa Desktop]# cd /boot/ [root@westosa boot]# ls config-4.18.0-193.el8.x86_64 efi grub2 initramfs-0-rescue-00ed87f1fefa619c0a5db43.img initramfs-4.18.0-193.el8.x86_64.img initramfs-4.18.0-193.el8.x86_64kdump.img loader System.map-4.18.0-193.el8.x86_64 vmlinuz-0-rescue-00ed87f1fefa619c0a5db43 vmlinuz-4.18.0-193.el8.x86_64 [root@westosa boot]# rm -fr initramfs-4.18.0-193.el8.x86_64.img [root@westosa boot]# 

如果删除后,没有重启系统,使用mkinitrd命令恢复镜像即可!

[root@westosa boot]# mkinitrd /boot/initramfs-4.18.0-193.el8.x86_64.img No kernel found in /boot usage: mkinitrd [--version] [--help] [-v] [-f] [--preload <module>] [--image-version] [--with=<module>] [--nocompress] <initrd-image> <kernel-version> (ex: mkinitrd /boot/initramfs-4.18.0-193.el8.x86_64.img 4.18.0-193.el8.x86_64) Creating: target|kernel|dracut args|basicmodules [root@westosa boot]# ls config-4.18.0-193.el8.x86_64 efi grub2 initramfs-0-rescue-00ed87f1fefa619c0a5db43.img initramfs-4.18.0-193.el8.x86_64.img initramfs-4.18.0-193.el8.x86_64kdump.img loader System.map-4.18.0-193.el8.x86_64 vmlinuz-0-rescue-00ed87f1fefa619c0a5db43 vmlinuz-4.18.0-193.el8.x86_64 

2.引导恢复

删除系统初始化镜像后,如果重启了系统,就需要引导恢复!

  • 关闭虚拟机,利用光驱启动系统
  • 进入挽救模式
  • 进入真实shell环境,恢复镜像,退出系统
  • 关闭虚拟机,利用硬盘启动系统,恢复成功
讯享网[root@westosa boot]# ls config-4.18.0-193.el8.x86_64 efi grub2 initramfs-0-rescue-00ed87f1fefa619c0a5db43.img initramfs-4.18.0-193.el8.x86_64.img initramfs-4.18.0-193.el8.x86_64kdump.img loader System.map-4.18.0-193.el8.x86_64 vmlinuz-0-rescue-00ed87f1fefa619c0a5db43 vmlinuz-4.18.0-193.el8.x86_64 [root@westosa boot]# rm -fr initramfs-4.18.0-193.el8.x86_64.img [root@westosa boot]# reboot 

和之前一样,关闭虚拟机,利用光驱启动系统并进入挽救模式!

 进入真实shell环境,恢复镜像!

 退出系统,关闭虚拟机,利用硬盘启动系统,引导恢复成功!

五、开机启动级别

统默认启动级别为5,即有图形网络模式,当系统默认启动级别改变时,系统有可能无法正常启动。

系统启动级别分别为:

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

1.问题模拟

设定系统默认启动级别为6,重启虚拟机,系统会一直处于重启状态,无法开启虚拟机

[root@westosa Desktop]# systemctl set-default reboot.target Removed /etc/systemd/system/default.target. Created symlink /etc/systemd/system/default.target → /usr/lib/systemd/system/reboot.target. [root@westosa Desktop]# reboot 

2.引导恢复

  • 开机界面按 “e"  进入编辑界面
  • 内核后输入 5 ,ctrl x 启动系统
  • 设定系统默认启动级别为5,引导恢复完成

进入系统后,设定默认启动级别,引导恢复完成!

讯享网[root@westosa Desktop]# systemctl set-default graphical.target Removed /etc/systemd/system/default.target. Created symlink /etc/systemd/system/default.target → /usr/lib/systemd/system/graphical.target. [root@westosa Desktop]# reboot 

再次重启,系统正常启动!

 六、超级用户密码忘记

1.问题模拟

当忘记超级用户密码时,系统无法登录

 2. 引导恢复

  • 关闭虚拟机,开机界面“e" 进入编辑模式
  • 更改" rw rd.break", ctrl x启动系统
  • 转换根环境+修改root密码+建立selinux标识文件
  • 退出系统,引导恢复成功!

 

小讯
上一篇 2025-03-11 21:56
下一篇 2025-03-17 23:04

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/16716.html