移行作業中です...

はてなブログの該当ページへリダイレクトします。お手数をおかけします。ご容赦ください。

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

はてなブックマーク

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

更新履歴 - 最終更新日 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

これってなに? 3

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

【その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 4

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

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

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

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

ダウンロード 5

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 以下となります。)

※ バージョン 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"
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はそのままルートへ

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をサブディレクトリへ展開 6

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

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ユーザー名/パスワードの修正も。

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

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

Tiny PXE Server 1.0.0.17 のスクリーンショット

TFTP/HTTPルート

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

[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 を指定

FreeNFSアイコンのスクリーンショット FreeNFS - Settings のスクリーンショット

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

CIFS(Windows ファイル共有)

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

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

Windows 共有設定のスクリーンショット

ファイルの配置 8

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あった方がいいかも?)

スクリーンショット

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

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

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

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

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

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

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

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

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

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

いろいろ

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

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

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

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

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

Written by yassy