isoイメージをマルチブートするの巻【その5】PXEネットワークブートでござる

 TweetBuzz  はてなブックマーク

更新履歴 - 最終更新日 2013.3.6

2013.03.06 ブートローダを PXELINUX に変更、gPXE 設定追加、SystemRescueCd, Parted Magic, Clonezilla Live 更新
2011.10.27 Knoppix 6.7.1 追加、Partition Wizard Bootable CD ファイル名変更
2011.07.14 EASEUS Todo Backup 追加, 3点バージョンアップ
2011.05.29 Partition Wizard Bootable CD のファイル名 pwhe6.iso に変更
2011.03.01 4点新バージョンに入替
2010.09.15 SLAX もisoブート可能でした。なので改訂。
2010.08.25 作成

変更内容
2013.03.06 更新 - 変更内容
  • SystemRescueCd - 2.2.0 3.4.1 (systemrescuecd-x86-3.4.1-mini-pxe.iso )
  • Parted Magic - 6.3 2013_01_29
    • pmagic_2013_01_29.iso
    • pmagic_2013_01_29_i586.iso
  • Clonezilla Live - 1.2.8-46 2.1.0-26
    • clonezilla-live-2.1.0-26-amd64-mini-pxe.iso
    • clonezilla-live-2.1.0-26-i486-mini-pxe
2011.10.27 更新 - 変更内容
  • Partition Wizard Bootable CD - pwhe6.iso pwhe7.iso
2011.7.14 更新 - 変更内容
  • SystemRescueCd - 2.0.1 2.2.0 (systemrescuecd-x86-2.2.0-mini-pxe.iso)
  • Parted Magic 5.10 6.3 (pmagic-6.3.iso)
  • Clonezilla Live - 1.2.6-59-i686 1.2.8-46-i686 (clonezilla-live-1.2.8-46-i686-mini-pxe.iso)
  • EASEUS Todo Backup 追加 - Emergencydisk.iso, Todo_Backup_WINPE.iso
  • Super Grub Disk ファイル名変更 - super_grub_disk_hybrid.iso, super_grub_disk.img
  • EASEUS Disk Copy ファイル名変更 - Disk_Copy_Image.iso
2011.5.29 更新 - 変更内容
  • Partition Wizard Bootable CD - pwhe52.iso pwhe6.iso
2011.3.1 更新 - 変更内容
  • Clonezilla Live - 1.2.5-35-i686 1.2.6-59-i686
  • SystemRescueCd - 1.5.8 2.0.1
  • Ubuntu Desktop CD - 10.04 10.10
  • Parted Magic - 5.3 5.10

これってなに? 3

PXELINUX ブートメニューのスクリーンショット

【その1】準備編の続きであります。ネットワークブートしてサーバ上のisoイメージから起動させる試みでgozaru 。

ネットワークブートならCDもUSBメモリも不要ゆえ経済的に(?)オトクであると愚考致す。なれど、基本的にはサーバからダウンロードしての起動となるゆえ、オンメモリ起動のものなどそのままで起動可能なものもあれど、CD/USBメモリと同様とは行かぬことは残念至極なり。

メモリ (RAM) が少ないと起動失敗することあったり、ほげほげと試行錯誤中.....

PXEネットワークブートとはなんぞや?

さぁ何でしょう?(説明できるほどわかってません...滝汗)。とりあえず、DHCP/TFTPサーバでPXEネットワークブート用サーバを稼動できます。Windows では TFTPD32 を使うと簡単です。

さらにわかってませんが gPXE (iPXE) ではHTTPサーバからのブートが可能になります。

尚、ココで設定しているモノは下記の通り。必要なものを選択してクダサレ。すべてで 3 GB 程でした。

isoのダウンロード先や、ファイル名、一部のisoの編集方法など 【その1】準備編 をお読み願いたいデス。

基本的にisoを丸ごとメモリ (RAM) にロード(ダウンロード)してから起動するので、メニューで選択してブート画面が出るまで多少時間がかかります。

isoのリメイク

下記3点は(ルートイメージの)TFTPダウンロードに対応してるのでisoのリメイクでなんとか対応できました。

設定ファイル置換& “ミニ” iso 作成。SystemRescueCd は約 96 MB、Clonezilla は約 25 MB のisoをロードしてからブート画面が出ます。

Clonezilla は不安定?

ウチの環境ではTFTPD32使用では、ルーターのDHCPサーバ機能を有効にしないと起動できません(※ IP-Config で止まってしまう)。Linuxサーバでは問題ないのですけど。Parted Magic にも日本語版が入ってるのでこっちがだめならそっちで。

KNOPPIX InetBoot

2008年リリースなので、古いPC向けですが・・・

KNOPPIX 5.3.1 Remaster 版はHTTPサーバのisoイメージからの起動が可能です。HTTPサーバが必要ですが Windows でも簡単に設定できました。RAM 256 MB で起動可能です。

ページ先頭 U

PXELINUX MEMDISK 4

GRUB for DOS ではなく、PXELINUX (SYSLINUX) + MEMDISK に変更しましたです。

※ SYSLINUX のバージョンは 5.01 での確認です。

GRUB for DOS でもisoブートは可能なのですが、ネットワークブートに関してはこちらの方が利便性が高いかなぁと。

逆に欠点として、GRUB for DOS の様にisoのマウント後に kernel パラメータなどの個別オプション指定はできません。なので GRUB for DOS のチェインロードも可能に設定しとくであります。

ページ先頭 U

ダウンロード 5

TFTPルート
|   gpxelinux.0
|   ldlinux.c32
|   libutil.c32 
|   menu.lst
|   pxelinux.0
|   tftpd32.chm
|   tftpd32.exe (or tftpd64.exe)
|   tftpd32.ini
|
+---pxelinux.cfg ディレクトリ
|       default
|       pxe_menu.cfg
|       pxe_menu2.cfg

|
+---syslinux ディレクトリ
|       grub.exe
|       memdisk 
|       menu.c32 
|
Windows用 DHCP/TFTPサーバ (TFTPD32/TFTPD64)

64ビット版 Windows では tftpd64.exe でないとだめになった模様

  • tftpd32 standard edition (zip) or tftpd64 standard edition (zip) をダウンロード
    • TFTP server
    • 必要ファイル : tftpd32.chm, tftpd32.exe (or tftpd64.exe), tftpd32.ini

下記isoはそのままルートへ

TFTPルート
|
|   AcronisMedia.iso
|   avg.iso
|   bootcd.iso
|   Emergencydisk.iso
|   gpxelinux.0
|   menu.lst
|   ldlinux.c32
|   libutil.c32
|   pmagic_2013_01_29.iso
|   pmagic_2013_01_29_i586.iso
|   pwhe7.iso
|   pxelinux.0
|   SeagateMedia.iso
|   tftpd32.chm
|   tftpd32.exe (or tftpd64.exe)
|   tftpd32.ini
|   Todo_Backup_WINPE.iso
|   WinPEx86.iso
|   WinREamd64.iso
|   WinREx86.iso
|   WinREx86_vista.iso
|
+---pxelinux.cfg ディレクトリ
|       default
|       pxe_menu.cfg
|       pxe_menu2.cfg
|
+---syslinux ディレクトリ
|       grub.exe
|       memdisk
|       menu.c32
|

ページ先頭 U

ネットブート用にisoをリメイク 6

下記3点はルートイメージをTFTPダウンロードして起動することが可能です。なのでこんな風にしてみました。

  1. オプションを追記した設定ファイル作成
  2. iso内のファイルと置換
  3. ルートイメージ抜き出し
  4. “ミニ” iso 作成

※ 但し、サーバのIPアドレスは環境により違いますから編集する必要ありです。(※ iso起動時にブートメニューから訂正も可能ですけど)

SystemRescueCd 3.4.1

※ IPアドレス部分を自PCに合わせて編集してクダサイ。

(ルート)
|
\---sysres34 ディレクトリ
        sysrcd.dat
        sysrcd.md5
        systemrescuecd-x86-3.4.1-mini-pxe.iso
UltraISO で “ミニ” iso 作成

※ 何度か試行錯誤しないとだめかも?私は何度か上書き保存したらできました。

  1. sysres34 ディレクトリ作成
  2. isoをUltraISOで開く
  3. iso内の sysrcd.dat, sysrcd.md5sysres34 ディレクトリへ取り込み
  4. iso内から sysrcd.dat, sysrcd.md5 削除
  5. 【名前を付けて保存】 sysres34 ディレクトリへ、ファイル名は systemrescuecd-x86-3.4.1-mini-pxe.iso とする
  6. 再度開き、isolinux.cfgisolinux2.cfg などにリネーム
  7. 上記2ファイルを /isolinux に追加
  8. それぞれ isolinux.cfg, http.cfg にリネーム
  9. 【ブート情報のクリア】
  10. isolinux.bin 削除
  11. 4.06 の isolinux.bin 追加
  12. isolinux.bin を右クリックして【ブートファイルの設定】
  13. 上書き保存
Clonezilla Live 2.1.0-26 (amd64, i486)

※ IPアドレス部分を自PCに合わせて編集してクダサイ。

  • 追加オプション amd64
    • fetch=tftp://192.168.11.8/live_amd64/filesystem.squashfs
    • fetch=http://192.168.11.8/live_amd64/filesystem.squashfs
(ルート)
|
+---live_amd64 ディレクトリ
|       clonezilla-live-2.1.0-26-amd64-mini-pxe.iso
|       filesystem.squashfs
+---live_i486 ディレクトリ
|       clonezilla-live-2.1.0-26-i486-mini-pxe.iso
|       filesystem.squashfs
UltraISO で “ミニ” iso 作成
  1. live_amd64 (live_i486) ディレクトリ作成
  2. isoをUltraISOで開く
  3. iso内の /live/filesystem.squashfslive_amd64 ディレクトリへ取り込み
  4. iso内から filesystem.squashfs 削除
  5. isolinux.cfgisolinux2.cfg などにリネーム
  6. 上記2ファイルを /isolinux に追加
  7. それぞれ、isolinux.cfg, http.cfg にリネーム
  8. 【名前を付けて保存】ファイル名は clonezilla-live-2.1.0-26-amd64-mini-pxe.iso とする
  9. isoを live_amd64 (live_i486) ディレクトリへ保存

i486 版も同様で。

ページ先頭 U

KNOPPIX InetBoot 7

2008年リリースなので、古いPC向けですが・・・

※ http サーバが必要です。

HTTPサーバを設定すれば KNOPPIX 5.3.1 の起動が可能です。

HTTPサーバ上のisoをメモリにロードはせず、マウントして起動します。メモリ (RAM) は256MB以上で起動可能でした。

InetBoot (netfs) カーネル、及び KNOPPIX 5.3.1 Remaster 版をダウンロード

TFTPルート
|
|  <中略>
|  knoppix_v5.3.1CD_20080326-20080520.iso
|  <中略>
|
+---inetboot ディレクトリ
|       linux
|       minirt.gz
|  <中略>
LABEL netfsboot
LINUX /inetboot/linux
INITRD /inetboot/minirt.gz
APPEND netdir=http://192.168.11.8/knoppix_v5.3.1CD_20080326-20080520.iso type=knoppix ramdisk_size=100000 lang=ja no3d

※ 但し、サーバのIPアドレスは環境により違いますから編集してください。(※ 起動時に訂正も可能ですけど)

ページ先頭 U

ファイルの配置 8

TFTPルート
|
|   AcronisMedia.iso
|   avg.iso
|   bootcd.iso
|   Emergencydisk.iso
|   gpxelinux.0
|   knoppix_v5.3.1CD_20080326-20080520.iso
|   menu.lst
|   ldlinux.c32
|   libutil.c32 
|   pmagic_2013_01_29.iso
|   pmagic_2013_01_29_i586.iso
|   pwhe7.iso
|   pxelinux.0
|   SeagateMedia.iso
|   tftpd32.chm
|   tftpd32.exe or tftpd64.exe
|   tftpd32.ini
|   Todo_Backup_WINPE.iso
|   WinPEx86.iso
|   WinREamd64.iso
|   WinREx86.iso
|   WinREx86_vista.iso
|
+---inetboot ディレクトリ
|       linux
|       minirt.gz
|
+---live_amd64 ディレクトリ
|       clonezilla-live-2.1.0-26-amd64-mini-pxe.iso
|       filesystem.squashfs
|
+---live_i486 ディレクトリ
|       clonezilla-live-2.1.0-26-i486-mini-pxe.iso
|       filesystem.squashfs
|
+---pxelinux.cfg ディレクトリ
|       default
|       pxe_menu.cfg
|       pxe_menu2.cfg
|
+---syslinux ディレクトリ
|       grub.exe
|       memdisk
|       menu.c32
|
\---sysres34 ディレクトリ
        sysrcd.dat
        sysrcd.md5
        systemrescuecd-x86-3.4.1-mini-pxe.iso

ページ先頭 U

DHCP/TFTPサーバの設定 9

PXELINUX でブートします。下記は初歩的基本的安全的(何)設定です。

PXELINUX の設定ファイル

pxelinux.cfg/default の内容はこれだけ。別のメニュー用ファイル (pxe_menu.cfg) をロードさせます。

INCLUDE /pxelinux.cfg/pxe_menu.cfg
TFTPD32 の設定

TFTPD32を起動 「Settings」ボタンを押してサーバー設定。

  • GLOBAL タブで下記にチェック
    • TFTP Server
    • DHCP Server

GLOBAL タブのスクリーンショット

  • TFTP タブで下記をチェック
    • Base Directory】確認 - ドット (.) または フルパス
    • PXE Compatibility
    • Translate Unix file names
    • Allow '\' As virtual root

【追記】ウチの環境では、Clonezilla Live のみ【Option negotiation】オン + ルータのDHCPサービス有効にしないと起動不可でした。

TFTP タブのスクリーンショット

IPアドレスなど確認

コマンド プロンプトから ipconfig /all で自PCのIPアドレスなどを確認。

C:\Users\yassy>ipconfig /all

< 途中略 >

イーサネット アダプター ローカル エリア接続:

   接続固有の DNS サフィックス . . . :
   説明. . . . . . . . . . . . . . . : Realtek PCIe GBE Family Controller
   物理アドレス. . . . . . . . . . . : A0-<略>
   DHCP 有効 . . . . . . . . . . . . : いいえ
   自動構成有効. . . . . . . . . . . : はい
   リンクローカル IPv6 アドレス. . . . : <略>(優先)
   IPv4 アドレス . . . . . . . . . . : 192.168.11.8(優先)
   サブネット マスク . . . . . . . . : 255.255.255.0
   デフォルト ゲートウェイ . . . . . : 192.168.11.1
   DHCPv6 IAID . . . . . . . . . . . : 245412812
   DHCPv6 クライアント DUID. . . . . . . . : 00-01-<略>
   DNS サーバー. . . . . . . . . . . : 192.168.11.1
                                       8.8.8.8
   NetBIOS over TCP/IP . . . . . . . : 有効
  • XPのばやいは英語だったり...
C:\Documents and Settings\yassy>ipconfig /all

< 途中略 >

Ethernet adapter ワイヤレス ネットワーク接続 10:

        Connection-specific DNS Suffix  . :
        Description . . . . . . . . . . . : BUFFALO WLI-UC-AG300N Wireless LAN A
dapter
        Physical Address. . . . . . . . . : 4C-<略>
        Dhcp Enabled. . . . . . . . . . . : No
        IP Address. . . . . . . . . . . . : 192.168.11.5
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . : 192.168.11.1
        DNS Servers . . . . . . . . . . . : 192.168.11.1
                                            8.8.8.8

DHCP タブからDHCPサーバを(IPCONFIGコマンドで確認。環境に合わせて)設定

  • DHCP タブ
    • IP pool starting address】 - 割り当て用(開始)IPアドレス
      • PCのアドレスが 192.168.11.x とかなら、とりあえず 192.168.11.200 とかに(重複しないように!)
    • Size of pool】 - アドレスを割り当てる台数
    • Boot File】に pxelinux.0 を指定
    • Mask】(サブネットマスク)はたいていは 255.255.255.0 でいけるかと

DHCP タブのスクリーンショット

インターネットに繋ぐ場合は下記も設定します。

  • 【WINS/DNS Server】 - DNSサーバアドレス(ルーター or プロバイダのDNSサーバ)
  • 【Default router】 - ゲートウェイ(ルーター)アドレス
  • 【Domain Name】 - ドメイン(workgroup)名。Windowsネットワークを使うなら指定(無指定でも使える)

尚、あくまで原則としては、TFTPD32起動中はルーターのDHCPサーバ機能はオフにするべきなのですが、Clonezilla など逆にオンにしておかないと起動できないこともあるので注意しときませう。

ページ先頭 U

gPXE チェインロード

httpサーバが必要になりますが、ダウンロードが格段に速くなります。速くしたいお方はトライしてみてクダサイ。

メインメニュー「」のスクリーンショット

のスクリーンショット

gpxelinux.0

通常はTFTPですが、ファイル名を http://.../ファイル名 で指定すると http サーバからダウンロード可能になります。

安定してますがURL指定が少し面倒かも。

.pxe, .kpxe, .kkpxe

通常のダウンロードが http サーバからとなります。

URL指定不要で楽なのですが環境次第でどの選択が最善なのか試行錯誤が必要かも。

.pxe, .kpxe, .kkpxe ファイルの作成方法など下記拙作ページご笑覧あれ

pxelinux.cfg ディレクトリにコピー。

+---pxelinux.cfg
|       default
|       gpxe.kkpxe
|       gpxe.kpxe
|       gpxe.pxe
|       pxe_menu.cfg
|       pxe_menu2.cfg
|       undionly.kkpxe
|       undionly.kpxe
|       
##### chainload other boot strap #####
MENU BEGIN + >> chainload gPXE boot strap
#########

LABEL gpxe_pxe
MENU LABEL chainload gpxe.pxe
PXE /pxelinux.cfg/gpxe.pxe

LABEL gpxe_kpxe
MENU LABEL chainload gpxe.kpxe
PXE /pxelinux.cfg/gpxe.kpxe

LABEL gpxe_kkpxe
MENU LABEL chainload gpxe.kkpxe
PXE /pxelinux.cfg/gpxe.kkpxe

LABEL gpxe_undionly_kpxe
MENU LABEL chainload undionly.kpxe
PXE /pxelinux.cfg/undionly.kpxe

LABEL gpxe_undionly_kkpxe
MENU LABEL chainload undionly.kkpxe
PXE /pxelinux.cfg/undionly.kkpxe

LABEL gpxelinux
MENU LABEL chain gpxelinux.0
PXE /gpxelinux.0

Menu2 - load http URL (gpxelinux.0)

gpxelinux.0 をロード後は http://.../ファイル名 指定で http サーバからのダウンロードが可能になります。

「Menu2 - load http URL」のスクリーンショット

Menu2(pxe_menu2.cfg)では一応http指定(ウチのアドレスw)してありますが、IPアドレス部分は自PCのソレに置換してくだされ

Menu2 のスクリーンショット

ページ先頭 U

http サーバ

古いソフトですが、Windows で 家庭内LAN内のネットワークブート専用で使うにはお手軽です。

  1. httpd.exe を実行
  2. メニュー【オプション】【一般】でisoのあるディレクトリを「ドキュメントルート」に指定

AN HTTPD のスクリーンショット

ページ先頭 U

スクリーンショット

PXELINUX ブートメニューのスクリーンショット

ブートメニュー2のスクリーンショット

サブメニュー「chainload gPXE」のスクリーンショット

サブメニュー「GRUB for DOS」のスクリーンショット

のサブメニュー「Windows PE」のスクリーンショット

サブメニュー「Recovery Tools」のスクリーンショット

サブメニュー「AntiVirus」のスクリーンショット

サブメニュー「Linux Installer」のスクリーンショット

のサブメニュー「Tools」のスクリーンショット

のサブメニュー「local」のスクリーンショット

GRUB for DOS のスクリーンショット

のスクリーンショット

のスクリーンショット

のスクリーンショット

のスクリーンショット

ページ先頭 U

いろいろ

TFTP のオプション設定

httpサーバ程ではないと思いますが、オプション設定でまぁまぁ速くなることも多いです。但し、対応していない場合(起動しない)もあるので諸刃の剣ではありますが・・・。

  • TFTPタブで【PXE Compatibility】ではなく【Option negotiation】にチェックで2倍程速くなったり
  • Use anticipation window of】に 4096, 8192 などを指定すると数倍速くなることも
ネットワークブート用起動ディスク

ネットワークブートに対応していない古いPCでもNICが内蔵(or 増設PCIカード)なら起動ディスクからのブートが可能と思われます。

FD/CDイメージ、Linux kernel などダウンロードできます。

DVDは作成・編集がメンドクサ、USBメモリはブート対応していないこともある。その点ネットワークなら(対応してれば)ケーブル1本接続のみでいいので楽ですけど、基本的にダウンロードしてからの起動となるので大きなサイズのisoでは nfs ルートやHTTPマウントできないと苦しいかも。

う〜ん、TFTP だけでは限界ありますね。サーバが Linux なら nfs ルートとか設定したらいいんですけど。httpfs が簡単にできるようになったらいいのになぁ、ってスキルのない自分に言い訳してみたり。(w

ルートイメージのみ(あるいはisoそのまま)USBメモリに保存しておき、「“ミニ” iso」方式でブートするとかでもいいかも。

ページ先頭 U

Written by yassy