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

 TweetBuzz  はてなブックマーク

更新履歴 - 最終更新日 2011.10.27

2011.10.27 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 作成

変更内容
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

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

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

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

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

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

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

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

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

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

Parted Magic は SYSLINUX の MEMDISK を利用

5.8 以降では Syslinuxmemdisk を使い、リメイクなしのそのままisoでブート可能になりました。(※ RAM 384MB でギリギリ? 512MB 必要かも。)

  • menu.lst
title Parted Magic == /pmagic-6.3.iso
kernel /syslinux/memdisk iso vmalloc=256M
initrd /pmagic-6.3.iso
isoのリメイク

下記2点は(ルートイメージの)TFTPダウンロードに対応してるのでisoのリメイクでなんとか対応できました。(※ SystemRescueCd 起動は RAM 512 MB 以上必要。)

設定ファイル置換& “ミニ” iso 作成。SystemRescueCd は約 50 MB、Clonezilla は約 17 MB のisoをロードしてからの起動。

Clonezilla は不安定?

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

KNOPPIX InetBoot

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

ページ先頭 U

ダウンロード 4

TFTPルート
|   menu.lst
|   pxelinux.0
|   tftpd32.chm
|   tftpd32.exe
|   tftpd32.ini
|
+---pxelinux.cfg ディレクトリ
|       default
|
+---syslinux ディレクトリ
|       grub.exe
|       memdisk
Windows用 DHCP/TFTPサーバ (TFTPD32)
  • tftpd32 standard edition (zip) をダウンロード
    • TFTP server
    • 必要ファイル : tftpd32.chm, tftpd32.exe, tftpd32.ini

ページ先頭 U

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

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

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

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

SystemRescueCd 2.2.0
(ルート)
|
\---sysres22 ディレクトリ
        sysrcd.dat
        sysrcd.md5
        systemrescuecd-x86-2.2.0-mini-pxe.iso
UltraISO で “ミニ” iso 作成
  1. sysres15 sysres22ディレクトリ作成
  2. isoをUltraISOで開く
  3. iso内の sysrcd.dat, sysrcd.md5sysres22 ディレクトリへ
  4. iso内から sysrcd.dat,sysrcd.md5 削除
  5. systemrescuecd-x86-2.2.0-mini-pxe_isolinux.cfg/isolinux/isolinux.cfg として置換
  6. 【名前を付けて保存】ファイル名は systemrescuecd-x86-2.2.0-mini-pxe.iso とする
  7. isoを sysres22 ディレクトリへ保存
Clonezilla Live 1.2.8-46-i686
(ルート)
|
+---live ディレクトリ
|       clonezilla-live-1.2.8-46-i686-mini-pxe.iso
|       filesystem.squashfs
UltraISO で “ミニ” iso 作成
  1. live ディレクトリ作成
  2. isoをUltraISOで開く
  3. iso内の /live/filesystem.squashfs をliveディレクトリへ
  4. iso内から filesystem.squashfs 削除
  5. clonezilla-live-1.2.8-46-i686-mini-pxe_isolinux.cfg/isolinux/isolinux.cfg として置換
  6. 【名前を付けて保存】ファイル名は clonezilla-live-1.2.8-46-i686-mini-pxe.iso とする
  7. isoを live ディレクトリへ保存

ページ先頭 U

KNOPPIX InetBoot 6

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
|  <中略>
title netfsboot KNOPPIX 5.3.1 == knoppix_v5.3.1CD_20080326-20080520.iso
kernel /inetboot/linux netdir=http://192.168.0.2/knoppix_v5.3.1CD_20080326-20080520.iso type=knoppix ramdisk_size=100000 lang=ja
initrd /inetboot/minirt.gz

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

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

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

ページ先頭 U

ファイルの配置 7

TFTPルート
|
|   AcronisMedia.iso
|   AcronisMedia_old.iso
|   avg.iso
|   bootcd.iso
|   Emergencydisk.iso
|   knoppix_v5.3.1CD_20080326-20080520.iso
|   menu.lst
|   pmagic-6.3.iso
|   pwhe7.iso
|   pxelinux.0
|   SeagateMedia.iso
|   tftpd32.chm
|   tftpd32.exe
|   tftpd32.ini
|   Todo_Backup_WINPE.iso
|   WinPEx86.iso
|   WinREamd64.iso
|   WinREx86.iso
|   WinREx86_vista.iso
|
+---inetboot ディレクトリ
|       linux
|       minirt.gz
|
+---live ディレクトリ
|       clonezilla-live-1.2.8-46-i686-mini-pxe.iso
|       filesystem.squashfs
|
+---pxelinux.cfg ディレクトリ
|       default
|
+---syslinux ディレクトリ
|       grub.exe
|       memdisk
|
\---sysres22 ディレクトリ
        sysrcd.dat
        sysrcd.md5
        systemrescuecd-x86-2.2.0-mini-pxe.iso

ページ先頭 U

DHCP/TFTPサーバの設定 8

PXELINUX でブートし、grub.exe をチェインロードして GRUB for DOS をブートさせます。

PXELINUX の設定ファイル

pxelinux.cfg/default の内容はこれだけ。grub.exe をチェインロードするだけです。

DEFAULT /syslinux/grub.exe
APPEND keeppxe --config-file="pxe basedir /;configfile (pd)/menu.lst"
PROMPT 0
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 タブのスクリーンショット

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

いろいろ 9

ネットワークブート用起動ディスク

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

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

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

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

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

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

ページ先頭 U

Written by yassy