WindowsでPXEネットワークブート用サーバの設定 - TFTPD32 (TFTPD64)

最終更新日 2013.2.23
  • 2013.2.23
    • Parted Magic, Windows PE など追記
  • 2013.2.21
    • バージョン v4.00 tftpd64.exe, SYSLINUX 5.0 以降の ldlinux.c32 について追記
  • 2011.1.3 画像を バージョン v3.51 のものに差替

f:id:palm84:20181222072358p:plain

はっきり言ってLinuxよりも簡単ですね。インストールの必要もないので、USBメモリなどからでも起動可能。

INDEX

概要

BIOSのネットワークブート設定

仕様はいろいろーなので一概に言えませんが、初期設定ではLANブートが無効になってる場合もありまする。また、LANブートには RPL, PXE など複数の種類があり PXE に変更する必要がある場合もあるので注意。さらにM/Bによっては LANブート時に何かキーを押して PXE に変更しないといけないこともあるのでモニタ画面のメッセージもしっかり確認しませう。

※ SYSLINUX についてはバージョン5.x 以降かなり変更があるので間違いがあるかもしれません。ご容赦をば。

  • おおまか手順
    1. TFTPD32 で DHCP/TFTP サーバを設定
    2. syslinux をダウンロード、pxelinux.0, ldlinux.c32, menu.c32,libutil.c32, (memdisk) をコピー
    3. pxelinux.cfg フォルダを作成
    4. ブート用ファイルをフォルダ別に配置
    5. pxelinuxの設定ファイル defaultpxelinux.cfg フォルダに作成

IPアドレスの確認

まず自PCの「IPアドレス」とか確認しまひょ!

慣れてる人には言わずも(ry

  1. コマンド プロンプトを開き?
  2. ipconfig /all と打つべし
  3. IPv4 アドレス」または「IP Address」を探して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 . . . . . . . : 有効

f:id:palm84:20181222072043p:plain

f:id:palm84:20181222072048p:plain

XPだと表示内容が英語だったりしますが・・・orz

f:id:palm84:20181222072053p:plain

  • サブネット マスク (Subnet Mask) - 家庭用では普通 255.255.255.0 です

インターネットに接続するなら下記2点も確認するする

  • デフォルト ゲートウェイ (Default Gateway)
  • DNS サーバー (DNS Servers)

サーバの設定

【2013.2.21 追記】バージョン4.0以降からなのか、OS が64ビットの場合は tftpd64 の方でないとだめみたいです。

ダウンロード
  1. TFTP server
  2. tftpd32 standard edition (zip) をダウンロード
  3. or tftpd64 standard edition (zip) をダウンロード
  4. tftpd32フォルダを作成し、展開
  5. tftpd32.exe or tftpd64.exeを実行

インストーラ版とZIP版があります。インストーラ版はアンインストールコマンド付(フォルダとレジストリキーの削除。スタートメニューに登録)。ZIP版は展開して tftpd32.exe (tftpd64.exe) を実行するだけ。

設定はフォルダ内の tftpd32.ini に保存されてました(※一部レジストリにも)。

TFTPD32(TFTPD64)を起動、「Server interfaces」のIPアドレス確認。

f:id:palm84:20181222072056p:plain

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

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

f:id:palm84:20181222072346p:plain

※ 【Enable IPv6】はどっちでもいいみたいかな?

TFTPサーバの設定
  • TFTP タブで下記にチェック
    • PXE Compatibility
    • Translate Unix file names
    • Allow '\' As virtual root

f:id:palm84:20181222072351p:plain

DHCPサーバの設定
DHCP タブ(DHCPサーバの設定)
  1. 上記の方法などで自PCのIPアドレスを確認
  2. IP pool starting address】 - 割り当て用(開始)IPアドレス
    • 自PCのIPアドレスが 192.168.11.2 なら 192.168.11.3 から 192.168.11.254 まで使える筈、とりあえず 192.168.11.200 などにする
  3. Size of pool】 - アドレスを割り当てる台数 10 ぐらいで(1以上あれば)
  4. Boot File】に pxelinux.0 を指定
  5. 【Mask】(サブネットマスク)はたいていは 255.255.255.0 でいけるかと

インターネットに接続しないならこれだけでおkかと。

f:id:palm84:20181222072355p:plain

インターネットに接続

インターネットに接続するなら上記で確認して以下も指定しましょう

  • WINS/DNS Server】 - DNSサーバアドレス(※ Google Public DNS 8.8.8.8 とかでもよし)
  • Default router】 - ゲートウェイ(ルーター)アドレス
  • Domain Name】 - ドメイン(workgroup)名。Windowsネットワークを使うなら指定(無指定でも使えるけど)

※ あっと、DHCPサーバを起動させる前にルータなど他のDHCPサーバ機能をオフに することをお忘れなく した方が無難かと。

その他のオプション

下記のチェックが必要なことがあるかも。

  • Persistant leases
  • Ping address before assignation

環境によるみたいですが、下記の設定の方がうまくいく場合もありました。

  • Bind DHCP to this address】にチェック
  • Bind TFTP to this address】にチェック

あるいは、

  • TFTPタブで【PXE Compatibility】ではなく【Option negotiation】にチェック

Clonezilla Live では【Ping address before assignation】をオフにしないと起動できませんでした...

Size of pool】が多いとIP割り当てに時間がかかったり、逆に少ないと何度も再起動した際に割り当てIPがなくなっったり(※初期化するには tftpd32.ini 内の Lease_0_ ナンドカ行とか、レジストリ HKEY_LOCAL_MACHINE\SOFTWARE\TFTPD32\DHCP を削除しませう)。

ブート用ファイルをコピー

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

  1. SYSLINUXをダウンロード
  2. 解凍して下記を tftpd32 フォルダにコピー
    • core\pxelinux.0
    • com32\elflink\ldlinux\ldlinux.c32 (SYSLINUX 5.x 以降では必須)
    • com32\libutil\libutil.c32 (SYSLINUX 5.x 以降で menu.c32 使うには必須)
    • com32\menu\menu.c32 (メニュー用)
    • memdisk\memdisk(ファイル - img, iso 読み込み用)
  3. ブートイメージなどフォルダを作成してコピー
tftpd32
│  avg.iso
│  memdiskmenu.c32ldlinux.c32libutil.c32
│  pmagic.iso
│  pmagic_i586.iso
│  pxelinux.0
│  tftpd32.chm
│  tftpd32.exe ( or tftpd64.exe)
│  tftpd32.ini
│  winpe.iso
│  
├─pxelinux.cfg ディレクトリ(※作成)
│      default(※作成)
│      
├─fdboot
│      balder10.img
│      bgrescue.img
│      hogehoge.img
│      msdos_xp.img
│      
├─centos
│      initrd.img
│      vmlinuz
│      
├─debian
│      mini.iso
│      
├─plop
│      plpbt.bin
│      
├─ubuntu
│      mini.iso
│      
└─vine
        initrd.img
        vmlinuz

以下、「必要なもの」をコピーしませう。

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

わかる人(何)向け

set SYSL=
set TFTP=
pushd %SYSL%
copy core\pxelinux.0 "%TFTP%\"
copy com32\elflink\ldlinux\ldlinux.c32 "%TFTP%\"
copy com32\libutil\libutil.c32 "%TFTP%\"
copy com32\menu\menu.c32 "%TFTP%\"
copy memdisk\memdisk "%TFTP%\"
FDイメージ

1.44MBイメージだけでなく、2.88MBイメージなども利用可能。FDドライブが無い環境、また、FD版LinuxやDOSなど実FDドライブで起動できないものでもネットブートでは可能なこともあるので、試す価値ありかと思います。

  1. tftpd32フォルダ内に「fdboot」などの名前でフォルダ作成
  2. FDイメージをコピー
DOSは Balder (FreeDOS) がオススメ

fdisk, format, xcopy, sys など一式入ってます。keyb jp でキーマップをJP配列に、loadcd.bat でATAPI CD認識)

小さな Linux なら BG-Rescue Linux とか

CUIですが今時珍しい(何)FD版Linux です。

bgrescue-x.x.x.img (2.88MB FDイメージ)をダウンロード。bgrescue.img とかにリネーム。

Parted Magic (Linux LiveCD isoイメージ)

RAM は1GB以上ないとだめですがGUIの使える Linux LiveCD ということで。isoをダウンロードしてから起動するので時間かかりますが・・・

pmagic_2013_01_29 で確認しました。i586はPAE非対応な古いPC向けです。

  1. 上記サイトからisoをダウンロード
  2. tftpd32フォルダへisoをコピー
  3. それぞれ pmagic.iso, pmagic_i586.iso とかにリネーム
Windows PE (isoイメージ)

※ 7 のシステム修復ディスクのisoでは RAM 512MBだとキビシイかもしれません。isoをダウンロードしてから起動するので時間かかります・・・

システム修復ディスクのisoイメージ作成するとか・・・

  1. isoイメージを winpe.iso などとしてtftpd32フォルダへコピー

isoを一気にメモリへロードして起動するので、Norton など起動後にCD内のファイルを参照するものはだめです。

「Press any key to boot from CD or DVD...」

Windows PE 系ではisoイメージ内の boot\bootfix.bin を削除していない場合は、上記のメッセージが出てるうちに何かキーを押さないと起動がスルーされてしまいます。UltraISO などで削除してしまいませう。

ウイルススキャン LiveCD - AVG Rescue CD (isoイメージ)

要 RAM 756MB ですが、1GB以上ないとキビシイかも。isoをダウンロードしてから起動するので時間かかります・・・

  1. tftpd32フォルダ内にisoをダウンロードしてコピー
  2. avg.iso にリネーム

eScan も同じ方法でできる筈なのですが起動に失敗すること多し。orz

Linuxインストーラ

※ 最近あまり確認してないので不具合あったらすみません。。。

  1. tftpd32フォルダ内に vine とか centos, debian, ubuntu とかの名前でフォルダ作成
  2. Vine, CentOS はインストール用 kernel (vmlinuz) と initrd (initrd.img) をダウンロードしてコピー、Debian, Ubuntu は、mini.iso
i386

Vine, CentOS はテキストーモード&英語(Vine は文字化け)で開始しますが、インストールイメージ取得後にGUIモードとなりました。(FedoraはローカルにCDが必要みたい? オプション指定で可、後述「その他いろいろ」に追記

Debian / Ubuntu では、mini.iso で(※ SYSLINUX 3.84 で memdisk でisoイメージの読み込みが可能になりました。)

※ 【2013.8.4 追記】Ring の Debian は最近おかしいので理研のURLに変更。

※ 12.04 LTS は precise-updates。non-pae版もあります。

amd64 (x86_64)

Debian / Ubuntu では、mini.iso で(※ SYSLINUX 3.84 で memdisk でisoイメージの読み込みが可能になりました。)

※ 【2013.8.4 追記】Ring の Debian は最近おかしいので理研のURLに変更。

PLoP Boot Manager

USBブート非対応PC向け、USBメモリ・USB HD対応ブートローダ。(バッチシOK!ではないのですけどけども)

  1. plpbt-x.x.x.zip をダウンロード
  2. ディレクトリ plop 作成
  3. 展開して、plpbt.binplpbt にリネームしてコピー

ブートメニュー用設定ファイル作成

tftpd32 フォルダ内に pxelinux.cfg フォルダを作成し default ファイルを作成。

※一見ややこしそうですが、設定ファイルをじっくり眺めてみるととても単純だったりしますです。

default ファイルの先頭部分
DEFAULT menu.c32
PROMPT  0
MENU TITLE === Oshinagaki ===

LABEL hogehoge
      KERNEL memdisk
      APPEND initrd=fdboot/hogehoge.img floppy

LABEL xpdos
       KERNEL memdisk
       APPEND raw initrd=fdboot/msdos_xp.img

LABEL balder_freedos
       KERNEL memdisk
       APPEND initrd=fdboot/balder10.img

LABEL bgrescue
MENU LABEL BG-Rescue Linux
       LINUX /memdisk
       APPEND initrd=/fdboot/bgrescue.img

LABEL pmagic
MENU LABEL Parted Magic
      LINUX /memdisk
      INITRD /pmagic.iso
      APPEND iso

LABEL pmagic_i586
MENU LABEL Parted Magic (i586)
      LINUX /memdisk
      INITRD /pmagic_i586.iso
      APPEND iso

LABEL winpe
MENU LABEL Windows PE
      LINUX /memdisk
      INITRD /winpe.iso
      APPEND iso raw

LABEL avg
MENU LABEL AVG Rescue CD 
      LINUX /memdisk
      INITRD /avg.iso
      APPEND iso raw

LABEL vine
      KERNEL vine/vmlinuz
      APPEND initrd=vine/initrd.img vga=0x303

LABEL centos
      KERNEL centos/vmlinuz
      APPEND initrd=centos/initrd.img vga=0x303

LABEL debian
      KERNEL memdisk
      APPEND iso initrd=debian/mini.iso

LABEL ubuntu
      KERNEL memdisk
      APPEND iso initrd=ubuntu/mini.iso

LABEL PLoP-Boot-Manager
      LINUX plop/plpbt.bin

LABEL disk1
      localboot 0x80

LABEL disk2
      localboot 0x81

LABEL floppy
      localboot 0x00
  • DEFAULT - menu.c32 を指定
  • PROMPT - 0 を指定(1にするとプロンプト画面となる)
  • 空白行は無視される
menu.c32 なしの場合
  • DEFAULT - デフォルトの設定 LABEL 名を記述
  • PROMPT - 1にするとプロンプトで入力待ち。0だとデフォルトの設定で自動起動
  • 空白行は無視される

ブート画面にて、未入力Enterで DEFAULTLABEL で起動。 DEFAULT 以外は LABEL 名を入力する。

LABEL の 下に MENU LABEL 分を入れるとブートメニューの表示名となります。

LABEL debian_iso
MENU LABEL Debian Graphical Installer (from mini.iso)

下記は意味同じになるのでどっちゃでもいいです。

KERNEL memdisk
APPEND iso initrd=ubuntu/mini.iso
LINUX /memdisk
INITRD /ubuntu/mini.iso
APPEND iso

ファイル記述は絶対パスかTFTPルートから相対パスとなります

FDイメージ

【2010.5.20】間違い修正しました。すみません。

注意:DOS/Windows 系のFDイメージは raw オプションを付けないといけない場合が多いようです。

※ファイル名は実際のものに合わせて下さいまし。

LABEL hogehoge
      KERNEL memdisk
      APPEND initrd=fdboot/hogehoge.img floppy
  • XP版 MS-DOS起動ディスク
LABEL xpdos
      KERNEL memdisk
      APPEND raw initrd=fdboot/msdos_xp.img
  • Balder (FreeDOS)
LABEL balder_freedos
       KERNEL memdisk
       APPEND initrd=fdboot/balder10.img
  • BG-Rescue Linux
LABEL bgrescue
MENU LABEL BG-Rescue Linux
       LINUX /memdisk
       APPEND initrd=/fdboot/bgrescue.img
Parted Magic (Linux LiveCD)
LABEL pmagic
MENU LABEL Parted Magic
      LINUX /memdisk
      INITRD /pmagic.iso
      APPEND iso

LABEL pmagic_i586
MENU LABEL Parted Magic (i586)
      LINUX /memdisk
      INITRD /pmagic_i586.iso
      APPEND iso
Windows PE (RE)
LABEL winpe
MENU LABEL Windows PE
      LINUX /memdisk
      INITRD /winpe.iso
      APPEND iso raw

raw オプションはなしでもいいかも?

ウイルススキャン LiveCD - AVG Rescue CD
LABEL avg
MENU LABEL AVG Rescue CD 
      LINUX /memdisk
      INITRD /avg.iso
      APPEND iso raw

raw オプションはなしでもいいかも?

Linuxインストーラ

※ 最近あまり確認してないので不具合あったらすみません。。。

LABEL vine
      KERNEL vine/vmlinuz
      APPEND initrd=vine/initrd.img vga=0x303

LABEL centos
      KERNEL centos/vmlinuz
      APPEND initrd=centos/initrd.img vga=0x303

LABEL debian
      KERNEL memdisk
      APPEND iso initrd=debian/mini.iso

LABEL ubuntu
      KERNEL memdisk
      APPEND iso initrd=ubuntu/mini.iso
  • CentOS URL指定の一例
    • (x86) http://ftp.riken.jp/Linux/centos/6/os/i386/
    • (amd64) http://ftp.riken.jp/Linux/centos/6/os/x86_64/
  • Vine の HTTP 指定の一例
    • Web site name: www.ring.gr.jp
    • (x86) Vine Linux directory: /pub/linux/Vine/Vine-6.1/i386/
    • (amd64) Vine Linux directory: /pub/linux/Vine/Vine-6.1/x86_64/
PLoP Boot Manager
LABEL PLoP-Boot-Manager
      LINUX plop/plpbt.bin

以下の設定も使えます。

LABEL disk1
      localboot 0x80
LABEL disk2
      localboot 0x81
LABEL floppy
      localboot 0x00

「0x80」がローカルHD(1台目)からの起動、「0x00」はFDドライブから起動。

関連めも

とってもシンプルで好感が持てますね(何)。

Tabキーを押すと設定のちょこっと修正もできまする。

f:id:palm84:20181222072358p:plain

isoブートが遅すぎ!で眠なるんですけど・・・

オプション設定で速くなることも多いです。但し、対応していない場合(起動しない)もあるので諸刃の剣なのであります。

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

はたまた、httpサーバからダウンロードさせるとめちゃ速になりますぉ。結構カンタンだったりします。お試しクダサレ。

下記は TFTPD32 をもっと多機能にしたかんじのやつ。HTTP サーバ込です。

あとは拙作ばっかしですけど...

尚、このTFTPD32は一部のセキュリティ対策ソフトでリスクウェアとして検出されてしまうことがあるようです。理由はウイルスなどのよって勝手にインストールされる、つまり悪用されることがあるからなのでそうで...

その他いろいろ

  1. Fedora インストーラー
  2. openSUSE インストーラー
  3. Ubuntu/Lubuntu/Xubuntu LiveCD/DVD
  4. Debian LiveCD/DVD
  5. HTTP-FUSE-KNOPPIX501 (KNOPPIX 5.0.1CD)
  6. InetBoot (KNOPPIX 5.3.1 Remastered CD)
  7. 他にTFTPD32のみでブート可能なヤツは?
  8. グラフィカル・メニュー
  9. シャットダウン・再起動
  10. チェインロード
  11. FDイメージの作成・ダウンロード
  12. ISOイメージをファイルへ展開
  13. USB CDドライブからブートできない時に
  14. grub4dos での isoイメージからのブート
Fedora インストーラー
  • ダウンロード : vmlinuz, initrd.img

APPEND行に下記を追記

APPEND inst.repo=[]http://ftp.riken.jp/Linux/fedora/releases/[]<バージョン>/Fedora/i386/os

下記は Fedora 19 の例

LABEL fedora19_i386
MENU LABEL Fedora 19 i386 install
LINUX /fedora/i386/vmlinuz
INITRD /fedora/i386/initrd.img
APPEND inst.repo=[]http://ftp.riken.jp/Linux/fedora/releases/19/Fedora/i386/os[]

LABEL fedora19_x86_64
MENU LABEL Fedora 19 x86_64 install
LINUX /fedora/x86_64/vmlinuz
INITRD /fedora/x86_64/initrd.img
APPEND inst.repo=[]http://ftp.riken.jp/Linux/fedora/releases/19/Fedora/x86_64/os[]
openSUSE インストーラー

APPEND行に下記を追記

APPEND splash=silent vga=0x314 showopts install=[]http://download.opensuse.org/distribution/openSUSE-stable/repo/oss/[]

openSUSE 12.3 で確認しました。

LABEL suse
MENU LABEL open^SUSE
MENU INDENT 1
LINUX /opensuse/i386/linux
INITRD /opensuse/i386/initrd
APPEND splash=silent vga=0x314 showopts install=[]http://download.opensuse.org/distribution/openSUSE-stable/repo/oss/[]

LABEL suse
MENU LABEL open^SUSE
MENU INDENT 1
LINUX /opensuse/x86_64/linux
INITRD /opensuse/x86_64//initrd
APPEND splash=silent vga=0x314 showopts install=[]http://download.opensuse.org/distribution/openSUSE-stable/repo/oss/[]
Ubuntu/Lubuntu/Xubuntu LiveCD/DVD

別ページにて

Ubuntu, Lubuntu, Xubuntu 13.04 以降は TFTPD32 + CIFS(Windows ファイル共有)でおk。

NFSサーバを設定したら 12.04 でも可でした。

Debian LiveCD/DVD

NFSサーバが必要ですけど。

HTTP-FUSE-KNOPPIX501 (KNOPPIX 5.0.1CD)

今ではかなり古いので最近のPCでは起動しないかも?

※クライアントPCのRAMは512 MB以上必要、最も近いサーバを選択しないと非常に重かったり起動しなかったりしますが、まぁお試しということで。下記のInetBootの方がオススメです。

httpfuse-trusted_20061101.isoをダウンロード

  1. tftpd32 フォルダ内に knoppix httpfuse とかの名前でフォルダ作成
  2. isoイメージ内の isolinux フォルダの中身をコピー
  3. default に設定を追記する
LABEL HTTP-FUSE-KNOPPIX
      KERNEL httpfuse/linux
      APPEND ramdisk_size=100000 init=/etc/init lang=ja.utf8 apm=power-off vga=791 initrd=httpfuse/minirt.gz nomce quiet BOOT_IMAGE=knoppix

LABEL memtest
      KERNEL httpfuse/memtest
      APPEND foo
InetBoot (KNOPPIX 5.3.1 Remastered CD)

2008/3 リリースなのでこれもちょっと古いかな

※クライアントPCのRAMは256 MB以上で起動可能です。

HTTPサーバのisoイメージをマウントしてブートします。

HTTPサーバが必要です。Windowsなら下記の AN HTTPD が簡単かも。

  1. ディレクトリ inetboot を作成
  2. ブート用ファイルをダウンロードしてコピー
  3. isoイメージのダウンロード
    • Index of /Linux/knoppix/iso/
    • ファイル名 knoppix_v5.3.1CD_20080326-20080520.iso
    • 通常版ではなく、Remaster版の方なのでご注意!
  4. HTTPサーバのドキュメントルートにisoイメージをコピー
    • AN HTTPD の初期設定では、httpd.exe のあるディレクトリ
  5. default に設定を追記する

【注意】IPアドレスをサーバのものに合わせて修正してクダサイ!

LABEL InetBoot
      KERNEL inetboot/linux
      APPEND initrd=inetboot/minirt.gz netdir=http://192.168.0.2/knoppix_v5.3.1CD_20080326-20080520.iso type=knoppix ramdisk_size=100000 lang=ja screen=1024x768
他にTFTPD32のみでブート可能なヤツは?
  • 設定が必要ですが可能なもの
    • SystemRescueCd
    • Clonezilla Live
  • isoそのままでブート可能なもの
    • Paragon Backup & Recovery
    • Seagate DiscWizard
    • True Image WD Edition
    • Partition Wizard Home Edition
    • Offline NT Password & Registry Editor
    • EASEUS Disk Copy
    • PING (Partimage)
Memtest86+
  1. Memtest86+ - Advanced Memory Diagnostic Tool
    • memtest86+-x.xx.binmemtest にリネーム
  2. memtest をtftpd32フォルダにコピー
LABEL Memtest86+
      KERNEL memtest
GRUB for DOS
  1. grub.exe をtftpd32フォルダにコピー
  2. tftpd32 フォルダに menu.lst を作成
  3. default に設定を追記する
LABEL grub4dos
      KERNEL grub.exe
      APPEND keeppxe --config-file="pxe basedir /;configfile (pd)/menu.lst;"

menu.lst を作成しない場合はHD上から検索される。ない場合はコマンドモード。

Super Grub2 Disk

iso, FD, USBメモリ の hybrid イメージになってますが FD扱いが確実かなと思います。

LABEL supergrubdisk
      KERNEL /memdisk
      INITRD /super_grub2_disk_hybrid.iso
      APPEND floppy raw
グラフィカル・メニュー

menu.c32 の代わりに vesamenu.c32(com32\menu\vesamenu.c32)を使うとグラフィカル・メニューとなります。

SYSLINUX 5.x 以降では libutil.c32, libcom32.c32 も必要です

  1. SYSLINUX の com32\menu\vesamenu.c32, (com32\lib\libcom32.c32) をtftpd32フォルダにコピー
  2. default ファイルの1行目を編集
DEFAULT vesamenu.c32

背景に画像も使えます。640x480なjpgかpngファイルを指定します。

  • default ファイルの2行目あたりに挿入追記
MENU BACKGROUND filename.jpg
シャットダウン・再起動

poweroff.com はなくなったみたいです!

SYSLINUX 5.x 以降では libcom32.c32 も必要です

  1. SYSLINUX の modules\poweroff.com をtftpd32フォルダにコピー
  2. SYSLINUX の com32\modules\reboot.c32 をtftpd32フォルダにコピー
  3. SYSLINUX の com32\lib\libcom32.c32 をtftpd32フォルダにコピー
  4. default に設定を追記する
LABEL Poweroff
      KERNEL poweroff.com

LABEL Reboot
      KERNEL reboot.c32
チェインロード

内蔵HDからの起動。パーティションの指定ができます。

SYSLINUX 5.x 以降では libutil.c32, libcom32.c32 も必要です

  1. SYSLINUX の com32\modules\chain.c32 com32\chain\chain.c32 , (com32\lib\libcom32.c32) をtftpd32フォルダにコピー
  2. default に設定を追記する
  • hd0 0(hd0) = 第1HDのMBR
  • hd0 1 = 第1HDの第1パーティション
  • hd1 0 swap = 第2HDを第1HDとして起動
LABEL hd0-1
      KERNEL chain.c32
      APPEND hd0 1

LABEL hd0-2
      KERNEL chain.c32
      APPEND hd0 2

LABEL hd1-swap
      KERNEL chain.c32
      APPEND hd1 0 swap
FDイメージの作成・ダウンロード
ISOイメージをファイルへ展開

WinRARや仮想CDソフトだと、ファイル名が大文字8.3形式になっちゃうことがあるので、下記を熱くオススメ。

  • 7-Zip
    • [BOOT]はブートセクタをファイルにしたもの
  • Universal Extractor | LegRoom.net(※UniExtract Binary Archive はインストール不要)
    • [BOOT]はブートセクタをファイルにしたもの
USB CDドライブからブートできない時に

Linux LiveCDの多くは、kernel と initrd をロードすれば、USB CD(USBメモリとかでも)を認識できまする。

Linux インストーラーでRAMが少ない為ネットワークインストール不可な場合など、ネットワークブート + USB CD なんてやり方もありますしおすし。

KNOPPIX 5.3.1CDの例...

  1. tftpd32 フォルダに knoppix ディレクトリ作成
  2. boot\isolinux にある linuxminirt.gz をそこへコピー
  3. LABEL を追記
  • default ファイルに追記
LABEL KNOPPIX531CD
      KERNEL /knoppix/linux
      APPEND ramdisk_size=100000 init=/etc/init lang=ja apm=power-off vga=791 initrd=/knoppix/minirt.gz nomce highres=off loglevel=0 libata.atapi_enabled=1 quiet SELINUX_INIT=NO nmi_watchdog=0 BOOT_IMAGE=knoppix

Puppy Linux の例...

  1. tftpd32 フォルダに puppy ディレクトリ作成
  2. vmlinuzinitrd.gz をそこへコピー
  3. LABEL を追記
  • default ファイルに追記
LABEL Puppy-Linux
      KERNEL /puppy/vmlinuz
      APPEND initrd=/puppy/initrd.gz pmedia=usbcd
grub4dos での isoイメージからのブート

※ 上記の SYSLINUX memdisk でも可能ですが、grub.exe の方が確実かなと思います確実なことがありました

起動可能なものは?

  • Windows PE などオンメモリで動くもの
  • kernel, initrd のみで起動する Linux

KNOPPIX や Puppy など ルートイメージが別にあるものは基本的にはだめ。

メモリ(RAM)にダウンロードし、ブートローダ(GRUB)上でマウントします。OS起動後に仮想CDがあるわけではないのです。

  1. grub.exe をtftpd32フォルダにコピー
  2. isoファイルを tftpd32 フォルダにコピー
  3. default に設定を追記する
  • 設定例
LABEL iso_file
MENU LABEL NANTOKA KANTOKA
LINUX /grub.exe
APPEND keeppxe --config-file="pxe basedir /;map --mem (pd)/iso_file.iso (0xff);map --hook;chainloader (0xff)"