這裡介紹如何在 Ubuntu Linux 系統中設定 GRUB 開機選單,讓硬碟中的 ISO 映像檔直接可以開機。

讓硬碟中的 ISO 映像檔可以直接開機有時候非常有用,例如想要測試一些新的 Linux 發行版的時候,如果可以直接用硬碟中的 ISO 映像檔開機,就可以省去燒錄 CD/DVD 或製作 USB 開機碟的時間與力氣。

在這裡我們將示範使用 GRUB2 讓硬碟中所存放的 Ubuntu 13.04 ISO 檔來開機,而實作的方法有兩種,一種是使用 grml-rescueboot 自動更新 GRUB2 的開機選單,而另外一種則是自行更改 GRUB2 的設定檔。

使用 grml-rescueboot 讓 ISO 映像檔開機

grml-rescueboot 是一個用於輔助 update-grub 的套件,它提供一個 update-grub 專用的指令稿(script),讓所有放在 /boot/grml 目錄下的 Grml ISO 映像檔可以自動被加入開機選單中,它的目的就是可以讓使用者在不需要 CD/DVD 或 USB 隨身碟的情況下,使用這些映像檔開機然後進入 Grml 的救援模式。

在 Ubuntu Linux 中若要安裝 grml-rescueboot,可以使用 apt 來安裝:

sudo apt-get update
sudo apt-get install grml-rescueboot

接著將要用來開機的映像檔複製到 /boot/grml/ 目錄中:

sudo cp -v ~/ISOFILE/ubuntu-13.04-desktop-i386.iso /boot/grml/

接著更新 GRUB2 的開機選單:

sudo update-grub

重新開機之後,你就會看到開機選單中多了一項「Grml rescue system」,選擇這個就可以使用剛剛放進去的映像檔開機了。

Ubuntu-Desktop-13-04-Grub-Grml-Rescue-System

自行修改 GRUB 設定檔

除了透過 grml-rescueboot 這個方式之外,你也可以自行修改 GRUB 的設定檔來讓硬碟中的 ISO 映像檔開機。首先,要先找一個地方放置映像檔:

sudo mkdir /isoimage

把映像檔放進去:

sudo cp -v ~/ISOFILE/ubuntu-13.04-desktop-i386.iso /isoimage

使用 nano 編輯 /etc/grub.d/40_custom 這個 GRUB 的設定檔(當然你也可以使用自己習慣的編輯器,如 vi 等):

sudo nano /etc/grub.d/40_custom

加入以下的設定:

menuentry "Ubuntu 13.04 Live" {
 set root=(hd0,1)
 loopback loop /isoimage/ubuntu-13.04-desktop-i386.iso
 linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/isoimage/ubuntu-13.04-desktop-i386.iso noprompt noeject
 initrd (loop)/casper/initrd.lz
}

就像這樣

grub-configure

編輯完成之後,就可以存檔離開了。最後重新開機之後,就可以看到新的開機選單了。

Ubuntu-Desktop-13-04-Grub

參考資料:Ubuntu Portal