如何利用 GRUB 2 建立開機選單

想在同一顆硬碟安裝 DOS、Windows、Linux 等作業系統,則 GRUB 2 是不可或缺的開機選單工具。

如果照一般的方式先安裝 Windows 後再安裝 Linux,則 GRUB 2 可以認到 Windows Partiion,所以使用上沒有問題。但反之如果先安裝 Linux 再安裝 Windows,則 Windows 會蓋掉 MBR 的  Linux 開機選單。此時就要利用下列的方式來重建選單。

另外 GRUB 2 也不認得 DOS Partition,所以必須以手動的方式加入 (目前 DOS 是用 Ghost 的方式還原安裝的)

而 Windows 7 會佔用兩個 主磁碟分割 (Primary Partition),所以在分割硬碟時記得預留一個。
  1. 利用 Ubuntu LiveCD (9.10 以後的版本) 開機
  2. 開啟 終端機,執行 sudo fdisk -l 查看 Linux Partition 為何 (ex: /dev/sda3)
  3. 執行 sudo mount /dev/sda3 /mnt 將 Linux Partion 掛載到 /mnt 目錄
  4. 執行 sudo grub-install --root-directory=/mnt /dev/sda 將 GRUB 2 安裝到 MBR
  5. 重新開機進入 Linux
  6. DOS Partition 必須以手動的方式加入,請在 /etc/grub.d/40_custom 檔案的最後面加入
    menuentry "DOS" {
    set root=(hd0,2)chainloader +1
    }

    其中 (hd0,2) 的定義請參考 鳥哥 的說明
  7. 開啟 終端機 執行 sudo update-grub 重建開機選單,此時即會掃瞄已安裝的 OS
完整的文件請參考 Ubuntu document - Grub2

5.1 /etc/default/grub (file)
7.1 Creating the Custom Menu
13.1 Reinstalling from LiveCD

PS : 若是硬碟上有兩個 Linux 系統 (例如 Ubuntu & Ubuntu Studio),則要切換不同的 GRUB 時,只要進入該系統後執行 sudo grub-install /dev/sda 即可,無法進入該系統才用以上的方式


若想要 GRUB 2 選單維持在上次選擇的項目,請修改 /etc/default/grub
  • GRUB_DEFAULT=saved
  • GRUB_SAVEDEFAULT=true
再以 sudo update-grub 更新選單即可

留言

這個網誌中的熱門文章

Linux 批次檔的寫法

【分享】如何顯示 Debug Message

[分享] Visual Studio 遠端偵錯