1. 程式人生 > >Linux下通過GRUB2實現與Windows的雙啟動

Linux下通過GRUB2實現與Windows的雙啟動

前一篇文章介紹瞭如何在只有Windows系統可以啟動的情況下,通過BCDEdit和Grub4Dos來啟動Linux系統。可是這樣啟動Linux實際上運行了兩次Boot程式。既然通過上述方法已經可以進入Linux系統了,那麼不如重新設定和安裝Linux下原有的Grub。當前GRUB已經升級到GRUB2,其動作方式有很大的不同。menu.lst檔案沒有了(開始有點摸不著頭腦,有點像boot.ini沒有了換成BCD的感覺)。 其實GRUB2已經不再要手動配置啟動檔案,這樣也就不需要menu.lst檔案了[1]

讓Linux下的GRUB2重新獲得mbr,而且還能夠Boot所有的系統的步驟如下:

1. 更新GRUB2的啟動配置檔案,探索系統中以存在的系統(包括Windows系統)

          sudo update-grub

2. 將GRUB2重新安裝並載入為mbr

          sudo grub-setup /dev/sdXX[2]

3. 重起系統,就可以通過Linux下的GRUB2啟動所有的系統了。

[1] GRUB2的配置檔案為/boot/grub/grub.cfg,通過update-grub程式將會自動跟新。不建議手動更新!

[2] /dev/sdXX為根檔案系統所存在的分割槽

[2] grub-install也可以用來重新安裝GRUB2,一般是從LiveCD中執行的時候,指定--root-directory選項。

補充:

從GRUB升級到GRUB2的步驟:

1. 安裝grub-pc, grub-common包,

   sudo apt-get install grub-pc grub-common

    安裝過程中會提示將GRUB2首先安裝到GRUB的chainloader中,進行GRUB2啟動測試。

2. 升級到GRUB2

    sudo upgrade-from-grub-legacy

3. 察看一些GRUB2的基本資訊

    sudo grub-install -v     #獲得GRUB2版本, 1.96以後的版本均為GRUB2

    sudo grub-probe -t device /boot/grub    #獲得GRUB安裝的分割槽

    sudo grub-probe -t fs_uuid /boot/grub   #獲得GRUB安裝的檔案系統UUID

4. 探索主機中存在的系統,並且更新啟動配置檔案。

    sudo update-grub