用 Win7 引導 grub4dos,以及用 grub 引導 Win7

來源:互聯網
上載者:User

以前在 Windows XP 中用 grub4dos 引導 linux 很容易,直接改 boot.ini 就行了。現在換了 Win7 ,結果反而更麻煩了。

 

基本步驟是:

  1. 下載 grub4dos:https://gna.org/projects/grub4dos/
  2. 把 grldr.mbr 和 grldr 拷到 C:/
  3. 用 bcdedit 添加一個 bootsector 類型的 BCD 啟動項,運行 grldr.mbr
  4. 啟動的時候,grldr.mbr 會在各個分區下搜尋 grldr,並裝載之

詳見:
http://bbs.znpc.net/viewthread.php?tid=2300&extra=&page=1
http://grub4dos.sourceforge.net/wiki/index.php/Grub4dos安裝和啟動

 

但我遇到的問題更麻煩:我的 Win7 是用 grldr 類比 BIOS 啟用的!

 

也就是說 MBR 裡的內容已經是 grldr.mbr,而且 C:/ 本來就有一個 grldr ,但那個 grldr 是定製過的,包含著 BIOS 資訊,還內建了 menu.lst,我不能覆蓋,也不能修改。

 

經過各種嘗試,終於找到了一種解決方案:用 16 進位編輯器修改 grldr.mbr ,將裡面的 grldr 全部替換成 gdldr 。再把 grub4dos 原版的那個 grldr 改名為 gdldr 放在 C:/ 下。這樣 Win7 啟動的時候,選擇 grldr.mbr 的菜單,會尋找 gdldr 並裝載。如此一來就完美地解決了用 grldr 啟用的的 Win7 無法再使用 grldr 引導 linux 的問題。

 

大家可以參考下面兩幅圖:

 

1. 如果不修改 grldr.mbr,只用常規方法的話,會陷入死迴圈:

 

2. 修改 grldr.mbr ,成功跳出死迴圈:

 

還有就是 menu.lst 的寫法。因為我希望在 Windows 的引導菜單能夠進入 grub,而在 grub 的菜單中也能回到 Windows。在 grub 中引導 Windows XP 我們只需要這樣寫:

title Windows XP<br /> rootnoverify (hd0,0)<br /> chainloader +1

但自從 Vista 之後,Windows 的引導管理器就由 ntldr 變成了 bootmgr ,menu.lst 的寫法也要這樣:

title Windows 7<br /> acpi<br /> fallback 1<br /> root (hd0,0)<br /> chainloader /bootmgr

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.