[FrontPage] [TitleIndex] [WordIndex

This is a read-only archived version of wiki.centos.org

排除 GRUB 的問題

假若一個系統的 GRUB 設定出現問題(成因包括:不正確地修改 GRUB 設定檔、安裝另一個操作系統、硬件上或 BIOS 內的改動引致設置的排序不相同),導致 GRUB 無法找到它的設定檔,你可能會面對 grub 的開機提示符而無從著手。普遍來說,第一步是要找出 GRUB 設定檔的位置。GRUB 的 find 指令可以為你效努。

grub> find /grub/grub.conf
find /grub/grub.conf
 (hd0,2)
 (hd1,2)

這裡告訢我們有兩個 /boot 分割區,有可能源自軟件 RAID 或不同操作系統。頭一個位於第一個硬盤的第三個分割區,而另一個位於第二個硬盤的第三個分割區。假若要將第一個項目的 GRUB 設定重新安裝到 MBR:

grub> root (hd0,2)
grub> setup (hd0)

如果你安裝了其它 Linux 版本,例如 Ubuntu,它也設只有 menu.lst 檔而沒有 grub.conf,但由於 CentOS 利用連結把 menu.lst 指向 grub.conf,因此在這兩款系統上尋找 menu.lst 亦可行:

grub> find /grub/grub.conf
find /grub/grub.conf
 (hd0,0)
grub> find /grub/menu.lst
find /grub/menu.lst
 (hd0,0)
 (hd0,1)

這裡告訢我們有兩個 /boot 分割區,頭一個位於第一個硬盤的第一個分割區,很可能正是 CentOS,而另一個 Linux 的 /boot 位於第一個硬盤的第二個分割區。

要檢視 grub.conf 及 menu.lst 檔的內容,可使用 GRUB 的 cat 指令:

grub> cat (hd0,0)/grub/grub.conf
 ... 顯示檔案內容 ...
grub> cat (hd0,1)/grub/menu.lst
 ... 顯示檔案內容 ...

要是首輪嘗試找不到檔案,很可能 /boot 分割區並不存在,而 grub 被安裝在主目錄內。你可試用

grub> find /boot/grub/grub.conf
 (hd0,0)
 (hd1,4)

同樣地,這個例子裡有兩個 GRUB 安裝。頭一個在第一個硬盤的第一個分割區,而另一個在第二個硬盤的第五個分割區 —— 亦即首個延伸分割區。

若果要還原第二個項目並將 GRUB 的開機程式安裝在第一個硬盤的 MBR 上:

grub> root (hd1,4)
grub> setup (hd0)

要是你不清楚主目錄的位置時,你可以嘗試尋找 /etc 內的一個檔案。譬如:

grub> find /etc/fstab
 (hd0,1)

由此我們得知 / 位於第一個硬盤的第二個分割區上 —— 採用 SCSI 或 SATA 等於 /dev/sda2,而採用 PATA 等於 /dev/hda2。

GRUB 的指令殼還有很多功能,並且在 GRUB 的 info 檔內有詳情記載,請利用 info grub 來存取它們。


其它 GRUB 文章:


這頁的英文版由 PhilSchaffner 建立及維護。歡迎其他 Wiki 貢獻者作出更正、添加或修改。

Translation of revision 6


2023-09-11 07:23