[2010.0326 AM2:33 修正]
本業が忙しく、更新が遅れてしまいました。GRUB2についていろいろ調べてみたら、タイトルに書いたように、Ubuntu9.10がインストールしてあるHDDの中に保存したisoイメージを直接起動できることがわかりました。

※ やや難易度が高いと思いますので、初心者向けではありません。

試しに、Ubuntu 10.04の開発版(daily buildの3/25バージョン)のISOイメージを起動させてみました。

isoイメージの準備

まず、利用したいISOイメージを入手します。ちなみに、今回利用したdaily build版は下記のサイトから入手しました。

Ubuntu 10.04 LTS (Lucid Lynx) Daily Build

ダウンロードしたISOイメージファイルをホームディレクトリ(僕の場合はvineuserというユーザ名なので、/home/vineuserの直下)に保存しておきます。念のため、日本語を含まないディレクトリに保存しておいた方がいいでしょう。

GRUB2の設定は/boot/grub/grub.cfgというファイルに記述されますが、このファイルを直接編集するのは危険です。update-grubというコマンドを実行して、/boot/grub/grub.cfgに反映されるという方式になっています。ですので、以下の設定は、最後のupdate-grubを実行しないと有効になりません。

GRUBメニューを表示させるには…

Ubuntu 9.10では、デフォルトでGRUBメニューが非表示になっていますので、まずはこれを表示させる設定変更を行います。

/etc/default/grubというファイルの4行目と5行目にある以下の行をコメントアウト(先頭に#を追加する)すればOKです。

#GRUB_HIDDEN_TIMEOUT=0
#GRUB_HIDDEN_TIMEOUT_QUIET=true


カスタムエントリーの追加

今回は新たにエントリーを追加するため、/etc/grub.d/40_customというファイルの末尾に次の内容を書き加えて保存します。

ーーここからーーーーーーーーーーーーーーーーーーーーー
menuentry "Lucid Lynx daily build 2010-0325" {
loopback loop (hd0,1)/home/vineuser/lucid-desktop-i386.iso
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/home/vineuser/lucid-desktop-i386.iso noprompt noeject quiet splash
initrd (loop)/casper/initrd.lz
}
ーーここまでーーーーーーーーーーーーーーーーーーーーー

青字の部分は、GRUBメニューに表示させる文字列を記述します。また、赤字の部分は、ISOイメージをフルパスで指定します。

なお、カーネル(vmlinuz)やinitrdの設定部分はUbuntuのLiveCD特有の指定になっているので、他のディストリの場合は、変更が必要です。

設定変更の反映

最後に、以下のコマンドを実行して、変更した部分を/boot/grub/grub.cfgに反映させます。

$ sudo update-grub

以上で終了です。再起動して、追加したエントリーを選択して起動させてみましょう。

この方法を使えば、ISOイメージをCDに焼いたりUSBにインストールしたり仮想化環境を利用したりしなくても、開発版のISOイメージを試すことができます。また、CD起動の場合よりも起動時間も速く、より実用的な体感速度で使えそうです。