Debian

在雙引導中安裝 GRUB

  • February 12, 2015

我剛剛在一個新的硬碟上安裝了我的作業系統:Windows 7 和 Debian 7。像往常一樣,我首先安裝了 Windows,然後是 Debian。

在第一次嘗試時,GRUB 似乎沒有正確安裝,因為我的電腦只會啟動到 Windows。我在 debian.org 上找到了這個,所以我聽從了它的建議:

當安裝過程中有多個磁碟可用時(例如,一個硬碟和一個 U 盤,通常是從 U 盤啟動安裝程序時的情況),grub-install 可能會遇到問題:多次報告,即 GRUB 引導載入程序已安裝到 U 盤上,而不是包含新安裝系統的硬碟上。

為避免遇到這種情況,請確保在安裝過程中出現以下問題時回答“否”:“將 GRUB 引導載入程序安裝到主引導記錄?”;應該可以在下一步指定正確的設備:“用於引導載入程序安裝的設備”。

完成此操作後,GRUB 會在啟動時顯示,但是當我選擇 Windows 時,螢幕會變黑並立即彈回 GRUB 菜單。我將 GRUB 安裝到第一個分區中,因為那是帶有引導標誌的分區。

我的分區如下:

  1. 100MB 系統預留
  2. 195GB 視窗
  3. 2GB 交換
  4. 40GB Linux

後來我設法用 Windows CD 修復了 MBR,但當然,現在 Debian 不可用。

我應該在其他地方安裝 GRUB,還是其他問題?

假設您正在分區MBR而不是GPT.

首先,您可以備份並最終恢復您的 mbr(假設 hda 是目標磁碟):

dd if=/dev/hda of=/path/mbr-backup bs=512 count=1 # backup
dd if=/path/mbr-backup of=/dev/hda bs=512 count=1 # restore

顯然,hda1如果您將 grub 安裝在分區而不是磁碟中。

請注意,如果它在磁碟 (hda) 中,請不要在備份和還原之間更改分區表。

其次,如果您的 Debian 目前已安裝,只需啟動 Live CD 並將 Debian 根目錄掛載到某處:

mkdir /tmp/x
mount /dev/hda1 /tmp/x # Debian root partition
# mount some needed filesystem
mount proc /tmp/x/proc -t proc
mount sysfs /tmp/x/sys -t sysfs
mount --bind /dev /tmp/x/dev

chroot 進入分區並重新安裝 grub

chroot /tmp/x
grub-install /dev/hda # or hda1 for the partition

還不知道您是否還需要update-grub(應驗證)

grubos-prober應該找到您的 Windows,然後如果它不啟動,則鏈載入程序中存在其他問題。

更新

如果您的磁碟已分區,GPT請參閱此常見問題解答

Windows 和 GPT 常見問題解答

特別是這個:

Windows 7、Windows Vista 和 Windows Server 2008 可以從 GPT 磁碟讀取、寫入和引導嗎?

是的,所有版本都可以使用 GPT 分區磁碟儲存數據。只有基於 UEFI 的系統上的 64 位版本才支持引導

如果你有BIOS使用MBR分區,如果你有UEFI然後使用GPT.

引用自:https://unix.stackexchange.com/questions/130810