目录

开机引导过程

一.通电

二.BIOS环境检测

三.磁盘引导阶段

四.文件引导阶段

 自动引导配置文件丢失修复

内核参数文件丢失修复

内核镜像文件丢失修复

内核初始化文件丢失修复

boot目录误删丢失修复


开机引导过程

磁盘引导阶段
/boot/grub2/grub.cfg     #读取自动引导配置文件
内核文件引导阶段
/boot/loader/entries/*     #读取内核参数文件
/boot/内核镜像 
#读取这个文件启动内核,为了只读挂载根分区
/etc/fstab    #读取哪些磁盘要挂载
/etc/sysconfig/selinux    #读取selinux配置文件
#修改时钟
/boot/内核初始化镜像 #为了系统初始化,把根读写挂载
/etc/systemd/system/各种服务开机启动
/etc/rc.d/rc.local    #读取开机自运行脚本
最后启动tty虚拟控制平台,有图形就启动图形没有就无图形登录

一.通电

启动所有硬件并为进入系统做准备

问题处理:

检查所有电源设备, 确定供电设备正常,所有线缆是否插紧,检查线缆是否有损坏

二.BIOS环境检测

检测硬件是否正常

检测硬件是否插紧

三.磁盘引导阶段

#模拟错误
dd if=/dev/zero of=/dev/sda bs=446 count=1

这是一个使用MBR分区的磁盘前446字节为主引导记录,负责记录开机启动项寻找/boot/;生成一个446M的大文件去覆盖/dev/nvme0n1的最前面的446个字节,系统在重启后就寻找不到开机启动项就认为没有装操作系统

chroot /mnt/sysroot/	#执行后从挽救模式的环境切换回系统环境
grub2-install  /dev/nvme0n1	#在设备上重新安装 GRUB 引导程序,从而实现系统的修复,因为原本的grub引导程序被大文件覆盖了
exit
exit
#输入两次exit后就会重启

四.文件引导阶段

在文件引导阶段,系统会读取/boot/grub2/grub.cfg (自动引导文件),在此文件中指定系统系统过程中读 取什么文件,加载什么参数

如何修改grub参数(以修改时间为例)

[root@servera default]# vim /etc/default/grub 	#生成grub.cfg时使用的默认参数
GRUB_TIMEOUT=10 	#设定grub启动时等待时间为10秒
[root@servera default]# grub2-mkconfig > /boot/grub2/grub.cfg 	#生成新grub.cfg

 自动引导配置文件丢失修复

#误删了自动引导文件
[root@localhost boot]# rm -rf /boot/grub2/grub.cfg 

误删重启后会出现以下错误

解决问题

  • 确定/boot分区在哪个设备分区

  • 确定/分区位置

确定好boot分区与/分区后进行手动引导

手动引导要指定boot分区与/分区还有运行初始化文件

手动指定完成后输入boot启动

tips:以上步骤只能完成本次引导,如果没有生成自动引导模板,系统重启后仍然需要手动引导

#生成自动引导模板
[root@localhost ~]# grub2-mkconfig > /boot/grub2/grub.cfg
Generating grub configuration file ...
Adding boot menu entry for UEFI Firmware Settings ...
done

 之后重启就能自动引导了

内核参数文件丢失修复

#误删了内核参数文件
[root@servera entries]# rm -fr /boot/loader/entries/*

重启后会报错,也是不能自动引导  

#首先手动引导系统初始化,进入系统
[root@servera ~]# kernel-install add $(uname -r) /boot/vmlinuz-5.14.0-
427.13.1.el9_4.x86_64	#从内核镜像文件中火墙安装内核版本相关的参数文件
#恢复后文件出现
[root@servera ~]# ls /boot/loader/entries/
a6fd00acebb0467d805e4e43c2f6b54a-0-rescue.conf
a6fd00acebb0467d805e4e43c2f6b54a-5.14.0-427.13.1.el9_4.x86_64.conf

内核镜像文件丢失修复

#误删了内核镜像文件
[root@localhost boot]# rm -rf vmlinuz-5.14.0-427.13.1.el9_4.x86_64 

 并且重启后,使用硬盘进入系统,会显示错误

 进入bios界面的boos选项把光驱启动优先级调到第一,然后按<F10>保存运行

进入故障排错并进入挽救模式

 

等待进入挽救模式,输入1进行continue,按下enter显示命令行  

#将挂载在挽救模式下的根目录,挂载回系统根目录
chroot /mnt/sysroot

mount /dev/cdrom /media 	#挂载光盘到/media目录
#进入media目录,把有关kernel的软件包拷贝到/mnt进行解包
cd /media	
cp kernel-core-5.14.0-427.13.1.el9_4.x86_64.rpm /mnt/
#进入/mnt,对软件包进行解包,解包后进入解包后的lib/modeles里面的vmlinuz是缺失的内核镜像文件,要改名拷贝到/boot/下,$(uname -r)是引用内核版本
cd /mnt
rpm2cpio kernel-core-5.14.0-427.13.1.el9_4.x86_64.rpm | cpio -id
cd lib/modules/5.14.0-427.13.1.el9_4.x86_64/
cp vmlinuz /boot/vmlinuz-$(uname -r)

最后输入两次exit重新启动,并把光盘引导改回硬盘引导  

内核初始化文件丢失修复

[root@localhost boot]# rm -rf initramfs-5.14.0-427.13.1.el9_4.x86_64.img 

重启后报错,进入bios改为通过光盘引导进入挽救模式  

#进入挽救模式后更改跟根目录到系统模式,挂载光盘到目录,进入挂载的目录安装内核软件包,安装完成/boot/就会显示系统初始化文件
rpm -ivh kernel-core-5.14.0-427.13.1.el9_4.x86_64.rpm --force

 输入两次exit,重启并把光盘引导改回硬盘引导即可

boot目录误删丢失修复

rm -rf /boot/*

 重启使用光盘引导进入挽救模式

chroot /mnt/sysroot		#将挽救模式切换回系统模式
grub2-install  /dev/nvme0n1	#在启动设备上重新安装 GRUB 引导程序,从而实现系统的修复
mount /dev/sr0 /media/	#挂载光驱为了提取里面的软件资源下载有关内核的软件包
rpm -ivh kernel-core-5.14.0-427.13.1.el9_4.x86_64.rpm --force	#下载有关内核的相关软件包
grub2-mkconfig > /boot/grub2/grub.cfg	#生成grub自动引导配置文件

 

 完成后输入两次exit重启使用硬盘驱动,即可运行

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

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

相关文章

2023年全国青少年信息素养大赛C++编程初中组决赛真题+答案解析

2023年全国青少年信息素养大赛C++编程初中组决赛真题+答案解析 编程题 第一题 判断是否存在重复的子序列 题目描述 从m 个字符中选取字符,生成n 个符号的序列,使得其中没有2 个相邻的子序列相同。 如从1,2,3,生成长度为5 的序列,序列“12321”是合格的,而“12323”和“12123”…

MySQL5.78.0锁表确认及解除锁表完全指南

目录 一、MySQL锁机制基础 1.1 锁的分类与作用 1.2 关键锁类型详解 二、锁表的常见原因与风险 2.1 引发锁表的典型场景 2.2 锁表的业务影响 三、锁表状态确认方法 3.1 基础工具&#xff1a;SHOW PROCESSLIST 3.2 MySQL 8.0锁信息查询&#xff08;推荐&#xff09; 3.2…

springboot生成pdf方案之dot/html/图片转pdf三种方式

文章目录pdf生成方案dot转pdfhtml转pdfopenhtmltopdfaspose-pdf实践playwright实践图片转pdfApache PDFBox实践框架场景匹配后记前言&#xff1a;随着客户对报告审美的提升&#xff0c;需求也越来越五彩斑斓~ 原有的dot模板已经满足不了他们了&#xff01;这篇文章主打列出各种…

前端开发—全栈开发

全栈开发者在面试前端或全栈岗位时&#xff0c;自我介绍需要巧妙融合“技术广度”与“岗位针对性”&#xff0c;避免成为泛泛而谈的“样样通样样松”。以下是结合面试官关注点和全栈特性的专业介绍策略&#xff1a;&#x1f9e0; 一、自我介绍的核心理念 突出全栈优势&#xff…

Redis生产环境过期策略配置指南:务实落地,避免踩坑

在生产环境中合理配置Redis过期策略是保障系统稳定性和内存效率的关键。以下配置建议基于实战经验&#xff0c;避免理论堆砌&#xff0c;直击核心要点&#xff1a;一、核心策略配置&#xff1a;惰性删除 定期删除&#xff08;默认已启用&#xff09;无需额外配置&#xff1a;R…

Ubuntu 20.04 安装 Node.js 20.x、npm、cnpm 和 pnpm 完整指南

&#x1f310; Ubuntu 20.04 安装 Node.js 20.x、npm、cnpm 和 pnpm 完整指南 &#x1f680; 在本文中&#xff0c;我们将介绍如何在 Ubuntu 20.04 上安装 Node.js 20.x&#xff0c;以及如何安装 npm、cnpm 和 pnpm 来提高开发效率 ⚡。1️⃣ 安装 Node.js 20.x 为了确保使用最…

【时时三省】(C语言基础)通过指针引用数组元素

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省引用一个数组元素&#xff0c;可以用下面两种方法&#xff1a;( 1 )下标法&#xff0c;如a[i]形式&#xff1b;( 2 )指针法&#xff0c;如* ( a i )或* ( p i )。其中a是数组名&#xff0c;p…

Guava LoadingCache

LoadingCache 是 Google Guava 库提供的一个高级缓存实现&#xff0c;它通过自动加载机制简化了缓存使用模式。核心特性自动加载机制当缓存未命中时&#xff0c;自动调用指定的 CacheLoader 加载数据线程安全&#xff1a;并发请求下&#xff0c;相同key只会加载一次灵活的过期策…

基于LSTM-GRU模型的黄金价格动态监测:关税政策与美指的量化关联研究

摘要&#xff1a;本文通过BERT-Large模型对关税政策进行语义解析&#xff0c;结合LSTM-GRU混合模型、DCC-GARCH动态相关性模型及蒙特卡洛情景分析&#xff0c;量化解析7月11日黄金价格异动背后的三大驱动因子——政策冲击、美元指数压制与美联储政策不确定性&#xff0c;提供AI…

V少JS基础班之第七弹

文章目录一、 前言二、本节涉及知识点三、重点内容1、prototype2、constructor3、中场回顾&总结4、__ proto__5、第二次中场回顾&总结6、原型链6、第三次中场回顾&总结7、原型链中的奇点一、 前言 第七弹内容是原型链。网络上原型链的资料很多。但是我看了很多篇&…

Nuxt3自动打包及自动修改端口号脚本

Nuxt3自动打包及自动修改端口号脚本技术文章大纲 背景与需求 Nuxt3作为现代Vue框架&#xff0c;开发中常需处理打包部署和端口配置问题。自动化脚本可提升效率&#xff0c;减少手动操作错误。 实现自动打包 利用Nuxt3内置命令结合Node.js脚本实现自动化构建。通过npm run build…

红海云国资案例之多层级工贸集团的一体化HR平台建设实战

在中国经济迈向高质量发展的进程中&#xff0c;国有企业作为重要的经济支柱和行业引领者&#xff0c;正面临着数字化转型的深刻变革。F集团作为G市首家实现工贸一体化运营的大型企业&#xff0c;位列中国轻工业百强&#xff0c;其在人力资源数字化转型中的探索和实践&#xff0…

TCP详解——流量控制、滑动窗口

目录 流量控制 滑动窗口 丢包重传 情况一&#xff1a;数据到达&#xff0c;应答丢失 情况二&#xff1a;数据包丢失 流量控制 TCP协议会根据接收端的缓冲区大小来调整发送速度&#xff0c;剩余空间多则发送速度快&#xff0c;否则降低发送速度 接收端将⾃⼰可以接收的缓…

C#高级特性面试问题的详细分析,涵盖核心概念、应用场景和最佳实践

序列化与反序列化 1. 什么是序列化和反序列化&#xff1f;用途是什么&#xff1f; // 序列化示例 Person person new Person { Name "Alice", Age 30 }; string json JsonSerializer.Serialize(person); // 序列化为JSON// 反序列化示例 Person deserialized Js…

【电脑】内存的基础知识

内存&#xff08;Memory&#xff09;是计算机中用于临时存储数据和程序的地方&#xff0c;它直接影响到系统的运行速度和性能。以下是关于内存的详细知识&#xff1a;1. 内存类型常见的内存类型包括以下几个主要种类&#xff1a;SDRAM (Synchronous Dynamic Random Access Memo…

Java---IDEA

IDEA概述 IDEA&#xff1a;全称Intellij IDEA&#xff0c;是用于Java语言开发的集成开发环境 集成环境&#xff1a;把代码编写&#xff0c;编译&#xff0c;运行&#xff0c;调试等多种功能综合到一起的开发工具 下载与安装 下载&#xff1a;IntelliJ IDEA – the IDE for …

【每日刷题】x 的平方根

69. x 的平方根 - 力扣&#xff08;LeetCode&#xff09; 方法一&#xff1a;暴力 从0开始遍历&#xff0c;直到 ans*ans > x 为止&#xff0c;这时ans-1就是答案。需要注意可能会爆int&#xff0c;所以ans要开为long&#xff0c;最后再转换为int。 class Solution {publ…

C#元组:从基础到实战的全方位解析

C#元组&#xff1a;从基础到实战的全方位解析 在 C# 编程中&#xff0c;元组&#xff08;Tuple&#xff09;是一种轻量级的数据结构&#xff0c;用于临时存储多个不同类型的元素。无论是方法返回多个值、LINQ 查询中的临时投影&#xff0c;还是简化数据传递&#xff0c;元组都以…

Django母婴商城项目实践(二)

2、母婴商城项目环境配置 环境配置: Python3.12 解释器Pycharm Professional 2025.1 编辑器Django 4.2(或 Django 5.x)MySQL 8.0.28 数据库 1、Django框架 介绍 Django是一个高级的Python Web应用框架,可以快速开发安全和可维护的网站。由经验丰富的开发者构建,Django负责…

Go语言的Channel通道的含义。区分缓冲通道和非缓冲通道,并讨论通道的发送、接收、关闭以及如何安全地从已关闭的通道读取数据。

非缓冲通道&#xff1a;非缓冲通道在确定时没有声明容量大小&#xff0c;发送和接收操作会同步阻塞&#xff0c;直到另一端准备好。发送方和接收方必须同时就绪才能完成数据交换&#xff0c;否则会阻塞。常用于goroutine之间的同步通信。缓冲通道&#xff1a;缓冲通道在确定时就…