わ、わしにだってそういう時代あったさー(ちゅらさん風w)
ありましたけど何か?
まぁどうでもいいことですが...
わ、わしにだってそういう時代あったさー(ちゅらさん風w)
ありましたけど何か?
まぁどうでもいいことですが...
2011.3.6 整理しました。
あくまで目的は緊急時、メンテナンス用に“ミニ”OSの“一時的”起動。Linux ユーザにはいわずもがななことばかり。
というわけで、palm84レベル的(何)私的めもですたい...
こ、これはまた死ぬほど便利(だったら・・とか言わない!そこw)
ネットワークブート非対応のマシンでも、NIC(LANアダプタ)が内蔵 or PCIボードなら起動フロッピー(またはCDやUSBメモリ、HDからでもおk)からネットワークブートできるかもしれません(PCMCIAやUSB-LANは難しいのかな??)。でも、対応モジュールとかの組み込みは難しいかなぁと思っておりました...
ところが、あにはからんや弟はかって、か・か簡単に対応フロッピーイメージを作成してダウンロードさせて頂けるサイトがあったんですよー(っていうか私が無知だっただけですが...汗)。
起動FDイメージ、isoイメージ及びGRUB・SYSLINUX用ブートイメージなどがダウンロードできます。
all-drivers
は汎用で使えます。gPXE 対応、通常のPXEブートでも使えます。
SYSLINUX-based bootable floppy image (.sdsk)
を選択ISO bootable image (.iso)
を選択all-drivers
を選択CDはDVD/CDライティングソフトで“イメージファイルとして”書き込み、FDはRawWrite for Windows などを使いませう。
HDに GRUB などのブートローダがインストールされてる場合や、マルチブートなCD・USBメモリなどではこちらがいいかも。Linux カーネルとして指定します。
Linux kernel (SYSLINUX/GRUB/LILO) loadable image (.lkrn)
を選択all-drivers
を選択ファイル名 gpxe-x.x.x+-gpxe.lkrn
は gpxe.krn
とかリネームした方がいいかな。
syslinux.cfg
など)LABEL gpxe KERNEL /gpxe.krn
menu.lst
など)title gPXE root (hdx,x) kernel /gpxe.krn
menu.lst
)title gPXE find --set-root /gpxe.krn kernel /gpxe.krn
Windows マシンで使うなら、Windows ブートマネージャ(NTLDR, BOOTMGR)から GRUB for DOS をチェインロード設定するのがおすすめ。
汎用版が使えない場合は、NIC type を指定してみるべし。対応モジュール(?)/ROM名を調べるのはちと大変かもしれませんが、商品名でググったり、試行錯誤するべし。
※ 少し古めですが、100BASEなNICとかならほぼイケるかも。gPXEは非対応。
こんなのありました。SYSLINUXのethersel.c32でPCIカード(or 内蔵)を自動検出。
あくまで個人的にですけど「割と簡単に設定できるもの」です。
Linux LiveCDの中には、スクリプトなどでネットワークブート用サーバを構築できるものもあります。
slax-ja-6.1.2-2.iso
)Windowsマシンでも、TFTPD32のみでサーバ構築可能。
テスト版ですが、下記ではDHCP/TFTPでブートしてhttpサーバ上のisoイメージからKnoppixを起動させます。
サーバ側の細かい設定は不要なので、お試しならこれがいいかも。KNOPPIX をCDブート(あるいは仮想マシン上でisoイメージでブート)してスクリプト一発でネットワークブートに必要な DHCP/TFTP(NFSもですね) サーバを稼動させることができました。
ちょこっと修正したらブート可能になりましたー。
5.3.1 以降では修正不要でした。
う?むむ、CDブートなサーバなんて重いやろと思ってました。ところが姉はからんや妹はかって、クライアント側はメモリ256MBでもGUI(デスクトップ環境)がそこそこ動きます(※128MBでは激重だったのでテキストモードにすべきかな)。
尚、他の Linux 上でも DHCP/TFTP + NFS or HTTP サーバを設定したら PXE からの KNOPPIX のブートは可能でした。
slax-ja-6.0.9-1.iso
)CDブートして、【Slax as PXE server】を選択するとサーバとしてSLAXが稼動(DNS,DHCP,TFTP,HTTPサーバ)します。
または、起動後にスクリプト実行でもいいみたい。
# /boot/pxelinux.cfg/start # /boot/pxelinux.cfg/web/start
# cat /proc/cmdline vga=769 initrd=/initrd.gz ramdisk_size=6666 root=/dev/ram0 rw autoexec=xconf;startx BOOT_IMAGE=/vmlinuz ip=192.168.0.95:192.168.0.200:192.168.0.200:255.255.255.0 auto
pxelinux.cfg/default
PROMPT 0 LABEL linux MENU LABEL Run linux over PXE KERNEL /vmlinuz IPAPPEND 1 APPEND vga=769 initrd=/initrd.gz ramdisk_size=6666 root=/dev/ram0 rw autoexec=xconf;startx
PROMPT 1 に修正したほうがいいかも
※ 上記の「KNOPPIX Terminal Server」「slax-ja」を使う場合は不要です。
ネットワークブートに必要なサーバ側の設定について。Windows + TFTPD32 なら低スペックマシンでも可能です。(クライアントがブートした後はサーバは不要です。)
まだまだ勉強不足でよく理解しておりませぬ。すみません。とりあえず雑記レベルですが
iSCSIや AoE はなんかすごいと思っていますが、今のところ必要ないので試したことありませぬ。(スキルなしの言い訳。orz)
DHCPサーバの boot file 指定に pxelinux.0
の代替で gpxelinux.0
を使うとHTTPサーバからのファイルのロードが可能になりますな。
pxrlinux.cfg/default
LABEL hogehoge from http server LINUX []http://192.168.0.2/hogehoge/vmlinuz[] INITRD []http://192.168.0.2/hogehoge/initrd.img[]
gPXE イメージからブートすると、HTTPサーバでPXELINUXを使えました。