2009年8月7日 星期五

Grub2 如何加入別的 OS

在 /etc/grub.d/ 目錄下,有一些數字開頭的 script 檔,這些 script 檔會在執行 grub-mkconfig 時依序的執行並加到 grub.cfg 中。

所以當我們要加入一個 OS 項目時,可以這樣實作:
1. 加入一個 WinXP 的項目檔案,
# vim /etc/grub.d/40_winxp
#! /bin/sh -e
echo 」Adding Windows" >&2
cat << EOF
menuentry 「Windows XP」 {
set root=(hd0,1)
chainloader +1
}
EOF

然後再執行,grub-mkconfig,就會加入WinXP的選項。但我並不建議這樣用,太累了。
Debian有更聰明的做法,/etc/grub.d/下有一個30_os_prober的 script,望文生意就能知道它能自動偵測有什麼OS在硬碟裡。

首先,安裝os-prober後,再執行一次 grub-mkconfig,就會發現到 console 有這樣的敘述:

Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.26-2-686-bigmem
Found initrd image: /boot/initrd.img-2.6.26-2-686-bigmem
Found Microsoft Windows XP Professional on /dev/sda1

這樣就表示已經抓到Windows的磁區了,這樣就不用再煩惱OS開機碟怎麼設定了!

沒有留言: