
我有一個 Linux 和 Windows 7 的雙重引導設置,並以 Grub 作為引導程式。
我的分區表如下所示:
100 MB System Reserved Windows 7
500 GB Windows 7
100 MB /boot - ext2
500 GB linux, swap, etc.
我很好奇在我完成此設定後 GRUB 會在哪裡安裝。
我以為系統保留分割區是Windows 7的啟動分割區,但是如果Grub重寫它(我假設在主啟動記錄上),看起來Windows 7將無法運作。
Grub 將自身安裝在哪裡並且仍然能夠同時指向 Windows 和 Linux?這取決於你如何設定分割區嗎?
答案1
當Windows自行安裝時,它會在主引導記錄中放置一個引導程式(NT到XP中為NTLDR;之後為winboot),該記錄會boot.ini
向您顯示引導清單。一旦您從該清單中選擇了某些內容,引導程式的工作就完成了,並且相應的核心將從磁碟機上的實際分割區啟動。
Grub 也做同樣的事情;引導程式僅用於顯示grub.conf
/menu.lst
列表,一旦您選擇了某些內容,它就會將控制權轉移到常規分區。因此,grub 將覆蓋 MBR 中的 NTLDR/winboot,但不會覆寫普通分割區中的任何內容,如果您從啟動清單中選擇 Windows,它知道如何將控制權轉移到 Windows 分割區
答案2
Grub 會將其安裝到磁碟機的主引導記錄中。重要的是要認識到主引導記錄是分割磁碟機的第一個磁區,而不是分割區本身。看維基百科了解更多信息
有了這些信息,Grub 基本上會覆蓋 Windows 7 安裝的 MBR 信息,但不會觸及 Windows 7 創建的“系統保留分區”(除非您要求它這樣做)。新的 MBR 只會告訴您的系統載入 GRUB,然後 GRUB 將確保已載入正確的作業系統。這使您可以輕鬆地在作業系統之間切換。
答案3
我唯一一次將 GRUB 安裝到 MBR 以外的位置是在 Mac 上 - 整個雙重開機問題在那裡變得相當複雜。一般情況下,GRUB 將被安裝到 MBR,覆蓋 NTLDR,並允許您啟動 Linux 或 Windows。
答案4
這裡有一些令人困惑的東西。首先你需要知道,磁碟分割時,每個片中都有一個「分割區開機記錄」(片=主分割區)。當您格式化磁碟時,第一個磁區稱為「開機磁區」。引導磁區從標記為可引導的分割區載入並執行。
GRUB 在該區域中只有 512 字節,稱為 stage1。 Stage 1 僅載入 stage2(或1.5),這是載入 menu.lst 檔案和其他模組的檔案。
由於 Stage1.5(或 Stage2)從少量程式碼載入 menu.lst,它是特定於檔案系統的(需要能夠在 FS 中找到 /boot/menu.lst)。
看一看這裡閱讀更多內容。
簡而言之:Stage1 在 MBR 中,但 GRUB 不僅僅是 stage1,除了 Stage1 之外的所有內容都在 /boot 中。