核心優勢
Grub 故障 (如雙系統消失、進入 grub rescue、配置檔損毀) **無需重新安裝 Grub**,透過 Live CD 掛載根分區執行 `grub-install` 即可修復引導並保留原有 `grub.cfg` 設定,風險最低、速度最快。
前置條件
- Ubuntu Live USB/CD (或任何較新 Linux Live 環境,如 Linux Mint, Fedora Live)。
- 確認根分區 (`/`) 位置 (通常為 `ext4` 格式,ID=83)。
- 若 `/boot` 獨立分區,需同時掛載。
逐步修復指令
- 啟動 Live 環境 → 開啟終端機。
- 查看分區表:`sudo fdisk -l` → 記錄根分區裝置名 (如 `/dev/sda8`)。
- 取得 root 權限:`sudo -i`。
- 建立掛載點並掛載根分區:
`mkdir /media/tmp`
`mount /dev/sda8 /media/tmp`
- 若 /boot 獨立分區 (如 `/dev/sda7`):
`mount /dev/sda7 /media/tmp/boot`
- 安裝 Grub 至磁碟 MBR/GPT:
`grub-install --root-directory=/media/tmp /dev/sda`
**注意**:目標為整顆磁碟 `/dev/sda`,非分區號。
- 確認成功:輸出 `Installation finished. No error reported.` 即成功。
- 重開機驗證:移除 Live USB → 重啟 → 應見原版 Grub 選單。
補充:恢復 Windows 雙啟動項
若重開機 Grub 選單缺少 Windows 項目:
正常進入 Ubuntu → 終端機執行 `sudo update-grub2` → 等待掃描完成 → 重開機即會自動添加 Windows 啟動項。
避坑指南
- **確認分區表類型**:MBR (msdos) 用 `grub-install /dev/sda`;GPT 需確認 EFI 分區已掛載至 `/media/tmp/boot/efi` 並用 `grub-install --target=x86_64-efi --efi-directory=/media/tmp/boot/efi --bootloader-id=ubuntu --root-directory=/media/tmp /dev/sda` (UEFI 模式)。
- **勿在 Live 環境直接 `update-grub`**,會生成 Live 環境的配置而非目標系統配置。
- **備份優先**:修復前可 `cp -a /media/tmp/boot/grub /media/tmp/boot/grub.backup`。
替代參考
詳細 Grub2 修復指南請見:「Ubuntu 下如何修復 Grub 引導」。