目錄
開機引導過程
一.通電
二.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重啟使用硬盤驅動,即可運行