萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 電腦故障排除 >  >> 電腦常見故障 >> 系統無法啟動

GRUB 多重開機管理器完整指南:安裝、配置與進階技巧

什麼是 GRUB?

GRUB(GRand Unified Bootloader)是功能強大的多重開機管理程式,支援在同一台電腦上共存多種作業系統(Linux、FreeBSD、Solaris、Windows 9x/NT/2000/XP 等)。它可直接載入核心啟動類 Unix 系統,或透過 chainloader 移交控制權給 Windows 等不支援多重開機的系統。

GRUB 核心優勢

  • 突破 1024 柱面/8.4 GB 限制:只要硬碟在 LBA 模式下,GRUB 能引導位於大容量磁碟深處的根分區,解決 LILO 的痛點。
  • 圖形化開機選單:支援 640×480、800×600、1024×768 解析度的開機畫面,可自訂背景圖片、廠商 Logo,並自動偵測最佳模式。
  • 雙重執行模式:
    — 選單模式:依 menu.lst 自動開機。
    — 命令列模式:按 c 進入,可動態修改參數、載入新核心測試,支援歷史指令(上下鍵)與 Tab 自動完成。
  • 分區位置變動免重配:GRUB 透過檔案系統直接讀取核心,只要核心路徑不變,調整分區大小(如用 Partition Magic)後無須重新安裝開機管理程式。
  • 豐富擴充功能:支援多種檔案系統(ext2/3/4、FAT、NTFS、ReiserFS…)、網路開機(TFTP/NFS)、模組化載入、自動解壓核心映像檔等。

安裝與製作開機磁碟

安裝至 MBR

若已安裝支援 GRUB 的 Linux 發行版(如 BluePoint Linux),通常預設已安裝。重新安裝至主開機記錄只需執行:

makebootable

製作 GRUB 開機軟碟(傳統方式)

cd /boot/grub
dd if=stage1 of=/dev/fd0 bs=512 count=1
dd if=stage2 of=/dev/fd0 bs=512 seek=1

或使用 mkbootdisk 2.2.16(核心版本號)快速建立。

開機選單與互動操作

開機時顯示圖形選單,按 Esc 切換至文字選單。常用熱鍵:

  • ↑/↓ 選擇項目,Enter 啟動
  • e 編輯該項啟動參數(臨時修改,不寫入設定檔)
  • c 進入命令列模式

配置檔 menu.lst 詳細解析

GRUB 啟動時讀取 /boot/grub/menu.lst(或 grub.conf),主要指令:

指令說明範例
timeout sec倒數秒數,-1 為無限等待timeout 5
default num預設啟動第 num+1 項(從 0 起算)default 0
splashimage指定開機圖片路徑splashimage /boot/logo/800x600.xpm.gz
title選單顯示名稱title Ubuntu 22.04 LTS
root (hdx,y)指定核心所在分區(hd0=第一顆硬碟,y=分區號從 0 起算)root (hd0,1)
kernel載入 Linux 核心與參數kernel /boot/vmlinuz root=/dev/sda2 ro quiet splash
initrd載入初始虛擬檔案系統initrd /boot/initrd.img
chainloader移交控制權給其他開機管理程式(如 Windows)chainloader (hd0,0)+1

範例:雙系統(Linux + Windows)配置

title Ubuntu 22.04
root (hd0,1)
kernel /boot/vmlinuz-5.15 root=/dev/sda2 ro quiet splash
initrd /boot/initrd.img-5.15

title Microsoft Windows 10
root (hd0,0)
chainloader +1

從軟碟/USB 啟動 GRUB 命令列手動開機

  1. 以 GRUB 開機磁碟/隨身碟啟動,進入 grub> 提示符。
  2. 指定根分區:root (hd0,0)(第一顆硬碟第一分區)。
  3. 依系統類型輸入:
    — Windows:chainloader (hd0,0)+1
    — Linux:kernel (hd0,0)/boot/vmlinuz root=/dev/sda1 → initrd (hd0,0)/boot/initrd.img
  4. 輸入 boot 執行啟動。

隨時可按 Tab 列出可用指令/裝置/檔案路徑,↑/↓ 查看歷史紀錄。

常見問題排除

  • 找不到 menu.lst:直接進入命令列,依上述步驟手動開機後,再建立/修復設定檔。
  • Windows 更新後 GRUB 消失:使用 Linux Live USB 開機,掛載系統分區,執行 grub-install /dev/sda 重裝。
  • 大容量硬碟無法開機:確認 BIOS 啟用 LBA/48-bit LBA,GRUB 版本 ≥ 0.97(支援 64-bit LBA)。

註:現代多數 Linux 發行版已改用 GRUB 2(配置檔為 grub.cfg,透過 update-grub 自動生成),本文針對傳統 GRUB Legacy(v0.9x)說明,概念相通但指令語法略有差異。

copyright © 萬盛學電腦網 all rights reserved