HowtoRestoreGrub

出自Ubuntu 正體中文 Wiki

跳轉到: 導航, 搜尋


目錄

前言

初學者遇到重新安裝 Windows 之後,無法進入 Linux 選單,原因很簡單是開機程式被換掉了。 而不知道如何處理的人,往往就是重新安裝 Ubuntu 之後就恢復。 不過對於這樣的方式往往是非常麻煩,也是不正確作法。

光碟開機(Ubuntu Desktop CD)

如何用 Ubuntu Live CD 修復 GRUB 到某一分割區中或 MBR

譯註: MBR,Master Boot Record 主要開機磁區。

偶爾,如果 Ubuntu 安裝過程出錯,或是 Windows NT 開機載入程式覆蓋了 MBR ,並且無法辨識 Linux 的安裝,我們必須修復我們的 GRUB 開機載入程式。 GRUB 開機載入程式,一般來說,是非常有彈性的。

首先,我們燒錄 Hardy Heron (Ubuntu 8.04) ISO (在 CD(R , RW) 上或 DVD (+R , +RW)) 上,或確保我們已經有一份了。

然後,在 BIOS 中,我們修改開機讀取順序 (boot load sequence) ,然後我們將 CD/DVD 選項設為第一。

在那之後,我們用 Live CD 開機,我們選擇第一個選項,然後過一會兒,我們便進入 Live CD 桌面了。

所以,我們開啟:

應用程式 Applications --> Accessories --> 終端機 Terminal 

然後,我們必須記住哪個是我們的 Ubuntu 安裝分割區。

在我們的範例中,它是第二個分割區 (/dev/sda2),格式化成 ext3,位於 SATA 控制器的第一個硬碟。假定由於 Windows 的需求,我們將 Windows 安裝在第一分個區 (/dev/sda1),於是第一分割區被佔據了,我們假定 Ubuntu 是第二個。

現在,您必須非常謹慎。您必須輸入正確的分割區,而不是 sda2 (除非它真的是這樣) 在終端機中:

cd /
sudo -s -H
mount -t ext3 /dev/sda2 /mnt
mount -t proc proc /mnt/proc
mount -t sysfs sys /mnt/sys
mount -o bind /dev /mnt/dev
chroot /mnt  /bin/bash

而現在,您事實上正在 "執行" 硬碟上的 Ubuntu ,但是透過 Live CD 的終端機。

現在我們這樣修復 GRUB :

1) 修復到 MBR

 grub-install /dev/sda

2) 修復到分割區 (例如: /dev/sda2)

 grub-install /dev/sda2

在第一個方式中 (這是最常見的) ,在您於終端機中得到 there are no errors (沒有錯誤)的訊息後,您便確實的安裝 GRUB 到 MBR 上了。

在您重新開機之後,您最愛的開機載入程式 (bootloader) 便修復好了。

光碟開機(Ubuntu Server CD 或者 Alternate install CD)

圖片:2006100201.png
請用 Ubuntu Server CD 或者 Alternate install CD 開機,會出現這些項目,選擇 Rescue a broken System


圖片:2006100202.png
選擇語系


圖片:2006100203.png
選擇地區


圖片:2006100204.png
檢測鍵盤


圖片:2006100205.png
鍵盤語系


圖片:2006100206.png
鍵盤排列方式


圖片:2006100207.png
載入資料


圖片:2006100208.png
網路設定


圖片:2006100209.png
選擇 / (根目錄) 位置


圖片:2006100210.png
選擇 重新安裝 Grub 開機程式


圖片:2006100211.png
設定 Grub 安裝位置,請填 (hd0)


圖片:2006100212.png
重新安裝 Grub 程式中


圖片:2006100213.png
重新開機


增加 Windows 開機項目

圖片:2006100214.png

重新設定好 Grub 選單,會發現沒有 Windows 項目,就無法開啟 Windows 系列。

請先進入系統,選擇 應用程式 -> 附屬應用程式 -> 終端機

sudo gedit /boot/grub/menu.list

原本

hiddenmenu

改成

#hiddenmenu

此作用為顯示Grub 選項。

而在檔案最後面增加 Windows 項目

title           Windows  (loader)
root            (hd0,0)
savedefault
makeactive
chainloader     +1

比較要注意是,root 此項目,請按照本機實際安裝的 Windows 位置而定。
若您的Winodws 安裝順序為第一個硬碟的第一個分割區,此參數為 (hd0,0),從零開始算。
所以若您的 Windows 安裝是在第一個硬碟的第二個分割區,此參數為(hd0,1)。

增加之後,以後開機可以選擇 Ubuntu Linux 開機或者 Winodws 開機。