【Linux】系統引導修復

目錄

開機引導過程

一.通電

二.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;緩沖通道在確定時就…