GRUB(GRand Unified Bootloader)是功能強大的多重開機管理程式,支援在同一台電腦上共存多種作業系統(Linux、FreeBSD、Solaris、Windows 9x/NT/2000/XP 等)。它可直接載入核心啟動類 Unix 系統,或透過 chainloader 移交控制權給 Windows 等不支援多重開機的系統。
menu.lst 自動開機。若已安裝支援 GRUB 的 Linux 發行版(如 BluePoint Linux),通常預設已安裝。重新安裝至主開機記錄只需執行:
makebootable
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 切換至文字選單。常用熱鍵:
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 |
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
grub> 提示符。root (hd0,0)(第一顆硬碟第一分區)。chainloader (hd0,0)+1kernel (hd0,0)/boot/vmlinuz root=/dev/sda1 → initrd (hd0,0)/boot/initrd.imgboot 執行啟動。隨時可按 Tab 列出可用指令/裝置/檔案路徑,↑/↓ 查看歷史紀錄。
grub-install /dev/sda 重裝。註:現代多數 Linux 發行版已改用 GRUB 2(配置檔為 grub.cfg,透過 update-grub 自動生成),本文針對傳統 GRUB Legacy(v0.9x)說明,概念相通但指令語法略有差異。