■
最近、ディスクがクラッシュしたのでpxegrubの設定をやり直した。手順は以下のようにやる。
pxegrubはgrubを使用しネットワーク越しにカーネルを立ち上げる事ができる。カーネル設計者にとってメリットはGRUBのマルチブートを利用できる事や、カーネルの再起動がすぐにできることである。pxegrubを利用するときネットワークカードの制限があるのでGRUBに対応しているネットワークカードを買うか、仮想マシンを利用するかどちらかにしなければならない。
pxegrub概要
pxegrubを使用しカーネルを立ち上げるにはいくつかの手順が必要になる。
- tftpserverを立ち上げる(開発マシンで立ち上げるとよい)。
- tftpserverにカーネルをアップロード
- 実機または仮想マシンにPXE用にコンパイルしたGRUBをインストール
- 実機または仮想マシンの/boot/grub/menu.lstを編集
具体的には次のように行う。
tftpserverをインストール
$ sudo aptitude install tftpd $ sudo mkdir /tftpboot # ここにカーネルをアップロードする。 $ vi /etc/xinetd.d/tftp $ sudo /etc/init.d/xinetd restart
tftpserverの設定ファイルのサンプルは以下の用になる。
service tftp { socket_type = dgram protocol = udp wait = yes user = your_user_name server = /usr/sbin/in.tftpd server_args = -s /tftpboot disable = no per_source = 11 cps = 100 2 }
実機または仮想マシンで以下のように行う。以下はVMwareで行ったので./configureのオプションでlanceのネットワークカードを有効にしている。
$ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/grub co grub $ sudo aptitude install cvs gcc autconf automake $ cd grub $ ./configure --prefix=/usr/local/ --enable-diskless --enable-lance $ make $ make check $ make install $ sudo grub-install /dev/hda $ sudo update-grub $ sudo vi /boot/grub/menu.lst
/boot/grub/menu.lstのサンプルは以下のようなコードを追加すればよい。
title pxegrub + kernel dhcp tfptserver server_address root (nd) kernel /kernel #module /init #module /fs #module /pm