aptosid をネットワークから起動する (NBD - Network Block Device)
注意: dnsmasq は新しい DHCPサーバーの設定をするため、今使用中のネットワーク上にあるDHCPサーバーと衝突することがあります。(使用中のルーターがDHCPとしても機能するように設定してあるかもしれません)。 ローカルネットワークにはDHCPサーバーが一つだけ機能しているのが最も安全です。つまり、同じネットワーク上のDHCPサーバーを無効にしておくべきです。このページのdnsmasq プロキシーオプションは同じネットワーク上の他のDHCPサーバーとも共存できるはずではありますが、そのためなにか予想外の問題が起こってもにネットワークの管理者として対処していける自信がないかぎり、軽い気持ちで試さないほうが良いでしょう。
基本
ネットワークからの起動はまずネットワーク起動ができるPCを持っていること、そのPCからネットワーク起動サービスを提供できるあなたが管理するコンピュータに接続できることが条件です。
つまりこれは職場のネットワークなど、あなたが管理者ではないネットワークで試すことではありません。自分のネットワークだったり、管理者から許可またはガイダンスを受けられる場合は例外といえます。 大きなネットワークを共同で管理している場合は、ネットワーク設定が他に及ぼす影響を限定するために、dnsmsq の提供するオプションすべてを調査するべきでしょう。
必要条件
ネットワーク起動サーバーとして使う aptosid のISO イメージ。設定の方法は最新の aptosid または Debian sid システムと基本的に同じで、他のシステムを管理するときの知識がここでも役に立つでしょう。NBD デバイスを提供するには Linux が必要です。
起動の初期段階からすべてにわたって dnsmasq が提供するサービスが使われます。ここでも他のソフトウェアを使うときの知識が役に立つでしょう。
インストール
apt-get install nbd-server dnsmasq
NBD サーバーの設定
Presuming the iso can be found at /dev/scd0, (which it probably can be if you booted from cd, otherwise substitute in any suitable file or device), then you can setup a nbd-server conf file called nbd-aptosid.conf with a section called aptosid-iso to export the cd by running the following:
echo '[generic]' > nbd-aptosid.conf nbd-server 0.0.0.0:10809 /dev/scd0 -o aptosid-iso >> nbd-aptosid.conf
[generic] というヘッダーは常に必要です。一時的な設定でなく、起動時に自動的にNDBサーバーが設定されるようにするには代わりに /etc/nbd-server.conf を作ります。NBDサーバーの設定にはまだまだいろいろなオプションがあります。man nbd-server を参照
設定ファイルを/etc/nbd-server.conf にコピーすることなくこのサーバーを実際にスタートするのは単に次のコマンドを実行するだけです:
nbd-server -C nbd-aptosid.conf
NBDサーバーのターゲットは必ずしも ISO イメージや CD/DVD/フラッシュメモリでなくても構いません。起動に必要なファイルシステムを含むことが必要なだけです。
dnsmasq
以下の例ではシンプルなネットワーク上のPCに一つだけ ethernet のLAN接続があり、他のコンピュータからの DHCP によって設定され、ネットワーク起動クライアントとして DHCP によってインターフェイス設定できる状況を想定しています。
dnsmasq を使って aptosid をネット起動するのに一番肝心なオプションは tftp サーバーファイルへのパス設定とそこから起動するためのファイルの設定です。
起動のための tftp ディレクトリを /home に作成します。(ほかの場所にしたかったらどこでも構いません)。この場合パスは /home/tftp になります。
pxe-aptosid.conf というファイルを作り次の内容を張り付けます:
dhcp-range=0.0.0.0,proxy pxe-service=x86PC, "boot linux", pxelinux enable-tftp tftp-root=/home/tftp tftp-secure
DHCP プロキシーを使うときは pxeメニューを 唯一 pxelinux のエントリーだけで、そのためそこから自動的にスターとするように設定します。これが上のファイルの pxe-service の項目です。
root として今作成したばかりの pxe-aptosid.conf ファイルを /etc/dnsmasq.d/ に移動します:
su mv pxe-aptosid.conf /etc/dnsmasq.d/
ノート: 他に DHCP サーバーのないネットワークでは、最初の2行を (ここでは例として 192.168.0.* のアドレスとして) 次のように換えることもできます:
dhcp-range=192.168.0.100,192.168.0.199,1h dhcp-boot=pxelinux.0
これで 192.168.0.100 から 192.168.0.199 までのIPアドレスを一時間の制限で割り当て、pxelunux.0 として実行するファイル名を DHCP リクエストの一部として提供し、(プロキシーの設定では pxelinux を pxe メニューの唯一のエントリーと指定することで自動スタートする設定を使っています)。多分これでは dnsmasq サーバーが同時に起動クライアントの DNS サーバーであり、またゲートウェイでもある場合をのぞき、望み通りのネットワーク設定にはならないでしょう。
新しく作成されたこの設定ファイルを有効にするには /etc/dnsmasq.conf の一番下の方の conf-dir=/etc/dnsmasq.d のコメント行の行頭の # を消してファイルを保存し、dnsmasq を再スタートします。
dnsmasq にはたくさんのオプションがあり DHCP、PXE、TFTP サーバーの他に DNS サーバーとしても設定することができます。上にあげた例は pxelinux を使うのに必要な最低限のあらましを述べたにすぎません。
tftp
tftp はネット起動にとって boot ディレクトリに相当するものです。先ほどからの /home/tftp の例の続きとして、必要なファイルをこのディレクトリに揃えます。CDROMが /fll/scd0/fll/scd0 にマウントされているとして:
cp /fll/scd0/boot/isolinux/* /home/tftp mkdir /home/tftp/pxelinux.cfg mv /home/tftp/isolinux.cfg /home/tftp/pxelinux.cfg/default mkdir /home/tftp/boot cp /fll/scd0/boot/vmlin* /fll/scd0/boot/initr* /fll/scd0/boot/memtest* /home/tftp/boot/ cp /usr/lib/syslinux/pxelinux.0 /home/tftp/ # required for the tftp-secure option to dnsmasq chown -R dnsmasq.dnsmasq /home/tftp/*
さあ、これで /home/tftp ディレクトリの pxelinux.cfg/default と gfxboot.cfg
In particular it is suggested that under the [install] section you set the install= to install=nbd, install.nbd.server to the server's IP on the network and install.nbd.port to the name of the nbd export section, for example. aptosid-iso (as nbd exports are named now rather then simply using port numbers).
別の方法として、F3 メニューを無効にしてカーネルのコマンドラインを次のようなものに変えることもできます:
fromhd=/dev/nbd0 root=/dev/nbd0 nbdroot=192.168.1.23,aptosid-iso nonetwork
起動オプション toram
起動オプションに toram を加えた場合、十分なメモリーがある機械ではファイルをコピーたらすぐにサーバーとの接続を解放しますが、メモリの少ない機械では接続したままでそのまま進行します。実際に toram オプションを有効に使うには最低 1Gb, 理想としては 2Gb 以上の RAM が必要です。
ネットワークからの起動
クライアントPC の BIOS設定で Boot from Network (ネットワークからの起動)が有効になっていることを確認します。
BIOS がネットワークからの起動を可能に設定してあり、コンピュータがサーバーのあるネットワークに接続してあり、aptosid カーネルとinitrd.img がクライアントPCのネットワークカードをサポートしている限り、aptosid をネットワークから起動することができるはずです。
non-free のファームウェアが必要なネットワークカードを使うには、このファームウェアを含むように initrd.img を改めて作成する必要があります。