复习之linux系统的引导修复

启动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
00ed87f1fef746369334a619c0a5db43-0-rescue.conf
00ed87f1fef746369334a619c0a5db43-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-00ed87f1fef746369334a619c0a5db43.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-00ed87f1fef746369334a619c0a5db43
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-00ed87f1fef746369334a619c0a5db43.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-00ed87f1fef746369334a619c0a5db43
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-00ed87f1fef746369334a619c0a5db43.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-00ed87f1fef746369334a619c0a5db43
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-00ed87f1fef746369334a619c0a5db43.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-00ed87f1fef746369334a619c0a5db43
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-00ed87f1fef746369334a619c0a5db43.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-00ed87f1fef746369334a619c0a5db43
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-00ed87f1fef746369334a619c0a5db43.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-00ed87f1fef746369334a619c0a5db43
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标识文件
  • 退出系统,引导恢复成功!

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/75291.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mac 终端快捷键设置:如何给 Mac 中的 Terminal 设置 Ctrl+Alt+T 快捷键快速启动

Mac 电脑中正常是没有直接打开终端命令行的快捷键指令的&#xff0c;但可以通过 commandspace 打开聚焦搜索&#xff0c;然后输入 ter 或者 terminal 全拼打开。但习惯了 linux 的同学会觉得这个操作很别扭。于是我们希望能通过键盘按键直接打开。 操作流程如下&#xff1a; 1…

LangChain+ChatGLM整合LLaMa模型(二)

开源大模型语言LLaMa LLaMa模型GitHub地址添加LLaMa模型配置启用LLaMa模型 LangChainChatGLM大模型应用落地实践&#xff08;一&#xff09; LLaMa模型GitHub地址 git lfs clone https://huggingface.co/huggyllama/llama-7b添加LLaMa模型配置 在Langchain-ChatGLM/configs/m…

16.M端事件和JS插件

16.1移动端 移动端也有自己独特的地方 ●触屏事件touch (也称触摸事件)&#xff0c;Android 和I0S都有。 ●touch对象代表一个触摸点。触摸点可能是一根手指&#xff0c;也可能是一根触摸笔。触屏事件可响应用户手指(或触控笔)对屏幕或者触控板操作。 ●常见的触屏事件如下: …

VS2017中Qt工程报错:无法解析的外部符号 __imp_CommandLineToArgvW,该符号在函数 WinMain 中被引用

工程报错:无法解析的外部符号 __imp_CommandLineToArgvW&#xff0c;该符号在函数 WinMain 中被引用 解决方法&#xff1a; 在输入的附加依赖项中增加 shell32.lib

装饰器模式(Decorator)

装饰器模式是一种结构型设计模式&#xff0c;用来动态地给一个对象增加一些额外的职责。就增加对象功能来说&#xff0c;装饰器模式比生成子类实现更为灵活。装饰器模式的别名为包装器(Wrapper)&#xff0c;与适配器模式的别名相同&#xff0c;但它们适用于不同的场合。 Decor…

《长安的荔枝》阅读笔记

《长安的荔枝》阅读笔记 2023年6月9号在杭州的小屋读完&#xff0c;作者以“一骑红尘妃子笑”的典故&#xff0c;想象拓展出来的荔枝使李善德&#xff0c;为了皇帝要求在贵妃寿辰&#xff0c;六月一号那天要吃到10斤的荔枝。需要从广州运送到长安即如今的西安。本来以为这个差事…

Elasticsearch:如何将整个 Elasticsearch 索引导出到文件 - Python 8.x

在实际的使用中&#xff0c;我们有时希望把 Elasticsearch 的索引保存到 JSON 文件中。在之前&#xff0c;我写了一篇管如何备份 Elasticsearch 索引的文章 “Elasticsearch&#xff1a;索引备份及恢复”。在今天&#xff0c;我们使用一种 Python 的方法来做进一步的探讨。你可…

RabbitMQ安装说明文档-v2.0

rabbitmq安装 说明&#xff1a;请使用资料里提供的CentOS-7-x86_64-DVD-1810.iso 安装虚拟机. 1. 安装依赖环境 在线安装依赖环境&#xff1a; yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c kernel-devel m4 ncurses-devel …

瞄准产业应用,大模型加持的深兰科技AI虚拟数字人落地业务场景

伴随ChatGPT的问世&#xff0c;在技术与商业运作上都日渐发展成熟的AI数字人产业正持续升温。 目前的AI数字人不仅拥有超高“颜值”&#xff0c;同时还拥有更为丰富的、细腻的表情和动作。更有甚者&#xff0c;AI数字人已经具备自定义构建知识图谱、自主对话、不断学习成长的能…

C++类与对象(下)

目录 初始化列表单参数构造函数的隐式类型转换 static成员友元友元函数友元类 内部类匿名对象了解&#xff1a;编译器优化练习题 初始化列表 构造函数体中的语句只能将其称为赋初值&#xff0c;而不能称作初始化。因为初始化只能初始化一次&#xff0c;而构造函数体内可以多次…

【论文】【生成对抗网络五】Wasserstein GAN (WGAN)

【题目、作者】&#xff1a; 紫色&#xff1a;要解决的问题或发现的问题 红色&#xff1a;重点内容 棕色&#xff1a;关联知识&#xff0c;名称 绿色&#xff1a;了解内容&#xff0c;说明内容 论文地址&#xff1a; 论文下载 本篇文章仅为原文翻译&#xff0c;仅作参考。…

jar命令的安装与使用

场景&#xff1a; 项目中经常遇到使用WinR软件替换jar包中的文件&#xff0c;有时候存在WinRAR解压替换时提示没有权限&#xff0c;此时winRAR不能用还有有什么方法替换jar包中的文件。 方法&#xff1a; 使用jar命令进行修改替换 问题&#xff1a; 执行jar命令报错jar 不…

[用go实现解释器]笔记1-词法分析

本文是《用go实现解释器》的读书笔记 ​ https://malred-blog​malred.github.io/2023/06/03/ji-suan-ji-li-lun-ji-shu-ji/shi-ti/go-compile/yong-go-yu-yan-shi-xian-jie-shi-qi/go-compiler-1/#toc-heading-6http://个人博客该笔记地址 ​github.com/malred/malanghttp:/…

Ubuntu网络设置之固定IP详解

尊敬的家人们&#xff0c;欢迎观看我的文章&#xff01;今天&#xff0c;我们将为您介绍Ubuntu22.04操作系统中固定IP的设置方法&#xff0c;帮助您更好地管理网络连接并提高网络稳定性。 什么是固定IP&#xff1f; 在网络中&#xff0c;IP地址是设备在网络上的唯一标识。通常…

Linux6.31 Kubernetes 二进制部署

文章目录 计算机系统5G云计算第二章 LINUX Kubernetes 部署一、二进制搭建 Kubernetes v1.201.操作系统初始化配置2.部署 etcd 集群3.Kubernetes 集群架构与组件4.部署 Master 组件5.部署 Worker Node 组件6.部署 CNI 网络组件——部署 flannel1&#xff09;K8S 中 Pod 网络通信…

lc1074.元素和为目标值的子矩阵数量

创建二维前缀和数组 两个for循环&#xff0c;外循环表示子矩阵的左上角&#xff08;x1,y1&#xff09;&#xff0c;内循环表示子矩阵的右下角&#xff08;x2,y2&#xff09; 两个for循环遍历&#xff0c;计算子矩阵的元素总和 四个变量&#xff0c;暴力破解的时间复杂度为O(…

招投标系统简介 企业电子招投标采购系统源码之电子招投标系统 —降低企业采购成本 tbms

​功能模块&#xff1a; 待办消息&#xff0c;招标公告&#xff0c;中标公告&#xff0c;信息发布 描述&#xff1a; 全过程数字化采购管理&#xff0c;打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力&#xff0c;为外…

CSS学习记录(基础笔记)

CSS简介: CSS 指的是层叠样式表* (Cascading Style Sheets)&#xff0c;主要用于设置HTML页面的文字内容&#xff08;字体、大小、对齐方式&#xff09;&#xff0c;图片的外形&#xff08;边框&#xff09; CSS 描述了如何在屏幕、纸张或其他媒体上显示 HTML 元素 CSS 节省…

Pytorch使用VGG16模型进行预测猫狗二分类

目录 1. VGG16 1.1 VGG16 介绍 1.1.1 VGG16 网络的整体结构 1.2 Pytorch使用VGG16进行猫狗二分类实战 1.2.1 数据集准备 1.2.2 构建VGG网络 1.2.3 训练和评估模型 1. VGG16 1.1 VGG16 介绍 深度学习已经在计算机视觉领域取得了巨大的成功&#xff0c;特别是在图像分类任…

ubuntu调整路由顺序

Ubuntu系统跳转路由顺序 1、安装ifmetric sudo apt install ifmetric2、查看路由 route -n3、把Iface下面的eth1调到第一位 sudo ifmetric eth1 0命令中eth1是网卡的名称&#xff0c;更改网卡eth1的跃点数&#xff08;metric值&#xff09;为0&#xff08;数值越小&#xf…