ネットワークブート【PXE】やり方

こんにちは、minoruです。

ずいぶん以前にDVDドライブが無く、USBブート非対応のノートPCに対して、ネットワークブートと言う方法でPuppyLinuxを入れた時の事を書き残しておきます。

準備

1.OSを入れるPCのBIOSでPXEのネットワークブートに対応しているか確認
2.同じLAN内でWindowsのPCをOS入れるPCとは別に1台用意
3.USBフラッシュメモリ(puppyのisoを展開して格納したもの)

大まかな流れ

1.Windowsにtftpと言うソフトをインストールする
2.tftpに必要事項を入力して使える状態にする
3.tftpの設定で指定したフォルダ内にネットワークブートに必要なファイルを入れる
4.両者を同じLAN内でつなぎ、os入れたいpcの電源をosの入ったUSBを挿した状態で投入
5.するとネットワーク内(つまりtftpで指定したフォルダ)のブートファイルを使ってブートされる
6.ブート後はUSBメモリ内のosファイルを読み込んでインストールが続行される

tftpインストール

1.Windowsにtftpと言うソフトをインストールする
まずはosを入れるpcとは別のWindowsマシンにて
いくつか作業をする必要があります。

tftpは別にWindowsじゃなくてもLinuxでもありますが、
知る限りではGUIで紹介されていたのがWindows版
だけだったのでWindowsでやりました。

[TFTPのDL先]
http://tftpd32.jounin.net/tftpd32_download.html

他のサイトで動作が実証されていた
tftpd32 standard edition (installer) (555 kB)
を選んでダウンロード、インストールしました。

インストール後にはデスクトップにtftpのショートカットができて、
プログラムファイルのフォルダ内にtftpのプログラムが入った
フォルダができていますが、このフォルダをプログラムファイル
のフォルダからCドライブの直下に移動させました。

tftp設定

2.tftpに必要事項を入力して使える状態にする

これは画像を見ていただいて「DHCPserver」タブの中の数字と、
(入力後横のsaveボタンを忘れず押しましょう)あとは、
(画像では右側の小さいウィンドウ)
settingsをクリックして出てくる縦長のウィンドウに
これまた画像の通りチェックを入れていくだけです。

用が済んだら、こちらの縦長のウィンドウはOKで閉じておきましょう。
ここは画像の通りやればOKですが、
IPアドレスだけは人によっては3つめの数字が
0ではなく1だったり11だったりするかもです。

Boot File の欄は [pxelinux.0](最後はオーではなくゼロ)

必要なファイルを入れる

3.tftpの設定で指定したフォルダ内にネットワークブートに必要なファイルを入れる
次にtftpのフォルダ内に必要なファイル類を入れます。

まず、ブート用のファイル。
https://www.kernel.org/pub/linux/utils/boot/syslinux/3.xx/
(syslinux-3.86.zip  を使用)
ダウンロードしたら解凍(展開)して、
その中にある、
・pxelinux.0
・menu.c32
の2つをtftpのフォルダにコピーします。

そして、tftpのフォルダ内に
「pxelinux.cfg」と言う名前のフォルダを作り、
その中に、メモ帳で

DEFAULT menu.c32
PROMPT 0
MENU TITLE === Boot Menu ===
LABEL Puppy-Linux
KERNEL /puppy/vmlinuz
APPEND initrd=/puppy/initrd.gz

と書いたファイルを「default」と言う名前で保存する。
すると「default.txt」となるので、ファイル名の変更で
「.txt」の部分を消して「default」だけにしておきます。

「pxelinux.cfg」のフォルダはこれでおしまい。

次にtftpのフォルダの中に今度は「Puppy」と言う
フォルダを作り、その中にPuppyのosデータが入った
USBメモリから、下記2点
initrd.gz
vmlinuz
をコピーして入れておきます。

USBに入ってた全ファイルを入れておきました。

特に便利になる事も問題が起きる事もありませんでした。
最低限必要なのは上記2点と言う事です。

これでWindowsがFTPサーバーとして働くようになれました。
一部のページではルーターのDHCP機能を切っておくように
書かれていましたが、ルーターには一切手を
触れていませんが問題は起きませんでした。

ちなみにWindowsPCは無線LANでルーターにつながって
いたのですが、別にそれもなんら問題にならず。
osを入れる側のpcは有線でLANにつなぎました。

同じLAN内につなぐ

4.両者を同じLAN内でつなぎ、os入れたいpcの電源をosの入ったUSBを挿した状態で投入
これで準備は整いました。

Puppyのosデータが入ったUSBメモリは、
今度はosを入れる側のPCのUSBポートに挿しておいて下さい。
(os入れるpcは、tftpでブートファイルを読みんだら、
次は自分自身のドライブないでosデータを探すからです。)
配線がつながっているかどうかは要チェックです。

osを入れる側のpcのBIOSが起動優先順位でPXE(network)が
優先になっているかどうかも要チェックです。

ブート開始

電源をいれると、

DHCP___/

みたいな表示が出た後、
なにやらPCがtftpからファイルを読み込んでる感があります。

Windowsの方のモニタを見ると、なにやら
ダウンロードされてる感のあるウィンドウが出ています。

しばし待つと、ブート画面がでてくるので、
あとは通常のPuppyをインストールする要領と同じです。

USBメモリを挿していなかったりして、PCが自分自身のドライブ内で
osのデータを見つける事ができないと、
インストール途中で「not not found pup_431.sfs」的な
メッセージが出てインストールが途中で強制終了してしまいます。
(これで途方にくれる人は非常に多い)

pcによっては、ここのUSBポートはOKだけど
こっちのUSBポートじゃダメみたいな事もあるので、
USB挿してるのにこのメッセージ出る時はポートを
差し替えてみるのも手です。

インストール開始

あとは通常ならばPuppyのデスクトップ画面がでるので、
HDDをフォーマットして、パーテーションを作り、
PuppyをHDDにインストールすればOKです。

tftpの準備が普段あまりお目にかからない作業なので、
最初は怖いですが、1つ1つ手順を追ってやれば出来ました。

追伸

ニンテンドースイッチのプロコンは品薄続きでどこにも売ってない…、互換コントローラーマニアの私が色々試した結果、これが一番コスパよく満足度が高かったので一応リンク貼っときます。
https://amzn.to/3FPHsfZ

シェアする

  • このエントリーをはてなブックマークに追加

フォローする