Ubuntu grub rescue 主引導修復

2021-06-22 15:05:49 字數 4539 閱讀 2582

長期使用windows 和 ubuntu 雙系統的人,很有可能碰到重灌某乙個系統,或者另外新增分割槽,導致系統重啟出現 :

grub loading

error:unknow filesystem

grub rescue>

bios:"basic input output system",中文名稱就是"基本輸入輸出系統"。其實,它是一組固化到計算機內主機板上乙個rom晶元上的程式,它儲存著計算機最重要的基本輸入輸出的程式、系統設定資訊、開機後自檢程式和系統自啟動程式。 其主要功能是為計算機提供最底層的、最直接的硬體設定和控制。

mbr: 「master boot record」 硬碟的物理扇區,也叫主引導記錄!因為bios 很小無法承載啟動的執行程式,所以在bios檢測到乙個硬碟後,將硬碟的0柱面、0磁頭、1扇區的內容經過簡單判斷後, 至記憶體中的指定位置,然後跳轉至這個位置,開始從這個位置執行,大小為512個byte,其中主要存放引導程式和該硬碟的分割槽表。

grub:「grand unified bootloade」 多重作業系統啟動管理器,就是執行這個grub之後可以通過它來引導進入其它的系統,包括window以及linux

上面三個概念,從字面意思上應該能明白他們的流程,大體是:

pc 首先啟動到bios ,然後檢測硬碟的mbr,將mbr這塊扇區的內容(也就是寫在上面的grub)裝入記憶體執行,再通過執行grub得到的結果實現新的跳轉啟動!

當pc 是先裝windows後裝ubuntu 或者只有乙個ubuntu系統,是將ubuntu系統自帶的grub2 引導程式寫在了mbr上的話,那麼開機的主引導程式就是grub2 ! (ubuntu 自9.10之後就全部使用的grub2)

而grub2 分為兩部分,其中一部分寫入mbr,其中一部分存在與ubuntu的/boot/grub 目錄下。

而出現 grub rescue> 就是代表mbr部分的無法正常運作grub程式,啟動grub 救援模式,因為無法找到/boot/grub部分。

grub rescue下可用命令:

set,ls,insmod,root,prefix(設定啟動路徑)

首先通過ls檢視所有的分割槽,會列出:

(hd0),(hd0,msdos8),(hd0,msdos7),(hd0,msdos6),(hd0,msdos5),(hd0,msdos3),(hd0,msdos1)

需要找到ubuntu的安裝分割槽,通過ls (hd0,msdos*)/boot 直到不出現:error:unknown filesystem

如果知道開始安裝ubuntu 在哪個分割槽的話,比如sda7 那麼這裡就是msdos7,如果是在ubuntu 硬碟空間之前的地方進行了新增分割槽,那麼就把ubuntu的分割槽序號往後移!變成msdos8

找到之後通過如下命令設定設定一次性啟動引數:

grub rescue>set root=(hd0,msdos8)

grub rescue>set prefix=(hd0,msdos8)/boot/grub

grub rescue>insmod /boot/grub/normal.mod

grub rescue>normal 就會出現boot/grub 中的啟動介面了!

如果/boot/grub沒有損壞,就能進入ubuntu 系統啦,如果grub啟動ubuntu的部分損壞了,就需要手動引導了:

進入grub命令列:

grub> root (hd0,8) ## 指定包含vmlinuz-2.6.18-274.7.1.el5和initrd-2.6.18-274.7.1.el5.img的partition

grub> kernel /boot/vmlinuz-2.6.18-274.7.1.el5 ro root=/dev/sda8 ## root= 是指定包含/sbin/init的partition,即掛載/的partition(以linux的角度)

grub> initrd /boot/initrd-2.6.18-274.7.1.el5.img ## 據說這項可以省略

grub> boot

在正確進入了ubuntu之後,需要更新mbr的grub部分來適應新的分割槽情況:

終端輸入:

sudo update-grub2

sudo grub-install/dev/sda

更新到 /boot/grub/grub.cfg 中!然後再把grub 安裝到主硬碟的mbr

有遇到過這樣安裝不成功的,在grub2手冊中有另外的重灌grub2 到mbr 的方法,記錄一下:

此方案安裝會使用 chroot 指令來訪問受損系統的檔案。

一旦執行了 chroot 指令,livecd 會將損壞系統的 / (根目錄)當作是目前自己所使用的。

在 chroot 環境中執行的指令會影響受損系統的檔案系統,而不是 livecd 的。

1. 開機進入 livecd 桌面(ubuntu 9.10 或更新版)。注意此 livecd 必須要與您現在欲修復系統的版本相同 - 無論 32-bit 或是 64-bit(否則 chroot 會失敗)。

2. 開啟終端機 - 應用程式,附屬應用程式,終端機。

3. 確認您的標準系統分割區 - (選項是小寫的「l」)

sudo fdisk -l

若您不確定,執行

df -th

找到正確的磁碟容量及 ext3 或 ext4 格式。

4. 掛載您的標準系統分割區

用正確的分割區替換:sda1, sdb5 等等。

sudo mount /dev/sdxx /mnt #範例:sudo mount /dev/sda1 /mnt

5. 若您有獨立的 /boot 分割區:

sdyy 是 /boot 分割區的位置(例如 sdb3)

sudo mount /dev/sdyy /mnt/boot

6. 掛載重要的虛擬檔案系統:

sudo mount --bind /dev /mnt/dev

sudo mount --bind /dev/pts /mnt/dev/pts

sudo mount --bind /proc /mnt/proc

sudo mount --bind /sys /mnt/sys

7. chroot 至您的標準系統裝置:

sudo chroot /mnt

8. 若系統中沒有 /boot/grub/grub.cfg 或其內容不正確,使用以下指令重建

update-grub

9. 重新安裝 grub 2:

以正確裝置替換 - sda, sdb, 等等。不要指定分割區號碼。

grub-install /dev/sdx

10. 驗證安裝(使用正確的裝置,例如 sda。不要指定分割區):

sudo grub-install --recheck /dev/sdx

11. 退出 chroot:按下鍵盤之 ctrl-d

12. 解除安裝虛擬檔案系統:

sudo umount /mnt/dev/pts

sudo umount /mnt/dev

sudo umount /mnt/proc

sudo umount /mnt/sys

若您有掛載獨立的 /boot 分割區:

sudo umount /mnt/boot

13. 解除安裝 livecd 的 /usr 目錄:

sudo umount /mnt/usr

14. 解除安裝最後的裝置:

sudo umount /mnt

15. 重新開機。sudo reboot

另外常用的就是,無法啟動到grub介面,這個時候就需要另外的引導了,網上很多的方法是使用ubuntu的安裝光碟,也就是livecd,

我常用的就是u盤,用**桃載入乙個ubuntu 的iso 製作乙個ubuntu啟動u盤,然後bios選擇u盤啟動,

選擇 try running ubuntu,不選 install 選項

這樣就執行了我們製作在u盤上面的ubuntu系統,可以以這個為媒介來修改本機上其它的系統檔案,像上面提到的 先mount 上那些分割槽:

sudo mount /dev/sdxx /mnt

可先使用 sudo fdisk -l 命令檢視分割槽情況,選擇對應的

如果要修改對應內容 使用 chroot 切換 完了之後 ctrl+d退出

我這邊是13.04 , grub版本為:

jscese@jscese-h61m-s2p:~$ grub-install -v

grub-install (grub) 2.00-13ubuntu3

在這個情況下可以使用如下命令將正確的grub 安裝到 mbr:

grub-install --root-directory=/mnt /dev/sda

我這的sda 為第一塊硬碟

Ubuntu grub rescue 主引導修復

長期使用windows 和 ubuntu 人雙系統,很可能遇到沉重的乙個系統,或以其他方式加盟分割槽,導致系統重新啟動時 grub loading error unknow filesystem grub rescue bios basic input output system 中文名稱就是 基本...

硬碟主引導扇區引導程式

硬碟主引導扇區的引導程式只佔139個位元組 不同版本的fdisk 不同的分割槽程式寫入的主引導記錄會不相同,但其基本功能一樣 經過反彙編後的引導程式的彙編 如下 1000 0600 fa cli 自舉,將0000 7c00開始的硬碟主引導記錄本身轉移到0000 0600處,空出0000 7c00開始...

05 主引導扇區

計算機加電或者復位後將讀取0磁軌 0磁頭 1扇區共512位元組到0x0000 0x7c00 處,然後判斷它是否有效。乙個有效的主引導扇區最後2位元組是0x55,0xaa。文字模式和圖形模式是顯示卡的2中基本工作模式。訪問視訊記憶體需要和顯示卡這個外圍裝置打交道,外圍裝置相對cpu都是慢速 低效率的。...