安裝 Windows 後導致 Grub 引導損壞,是雙系統使用者常遇到的問題。許多人以為必須重裝 Ubuntu,實則只要準備一支 Ubuntu Live USB,幾分鐘內即可修復 Grub,保留原有系統與資料。本文以 Ubuntu Live CD 修復安裝於 /dev/sda3 的 Fedora 為例,詳細記錄完整操作流程。
# 將 ISO 寫入 USB(假設 USB 裝置為 /dev/sdb,請依實際情況修改)
sudo dd if=ubuntu-13.10-desktop-amd64.iso of=/dev/sdb bs=4M status=progress && sync
注意:dd 指令會抹除目標裝置所有資料,請三確確認裝置代號(可用 lsblk 查看),避免誤刪硬碟資料。
插上 Live USB 開機,選擇「Try Ubuntu」(試用 Ubuntu),進入桌面環境後開啟終端機。
sudo fdisk -l
或使用圖形化工具 GParted 查看分區資訊。根據檔案系統類型(ext4、xfs 等)與分區大小判斷目標分區。本例中 Fedora 安裝於 /dev/sda3。
sudo mount /dev/sda3 /mnt
請將 /dev/sda3 替換為您實際的 Linux 根分區。
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
這步驟讓 chroot 環境能存取硬體裝置、核心資訊與系統參數。
sudo chroot /mnt
提示符變化表示已切換至目標系統環境,後續指令將在該系統下執行。
# 安裝 Grub 到磁碟(非分區),假設為 /dev/sda
grub2-install /dev/sda
# 產生新的 Grub 設定檔
grub2-mkconfig -o /boot/grub2/grub.cfg
關鍵點:grub2-install 目標是整顆磁碟(如 /dev/sda),而非分區號。若為 UEFI 系統,需改用 grub-install --target=x86_64-efi --efi-directory=/boot/efi 等參數。
exit # 退出 chroot
sudo umount /mnt/dev
sudo umount /mnt/proc
sudo umount /mnt/sys
sudo umount /mnt
按順序卸載,避免「target is busy」錯誤。
reboot
移除 Live USB,系統應能正常顯示 Grub 選單並啟動 Linux。
/dev/sda1 或 /dev/sda2)已掛載至 /mnt/boot/efi,再執行 grub-install。vgchange -ay)或解密 LUKS(cryptsetup open)才能掛載根分區。grub-install 目標應為 BIOS 啟動順序第一順位的硬碟。掌握這套流程,以後遇到 Windows 更新覆寫 MBR、Grub 選單消失等情況,都能冷靜處理,無需重裝系統。