palm84.com

革命的愛熊主義者同盟!

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

2021.4.1 移転しました...
  • このページの旧URLは
    • http://www10.plala.or.jp/palm84/multiiso_5_pxe_networkboot.html
内容古いです

最終更新日は 2014.07.04、ご注意。

【注意】EFI(UEFI)ブートには対応しておりません。最近の64bit版LiveCDはEFIブート対応なので、ここのやり方は時代遅れになりつつあるのかもしれません…。orz

INDEX

これってなに?

更新履歴 - 最終更新日 2014.7.05

2014.07.05

  • 変更 : サーバを TFTPD32 から Tiny PXE Server に
  • 追加 : Lubuntu(i386), Redo Backup, Avira Rescue System, Bitdefender Rescue CD, Comodo Rescue Disk, Panda SafeDisk, linuxBean, KonaLinux
  • 更新 : Ubuntu, SystemRescueCd, Partition Wizard Home Edition, Clonezilla Live
  • 削除 : KNOPPIX InetBoot, EASEUS Todo Backup, Parted Magic
変更内容
2014.07.04
  • SystemRescueCd - 3.4.1 4.2.0 (systemrescuecd-x86-4.2.0.iso )
  • Clonezilla Live - 2.1.0-26 2.2.3-10
    • clonezilla-live-2.2.3-10-amd64.iso
    • clonezilla-live-2.2.3-10-i486.iso
  • Partition Wizard Home Edition ファイル名変更 : pwhe.iso

f:id:palm84:20210118213753p:plain

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

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

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

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

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

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

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

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

以上は【その1】【その3】と共通のファイル配置、基本的にisoを丸ごとメモリ (RAM) にロード(ダウンロード)してから起動するので、メニューで選択してブート画面が出るまで多少時間がかかります。

以下はサブディレクトリへisoをそのまま展開、PXEブートサーバーから kernel と initrd をダウンロード後に、Windows共有 or NFSサーバに接続します(※ linuxBean, KonaLinux, Panda SafeDisk は【その1】【その3】と共通のファイル配置)。

PXELINUX MEMDISK

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

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

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

  • PXELINUX は http サーバからのダウンロードが可能なので TFTP に比べダウンロードが格段に速くなる
  • GRUB for DOS の利点として Direct Mapping 機能があるが、ネットワークブートでは不可
  • 他のブートストラップのチェインロードが割とカンタン

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

ダウンロード

 TFTP/HTTPルート
 |   ldlinux.c32
 |   libcom32.c32 
 |   libutil.c32 
 |   menu.lst
 |   pxelinux.0
 |
 +---pxelinux.cfg ディレクトリ
 |       default
 |       pxe_menu.cfg
 |      
 +---pxesrv ディレクトリ
 |       * pxesrv.zip の内容をここへ展開 
 |      config.ini
 |      pxesrv.exe
 |      < 省略 >

 |
 +---syslinux ディレクトリ
 |       grub.exe
 |       memdisk 
 |       menu.c32 
 |       pxechn.c32 
 |       vesamenu.c32 
 |
|

【注意】バージョン5.01で確認しています。(※ バージョン 6 以降ではパスは bios 以下となります。)

  • 必要ファイル :
    • \core\pxelinux.0
    • \com32\elflink\ldlinux\ldlinux.c32(SYSLINUX 5.x 以降では必須)
    • \com32\lib\libcom32.c32(SYSLINUX 5.x 以降で pxechn.c32 使うには必須)
    • \com32\libutil\libutil.c32(SYSLINUX 5.x 以降で menu.c32, pxechn.c32 使うには必須)
    • \com32\menu\menu.c32(メニュー用)
    • \com32\menu\vesamenu.c32(メニュー用)
    • \com32\modules\pxechn.c32(pxelinux.0 チェインロード用)
    • \memdisk\memdisk(ファイル - img, iso 読み込み用)

※ バージョン 6 以降では、BIOS (legacy, not EFI) 環境でのブート用ファイルは bios 以下にあります。

コマンド プロンプト コピペ用

わかる人(何)向け

set SYSL=
set TFTP=
pushd %SYSL%
copy core\pxelinux.0 "%TFTP%\"
copy com32\elflink\ldlinux\ldlinux.c32 "%TFTP%\"
copy com32\lib\libcom32.c32 "%TFTP%\"
copy com32\libutil\libutil.c32 "%TFTP%\"
copy com32\menu\menu.c32 "%TFTP%\syslinux"
copy com32\menu\vesamenu.c32 "%TFTP%\syslinux"
copy com32\modules\pxechn.c32 "%TFTP%\syslinux"
copy memdisk\memdisk "%TFTP%\syslinux"
  • PXELINUX 設定ファイル : default
  • PXELINUX 設定ファイル : 192.168.11.8_pxe_menu.cfg
    • pxe_menu.cfg にリネーム (* IPアドレス要修正
  • GRUB for DOS PXEブート用 : menu.lst menu_pxe.lst
    • menu.lst にリネーム

(※ 下記は上記と同じGoogleドライブ より)

  • PXELINUX 設定ファイル : default
  • PXELINUX 設定ファイル : 192.168.11.8_pxe_menu.cfg
    • pxe_menu.cfg にリネーム (* IPアドレス要修正
  • GRUB for DOS PXEブート用 : menu.lst menu_pxe.lst
    • menu.lst にリネーム
pxe_menu.cfg を環境に合わせて修正

下記は自分の環境に合わせて修正してください。

  • IPアドレス 192.168.11.8
  • CIFS(Windows共有)のユーザー名・パスワード - NFSOPTS=-ouser=HOGE,pass=HAGE
Windows用 DHCP/TFTP/HTTPサーバ - Tiny PXE Server

TFTPルート下の pxesrv ディレクトリへ展開

Windows用 NFSサーバ

配置はどこでも。

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

  • Windows PE / RE
  • True Image WD Edition
  • DiscWizard | Seagate
  • Paragon Backup & Recovery
  • AVG Rescue CD
  • Comodo Rescue Disk
  • Partition Wizard Bootable CD
TFTP/HTTPルート
 |
 |   AcronisMedia.iso
 |   avg.iso
 |   bootcd.iso
 |   comodo_rescue_disk.iso
 |   menu.lst
 |   ldlinux.c32
 |   libcom32.c32
 |   libutil.c32
 |   pwhe.iso
 |   pxelinux.0
 |   SeagateMedia.iso
 |   WinPEx86.iso
 |   WinREamd64.iso
 |   WinREx86.iso
 |   WinREx86_vista.iso
 |
 +---pxelinux.cfg ディレクトリ
 |       default
 |       pxe_menu.cfg
 |
 +---pxesrv ディレクトリ
 |       * pxesrv.zip の内容をここへ展開 
 |      config.ini
 |      pxesrv.exe
 |      < 省略 >

 +---syslinux ディレクトリ
 |       grub.exe
 |       memdisk
 |       menu.c32
 |       pxechn.c32
 |       vesamenu.c32
 |

isoをサブディレクトリへ展開

【注意!】KonaLinux はHDインストールができません。後述しますが、Ubuntu, Lubuntu, linuxBean はLive起動時にネットワークの修正、HDインストール後にGRUB2の修正が必要になります。

  • cifsroot (Windows共有) - Ubuntu, Lubuntu, linuxBean 14.04
  • nfsroot (NFSサーバ) - Ubuntu, Lubuntu, linuxBean 12.04, KonaLinux,
  • Ubuntu ja Desktop DVD 14.04 (amd64)
  • Lubuntu Desktop DVD 14.04 (i386)
  • SystemRescueCd 4.2.0
  • linuxBean 12.04 / 14.04
  • KonaLinux 2.3 i386
  • Avira Rescue System
  • Bitdefender Rescue CD
  • Panda SafeDisk
  • Clonezilla Live 2.2.3-10-amd64
  • Clonezilla Live 2.2.3-10-i486
  • Redo Backup

TFTPルート下のisoサブディレクトリへisoをそのまま展開、設定ファイルを追加。SystemRescueCd は pxelinux.0\isolinux から一つ上へコピー、ディレクトリ pxelinux.cfg を作成して設定ファイルをコピー。

TFTP/HTTPルート
 | 
 <省略>
 | 
 +---iso
 |   |   
 |   +---bean1204
 |   |   |   < ここへisoを展開 >
 |   |   |   pxe_bean1204.cfg 
 |   |   |   pxe_bean1404cifs.cfg 
 |   +---bean1404
 |   |   |   < ここへisoを展開 >
 |   |   |   pxe_bean1404.cfg 
 |   |   |   
 |   +---bitdefender-rescue-cd
 |   |   |   < ここへisoを展開 >
 |   |   |   
 |   +---Clonezilla Live 2.2.3-10-amd64
 |   |   |   < ここへisoを展開 >
 |   |   |   pxe_clonezilla-live-2.2.3-10-amd64.cfg 
 |   |   |   
 |   +---clonezilla-live-2.2.3-10-i486
 |   |   |   < ここへisoを展開 >
 |   |   |   pxe_clonezilla-live-2.2.3-10-i486.cfg 
 |   |   |   
 |   +---konalinux-2.3_i386
 |   |   |   < ここへisoを展開 >
 |   |   |   
 |   +---lubuntu-14.04-desktop-i386
 |   |   |   < ここへisoを展開 >
 |   |   |   
 |   +---PandaSafeCD
 |   |   |   < ここへisoを展開 >
 |   |   |   
 |   +---redobackup-livecd-1.0.4
 |   |   |   < ここへisoを展開 >
 |   |   |   
 |   +---rescue-system
 |   |   |   < ここへisoを展開 >
 |   |   |   
 |   +---systemrescuecd-x86-4.2.0
 |   |   |   < ここへisoを展開 >
 |   |   |   pxelinux.0* 下からコピー)
 |   |   |    
 |   |   --- 省略 ---

 |   |   +---isolinux  
 |   |   |   |   pxelinux.0 (* これを上へコピー)
 |   |   |   |   
 |   |   --- 省略 ---

 |   |   +---pxelinux.cfg* ディレクトリ作成)
 |   |   |   |   default 
 |   |   |   |   systemrescuecd-x86-4.2.0_http.cfg 
 |   |   |   |   systemrescuecd-x86-4.2.0_nfs.cfg 
 |   |   |    
 |   +---ubuntu-ja-14.04-desktop-amd64
 |   |   |   < ここへisoを展開 >
 |   |   |   
 |   |           
 <省略>

IPアドレスは 192.168.11.8 になっているのですべて置換してくださいpxe_bean1404cifs.cfgユーザー名/パスワードの修正も。

(※ 下記は上記と同じGoogleドライブ より)

Tiny PXE Server (PXEブートサーバ)

Windows版 DHCP/TFTP/HTTP サーバです。ネットワークの基本を理解してれば設定は簡単。

f:id:palm84:20210118213758p:plain

TFTP/HTTPルート

 |
 +---pxelinux.cfg ディレクトリ
 |       default
 |       pxe_menu.cfg
 |      
 +---pxesrv ディレクトリ
 |       * pxesrv.zip の内容をここへ展開 
 |      config.ini
 |      pxesrv.exe
 |      < 省略 >
  • config.ini
[dhcp]
; ===== root path
root=F:    --- ルートパスを指定 

; ===== Option 54 (DHCP Sever)
opt54=192.168.11.8 --- 自PCアドレス 

; ===== IP Pool start
poolstart=192.168.11.200

; ===== IP Pool Size
poolsize=20

; ===== Option 1 (Subnet Mask)
opt1=255.255.255.0

; ===== Option 3 (Router)
opt3=192.168.11.1

; ===== Option 6 (DNS Server)
opt6=192.168.11.1

; ===== Option 28 (Broadcast)
opt28=192.168.11.255

; ===== Option 15 (DNS Domain Name)
;opt15=

; ===== Boot File - Filename
filename=/pxesrv/files/ipxe-undionly.kpxe

; ===== Boot File - Filename if user-class=gPXE or iPXE
altfilename=http://自PCアドレス/pxelinux.0

; ===== HTTPd
httpd=1
start=1

サンプル config.ini は 192.168.11.8/24 となってるので環境に合わせて適宜修正してください。

PXELINUX の設定ファイル

pxelinux.cfg/default の内容はこれだけ。別のメニュー用ファイル pxe_menu.cfg* IPアドレス要修正)をロードさせます。

INCLUDE /pxelinux.cfg/pxe_menu.cfg
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 . . . . . . . : 有効

NFSサーバ

起動したらisoディレクトリを指定するだけ。

  1. FreeNFS.exe 実行
  2. アイコン右クリ【Settings】で Root Folder を指定

f:id:palm84:20210118213802p:plainf:id:palm84:20210118213806p:plain

※ FreeNFS.exe 場所はどこでもいいです。

CIFS(Windows ファイル共有)

Ubuntu, Lubuntu, linuxBean で可能ですが、これらはNFSブートも可能なので不要なら設定しなくてよいです。

  1. isoフォルダを共有設定
  2. Users にアクセス許可(※ パスワードなしだとダメ...多分...)

f:id:palm84:20210118213811p:plain

ファイルの配置

TFTP/HTTPルート
 |
 |   AcronisMedia.iso
 |   avg.iso
 |   bootcd.iso
 |   comodo_rescue_disk.iso
 |   menu.lst
 |   ldlinux.c32
 |   libcom32.c32
 |   libutil.c32
 |   pwhe.iso
 |   pxelinux.0
 |   SeagateMedia.iso
 |   WinPEx86.iso
 |   WinREamd64.iso
 |   WinREx86.iso
 |   WinREx86_vista.iso
 |
 +---iso
 |   |   
 |   +---bean1204
 |   |   |   < ここへisoを展開 >
 |   |   |    pxe_bean1204.cfg
 |   |   |   
 |   +---bean1404
 |   |   |   < ここへisoを展開 >
 |   |   |   pxe_bean1404.cfg
 |   |   |   pxe_bean1404cifs.cfg
 |   |   |   
 |   +---bitdefender-rescue-cd
 |   |   |   < ここへisoを展開 >
 |   |   |   
 |   +---Clonezilla Live 2.2.3-10-amd64
 |   |   |   < ここへisoを展開 >
 |   |   |   pxe_clonezilla-live-2.2.3-10-amd64.cfg
 |   |   |   
 |   +---clonezilla-live-2.2.3-10-i486
 |   |   |   < ここへisoを展開 >
 |   |   |   pxe_clonezilla-live-2.2.3-10-i486.cfg
 |   |   |   
 |   +---konalinux-2.3_i386
 |   |   |   < ここへisoを展開 >
 |   |   |   
 |   +---lubuntu-14.04-desktop-i386
 |   |   |   < ここへisoを展開 >
 |   |   |   
 |   +---PandaSafeCD
 |   |   |   < ここへisoを展開 >
 |   |   |   
 |   +---redobackup-livecd-1.0.4
 |   |   |   < ここへisoを展開 >
 |   |   |   
 |   +---rescue-system
 |   |   |   < ここへisoを展開 >
 |   |   |   
 |   +---systemrescuecd-x86-4.2.0
 |   |   |   < ここへisoを展開 >
 |   |   |   pxelinux.0
 |   |   |    
 |   |   --- 省略 ---

 |   |   +---pxelinux.cfg
 |   |   |   |   default
 |   |   |   |   systemrescuecd-x86-4.2.0_http.cfg
 |   |   |   |   systemrescuecd-x86-4.2.0_nfs.cfg
 |   |   |    
 |   +---ubuntu-ja-14.04-desktop-amd64
 |   |   |   < ここへisoを展開 >
 |   |   |   

 +---pxelinux.cfg ディレクトリ
 |       default
 |       pxe_menu.cfg
 |
 +---pxesrv ディレクトリ
 |      (pxesrv.zip の内容をここへ展開)
 |      config.ini
 |      pxesrv.exe
 |      --- 省略 ---

 |      
 +---syslinux ディレクトリ
 |       grub.exe
 |       memdisk
 |       menu.c32
 |       pxechn.c32
 |       vesamenu.c32
 |

【注意!】問題点

Ubuntu, Lubuntu, linuxBean, KonaLinux では修正が必要な問題が発生しました!

KonaLinux 2.3 i386

内蔵HDが認識されないのでHDインストール不可です。orz

Ubuntu 14.04 amd64, Lubuntu 14.04 i386
  • CIFSブートではインターネット接続が無効となっているので修正作業が必要
  • NFS/CIFSともHDインストール時は実行前にネットワーク接続の修正が必要
  • NFS/CIFSともHDインストール実行後にGRUB2の修正が必要

詳細は下記ページにて...

linuxBean 12.04, 14.04

Ubuntu同様の症状が発生しました。修正作業が必要です。

SystemRescueCd 4.2.0
  • NFSブートではコンソール表示まで5分から、長い時は20分程かかります。

http download ではかなり速いですが、オンメモリ起動となるので RAM は 512MB 以上必要となってます。(※ 1GBあった方がいいかも?)

スクリーンショット

  • メインメニュー

f:id:palm84:20210118213815p:plain

  • サブメニュー

f:id:palm84:20210118213820p:plain

f:id:palm84:20210118213824p:plain

f:id:palm84:20210118213828p:plain

f:id:palm84:20210118213831p:plain

f:id:palm84:20210118214050p:plain

f:id:palm84:20210118214053p:plain

f:id:palm84:20210118214057p:plain

f:id:palm84:20210118214102p:plain

  • GRUB for DOS

f:id:palm84:20210118214105p:plain

いろいろ

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

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

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

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

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


ほなね