首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Fedora 22 雙系統啟動異常:grub-install 目標應為 /dev/sda 而非分區

     編輯:程式設計綜合問答

現象

Win8.1 + Fedora 22 雙系統,原用 EasyBCD 引導。執行 yum update 後 Fedora 無法啟動,顯示 Try (hd0,0) EXT2:。嘗試 grub2-install /dev/sda1 導致 Win8.1 引導項也消失。

錯誤原因

grub2-install /dev/sda1 將 GRUB 安裝到**分區啟動扇區 (PBR)**,而非**磁盤主引導記錄 (MBR)**。BIOS/UEFI 啟動流程讀取 MBR,找不到 GRUB 核心映像,導致雙系統均無法引導。

正確修復命令

# 1. 進入 Fedora LiveCD/救援模式
# 2. 掛載根分區 (假設 /dev/sda5)
mkdir /mnt/fedora
mount /dev/sda5 /mnt/fedora
mount --bind /dev /mnt/fedora/dev
mount --bind /proc /mnt/fedora/proc
mount --bind /sys /mnt/fedora/sys
chroot /mnt/fedora

# 3. 正確安裝 GRUB 到磁盤 MBR
grub2-install /dev/sda     # 關鍵:目標是整盤 /dev/sda,非分區
grub2-mkconfig -o /boot/grub2/grub.cfg

# 4. 退出重啟
exit
reboot

關鍵點總結

錯誤操作正確操作說明
grub2-install /dev/sda1grub2-install /dev/sdaMBR 在磁盤前 446 字節,分區啟動扇區不被 BIOS 直接引導
未掛載關鍵虛擬文件系統掛載 /dev /proc /sys 後 chrootgrub2-probe 需訪問設備節點
未更新 grub.cfggrub2-mkconfig -o /boot/grub2/grub.cfg生成含 Windows 項目的菜單

UEFI 模式補充

若為 UEFI 雙系統:

grub2-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=fedora /dev/sda
# 並確保 /boot/efi 掛載正確的 EFI 系統分區 (通常 /dev/sda1 或 /dev/sda2)

預防建議

  • 內核更新後自動觸發 grubby 更新配置,手動干預極少見。
  • 雙系統首選 **GRUB 管理引導**,勿用 EasyBCD/BCDedit 修改 Linux 項目。
  • 備份 /boot/grub2/grub.cfg 及 /etc/default/grub。

一條命令搞定:**針對整盤安裝 GRUB (/dev/sda) 而非分區**,雙系統引導即刻恢復。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved