古い PenM ノート NEC VersaPro VJ11/BH-T でネットワークブートを敢行。
このノートに内蔵の光学ドライブはなく、USBメモリからのブートにも対応していないので、OSのインストールにはUSBの外付け光学ドライブが基本的に必要なんですが、そんな物は持っていないのでネットワークブートさせるしかないのでした。トホホ。
ネットで調べると色々なネットワークブート方法があり、Ubuntu LiveCD のブートも可能らしい。Yatta!
Ubuntu LiveCD をネットワークブートさせる方法自体にも色々あるみたいですが、自分は以下のリンク先に書かれている方法を参考に、Ubuntu デスクトップ(ホストOS)の VertualBox 上の Ubuntu 仮想マシン(ゲストOS, PXE ブートサーバ)に Ubuntu 9.04 LiveCD をセットし、ノートPC(PXE ブートクライアント)からネットワーク経由で LiveCD を起動させることにしました。
参考: Creating a PXE boot for Jaunty Live. および ライブUbuntuをネットワークブートする − ディスクレスサーバ構築 – adsaria mood
まず既存の PC の方に VirtualBox(ver.2.1以上)をインストール。
そして、Ubuntu VirtualBox 用仮想マシンのイメージを入手してセットアップ。
http://www.virtualbox.org/wiki/Downloads
http://www.ubuntulinux.jp/products/JA-Localized/virtualbox
仮想マシンの Ubuntu がホストOSの外側から見えるようにするために、この仮想マシンの 設定 >ネットワーク > 割り当て で Bridged Adapter を選択。
仮想マシンを起動させてログインし、以下のディレクトリを作成。
/pxe
/pxe/images
/pxe/images/ubuntu
/pxe/pxelinux.cfg
次に syslinux の書庫をダウンロードして好みの場所で展開。
http://www.kernel.org/pub/linux/utils/boot/syslinux/
展開した書庫の core フォルダ内にある pxelinux.0 というファイルと、com32/menu フォルダ内にある menu.c32 ファイルを先ほど作成した /pxe ディレクトリにコピー。
syslinux の書庫やそれを展開したフォルダ内の残りのファイルは必要ないので削除してオーケー。
/pxe/pxelinux.cfg ディレクトリに default という名前のファイルを新規作成して以下の内容を記入。(192.168.1.12 部分は仮想マシン(PXE サーバ)のIPの指定で、環境に合わせた変更が必要。ifconfig コマンド等でIPを確認。自分の場合、ホストOSマシンのIPは 192.168.1.11 で仮想マシンのIPは 192.168.1.12 だったので。)
DEFAULT menu.c32
PROMPT 0
NOESCAPE 0
ALLOWOPTIONS 0
TIMEOUT 600
MENU TITLE PXE Boot Menu
LABEL Ubuntu Jaunty Live Desktop
kernel images/ubuntu/casper/vmlinuz
append boot=casper netboot=nfs nfsroot=192.168.1.12:/pxe/images/ubuntu initrd=images/ubuntu/casper/initrd.gz -- splashd
LABEL Ubuntu Jaunty Live Install
kernel images/ubuntu/casper/vmlinuz
append boot=casper netboot=nfs nfsroot=192.168.1.12:/pxe/images/ubuntu initrd=images/ubuntu/casper/initrd.gz -- splash only-ubiquity
続いて、最終的にネットワークブートでノートPC にインストールすることになる Ubuntu 9.04 LiveCD のイメージをダウンロードしてマウント。
http://www.ubuntulinux.jp/products/JA-Localized/download
イメージの中身すべてを /pxe/images/ubuntu ディレクトリにコピー。(直接このディレクトリにマウントするようにしてもよいかも。)
dnsmasq と nfs-kernel-server をインストール。dnsmasq は DNS フォワード機能の他、ネットワークブートに必要な DHCP 機能、TFTP 機能もサポート、nfs-kernel-server は LiveCD の内容ファイルをネットワーク越しに共有できるようにする機能を提供するみたい。
# apt-get install dnsmasq nfs-kernel-server
インストールしたら /etc/dnsmasq.conf ファイルを編集。ファイルにはコメントアウトされた記入例の記述があるだけだと思うので、以下の内容をファイルの一番最後に追記。IP の部分は環境に合わせた変更が必要。(たぶん server=/localnet/192.168.1.1 はDNSの指定、dhcp-options=3,192.168.1.1 はルータのIPの指定だと思います。自分が使用しているルータには DHCP 機能があり、ルータのDHCPの設定では 192.168.1.11 から 192.168.1.20 の範囲でローカルエリアネットワーク内のPCにIPを割り振るように自分はしてるので、VirtualBox ホストマシン(192.168.1.11)と仮想マシン(192.168.1.12)のIPを除いた以下のようにしてみました。あと自分は resolv-file=/etc/nameservers 行を削除しました。)
no-hosts
server=/localnet/192.168.1.1
dhcp-range=192.168.1.13,192.168.1.20,2h
dhcp-boot=pxelinux.0
enable-tftp
tftp-root=/pxe
resolv-file=/etc/nameservers #プロバイダのDNSを利用するなら必要のない行?
dhcp-option=3,192.168.1.1
さらに /etc/exports ファイルを編集。このファイルもコメントアウトされた記入例の記述があるだけだと思うので、以下の1行をファイルの一番最後に追記。
/pxe/images *(ro,sync,subtree_check)
最後に /etc ディレクトリに nameservers という名前のファイルを新規作成して自分が使用しているDNSを追加。(以下はOpenDNSを使用する例。プロバイダのDNSで必要十分かなと思ったので自分はこのファイルを作成せず、上記の dnsmasq.conf ファイルの方でも resolve-file=/etc/nameservers 行は記載してません。)
nameserver 208.67.222.222
nameserver 208.67.220.220
これで仮想マシン側のブートサーバとしての設定は完了。dnsmasq と nfs-kernel-server を再起動します。
# /etc/init.d/dnsmasq restart
# /etc/init.d/nfs-kernel-server reload
次にクライアントとなるノートPCの方の設定。
ノートPCをLANケーブルでルータと有線接続して、BIOS設定でネットワークブートを有効にして再起動。
すると、Ubuntu をLive起動させるか、インストールするかを選べるネットワークブートのメニューがあっさり表示されました。
ばんざい。

試しに Live Desktop を選択すると、無事に起動。その後インストールも問題なくできました。
