PXEを使ってPCもディスクレスにしよう |
YAMAMORI Takenori ●yamamori |
ここで,手っ取り早くディスクレス状態を実感するため, フロッピーディスク1枚で起動するDOSをディスクレスブートしてみましょう. DOS としては,Windows 95 などの起動フロッピーディスクが使えます. これをブートサーバ上で,以下のようにして吸い出します.
# dd if=/dev/fd0 of=/tftpboot/dosfd.img bs=1440k count=1
そしてクライアントマシンを起動し,BpBatchのプロンプトが出たら 以下のようにコマンド入力します.
Entering interactive mode (type EXIT or QUIT to resume) > set CacheNever = "ON" ← ローカルディスクを使わない > LoadRamDisk "dosfd.img" ← TFTPでフロッピーイメージを取得 Loading ramdisk image... 1440 Kb loaded to the ramdisk > FloppyBoot ← フロッピーエミュレーション状態でブート Booting from floppy disk … ディスクレスのDOSが起動する … |
これでディスクレスのDOSが起動するはずです. この状態では,A:のフロッピーディスクは, BpBatchのRAMディスクによるエミュレーションになっています. ちょうど,El ToritoのCD-ROMからブートしたような感じに似ていますが, それとは違ってCD-ROMもその他一切のローカルディスクも使用していません.
ここでのポイントは,環境変数CacheNever の値を "ON" に設定していることです. これを設定しないと, BpBatch は TFTP で取得したフロッピーイメージを いったんローカルハードディスクにキャッシュとして書き込もうとしてしまいます.ローカルディスクを持たないディスクレスマシンでは,CacheNever の値を "ON" に設定するのを忘れないでください.
なおDOS以外にも, Linuxのインストール用フロッピーのイメージを使ってもディスクレスブートでき, ちゃんとインストーラも起動し,実際にネットワークインストールも可能です. 同様にLinuxの緊急用ブートディスク(ext2フォーマットまたはsyslinux方式のFATフォーマット)でもブートします. 要するに,起動可能なフロッピーディスクイメージを用意すれば,そのイメージファイルを TFTP で取得してディスクレスでブートできるわけです.
ただし,BpBatch でのフロッピーイメージ方式では起動できない OS も存在します. たとえば,Solaris, FreeBSD, NetBSD などのフロッピーイメージでは,エラーが出たり,リセットがかかってしまったりして起動しません. おそらく,これらのブートプログラムにとっては, フロッピーディスクが実はエミュレーションであることがバレてしまい, うまく行かないものと思われます.