Grub引導項修復詳解

2021-08-31 11:59:02 字數 3398 閱讀 1233

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!

csdn

github

grub引導項修復詳解

aderxcoding/system/tools/grub/repair_grub

grub是大多數linux系統預設使用的引導程式, 可以通過啟動選單的方式選擇進入不同的作業系統(如果有的話).

當 「/boot/grub/grub.conf」 配置檔案丟失, 或者關鍵配置出現錯誤, 或者mbr記錄中的引導程式遭到破壞時, linux主機啟動後可能只會出現「grub>」的提示符,無法完成進一步的系統啟動過程.

error : unknow filesystemgrub rescue>
的字樣, 系統就是進不去.

這表示你的grub2的配置檔案損壞, grub找不到ubuntu系統的引導項. 從而進入修復模式了(grub rescue), 也稱救援模式.

在救援模式下只有很少的命令可以用: set, ls, insmod, root, prefix

命令描述

set檢視環境變數,這裡可以檢視啟動路徑和分割槽

ls檢視裝置

insmod

載入模組

root

指定用於啟動系統的分割槽,在救援模式下設定grub啟動分割槽

prefix

設定grub啟動路徑

具體修復步驟如下:

grub rescue> ls列出磁碟分割槽(hd0) (hd0,msdos9) (hd0,msdos8) (hd0,msdos7) (hd0,msdos6) (hd0,msdos5) (hd0,msdos2) (hd0,msdos1)
注 : 上面是我的分割槽裝置, 每個人可能不一樣, 但原理都是一樣的.

就是尋找你的linux系統是裝在以上哪個分割槽裡

grub rescue> ls (hd0,msdos1)/
grub> root (hd0,msdos8)指定ubuntu系統根分割槽所在第一塊硬碟中的位置, 具體的分割槽數字根據你的實際情況來決定.grub> setup (hd0)#安裝grub到硬碟ubuntu所在磁碟的fbr區中

#退出grub安裝模式。grub> cd#重新引導系統reboot

linux系統中修復grub引導故障手動引導進入作業系統

假如你找到的啟動分割槽是(hd0,msdos8)

grub rescue>root=(hd0,msdos8)grub rescue>prefix=/boot/grub                 //grub路徑設定grub rescue>set root=(hd0,msdos8)grub rescue>set prefix=(hd0,msdos8)/boot/grubgrub rescue>insmod normal                     //啟動normal啟動grub rescue>normal
之後你就會看到熟悉的啟動選單欄了

進入系統啟動選項介面後還是進不去, 因為你還沒有真正的修改grub, 這個要到ubuntu裡修改

進入系統啟動項介面後,按c進入命令列模式

grub >set root=hd0,msdos8grub >set prefix=(hd0,msdos8)/boot/grubgrub >linux /vmlinuz-***-*** root=/dev/sda8 //裡邊的***x可以按tab鍵,如果有acpi問題,在最後加一句acpi=offgrub >initrd /initrd.img-***-***grub >boot
這樣就可以進入了

其實前面的操作, 已經恢復了mbr了, 我們進入ubuntu後, 可以更新下grub引導項, 在終端裡執行

sudo update-grubsudo grub-install /dev/sda
前一種方法的前提是grub引導依舊可以使用, 只是丟失了ubuntu的引導項, 而如果我們的grub都已經損毀或者丟失, 則需要使用光碟映象進入乙個可以使用或者修復的linux系統來完成grub的重新安裝.

把系統光碟放入光碟機, 重啟linux系統. 系統啟動時按」f2」鍵, 在」boot:」 提示符下輸入 「linuxrescue」 後」回車」, 進入」急救模式」引導光碟中的linux系統.

之後依次按回車鍵接收預設的語言、鍵盤格式,提示是否配置網絡卡是一般選擇「no」,然後系統會自動查詢硬碟中的linux分割槽並嘗試將其掛載到」/mnt/sysimage」目錄(選擇」continue」確認並繼續).

接下來需要特別注意 : 當出現是否初始化磁碟的警告視窗時,一定要選擇」no」, 以免對硬碟資料造成進一步損壞. 最後選擇」ok」確認後將進入到帶」sh-x.x#」提示符的bash shell環境。

注意, 不進入恢復模式, 也可以選擇映象中的」使用ubuntu」選項, 也會進入光碟中的linux, 但是不會嘗試掛載磁碟, 這個時候我們可以選擇手動掛載.

下面我們著重講講第二種情況, 第一種情況下如果不會修改grub.conf檔案, 可以使用第二種情況的方法處理

選擇ubuntu安裝磁碟, 如果不確定具體在哪個磁碟, 可以用命令檢視一下

sudo fdisk -l
掛載ubuntu系統安裝磁碟(我的是在第0磁碟,故為sda0)

sudo mount /dev/sda0 /mnt
開始恢復grub2系統引導

sudo grub-install --root-directory=/mnt/dev/sda
執行命令之後, 如果沒有報錯, 則恢復成功, 重啟即可.

恢復之後是之前的系統引導介面,如果新安裝的系統沒有在介面上顯示,那麼可以進入ubuntu系統,進行grub/grub2更新

開啟終端,輸入

sudo update-grub2
grub2請使用

sudo update-grub2
本作品採用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可

給我老師的人工智慧教程打call!

修復GRUB引導

五一回來後,發現同事的電腦不能正常由grub引導了,自動進入了gurb的命令列狀態。估計是有人動過,但是還好同事沒有到崗所以有時間修好。使用kernel 與initrd命令引導進入了linux,發現可以正常進入,說明只是引導的問題,於是就去 boot grub下開啟grub.conf來看。的確是看不...

Kali Linux修復grub引導

kali的引導層是很脆弱的。如果你裝的是多系統,只要你重新分割槽,甚至更新一下win10都會導致kali無法啟動,而easybcd是不能修復kali的引導層的。下面我來說明一下如何重寫kali的引導層。把安裝kali的u盤插入並從該u盤啟動,進入後選擇live模式 第乙個 然後開啟終端。先輸入一下命...

系統引導失敗 GRUB 修復

網路資訊,原址不記得了,請見諒 1.用ubuntu 8.04live cd 啟動 2.開啟乙個終端,執行 sudo grub 你會看到 grub 這樣的提示符 3.在提示符 grub 後輸入find boot grub stage1 你會得到乙個執行結果,比如我的機子上結果是 hd0,5 這個命令其...