- 2021.4.1 移転しました...
-
- このページの旧URLは
http://www10.plala.or.jp/palm84/syslinux_basic.html
- このページの旧URLは
- 内容古いです!
-
最終更新日は 2011.6.2 です!ご注意。
2009.8.8 書きかけ中ですが公開してもうたです...
- INDEX
これって何
作業環境は、Windows XP です。
- 【2013.2.21 追記】SYSLINUX バージョン 5.x では・・・
-
いろいろ変更されてます。このページは変更前のものなのでご注意。後日修正する予定です。orz
バージョン 4.x を使う方が楽かもしれません。
※ 「USBメモリブート初体験」でこれをいきなり!(何)、はやめておいた方がいいと思われます。
めちゃ初歩的・基本的ですが、SYSLINUX ブートローダを使い、マルチブートなUSBメモリを作成する方法。内容は設定ファイルを読めば誰でも(?)できるかなレベルです。
また、USBメモリ用に作成したファイルを基に、マルチブートCD (ISOLINUX)、PXEネットワークブート用サーバ (PXELINUX)、の設定方法も書いてみたり。
※ あんまり根つめると、疲れるのでご注意(何)。お試し気分でのんびり行きませう。
- 【私的】使用目的は?
-
一般的な用途にも一応は使えますけど、メンテナンスってやつでありんす。
- バックアップ・リカバリーイメージ作成
- GRUB が壊れた Linux の起動
- メモリーテスト(増設時とか)
- 起動しない Windows のファイル救出
- Windows XP のクリーンインストール(Windows PE など使用)
- Linux のインストール
- ウイルス・スキャン
- fdisk, dd, gpart, parted, ...
- 簡易サーバ
などなどであります。(めちゃ私的)
- なぜに SYSLINUX ?
-
- FATパーティションで使える
- Linux LiveCDの多くは ISOLINUX 使用なので、設定ファイルの仕様がほぼ共通
- インストールが簡単
- 構造が単純
- Windowsと同様、アクティブパーティションのブートセクタ + ブートローダファイルでブート
- USBメモリの内容が(一部除き)ISOLINUX, PXELINUX でも使える
- GRUB(for DOS) や FreeDOS をチェインロードできる
※ 実際には、SYSLINUX でできることのごく一部しか使ってなかったりしますが...私のスキルの限界ということです。orz
では短所はというと...
- FAT(ext2)パーティションでしか使えない。NTFSなUSB HDなどで使えない
- ファイルのロードはインストールしたパーティションのみ
PBRや GRUB for DOS, NTLDR/BOOTMGR のチェインロードは可能なので、併用することで欠点は補えるかなと思います。
とりあえず以下をマルチブートさせるでござる。
- FDイメージ --- memdisk 使用、仮想ドライブで
- Linux LiveCD --- Linuxだし(そのまま)
- KNOPPIX 5.3.1CD (※ バージョン 6.x でもやり方の基本は同じ)
- Windows PE (2.0 以降) --- chain.c32 使用 + bootmgr をチェインロード
- or --- isoイメージを grub.exe で
- FreeDOS --- FDイメージ or chain.c32 でチェインロード
- GRUB for DOS --- grub.exe をチェインロード
- Linux(ネットワーク)インストーラ --- Linuxだし(そのまま)
- Memtest86+ --- バイナリを kernel として指定
- おおまか手順
-
- 必要ファイルをダウンロード
syslinux
ディレクトリに必要ファイルをコピー- アイテムのファイルをそれぞれディレクトリ作成してコピー
syslinux
ディレクトリにブートメニュー設定ファイル作成
※ USBメモリへの書き込みは遅いので、一旦HD上の一時ディレクトリで作業後にUSBメモリへ一括コピーした方が楽だと思います。HD上の一時作業ディレクトリは、ネットワークブートやマルチブートCD作成用にも使えますので。
事前準備
- バックアップ
-
MBR,ブートセクタも含め全体をイメージファイルとしてバックアップできます。もちろん復元も可能。
- パーティションの作成
-
※既にUSBメモリがブート用として使えている場合はこの作業は不要です。
FD扱い(* USB Legacy Support の FD Emulation)でのブート可能なPCではパーティションの作成(正確にはMBRのないFD形式でなくMBRにパーティションテーブルがあるHD形式にする)は不要ですが、両方で使えるように変更しておいた方がいいと思われます。
最近では購入時に既に作成されているものも多いのですけど...。
パーティションはとりあえず一個で構わない。(Windowsでは先頭パーティションしかドライブとして認識しません)
※尚、SDメモリでは、デジタルカメラ・携帯電話などで使えなくなることもあるので、その辺はご覚悟の上にて。
作成方法は色々ありますが、Linuxのfdiskコマンドを使うのがもっとも確実かなと思います。
ダウンロード
- SYSLINUX
-
- kernel.org(Ring ミラー)
- syslinux-x.xx.zip をダウンロード
- kernel.org(Ring ミラー)
- Linux LiveCD
-
- Windows上でisoイメージのファイルへの展開(抽出)
-
仮想CDソフトやWinRARなどでも可能ですが、Windows上ではファイル名がすべて大文字になってしまうことがあるため、下記をおすすめしときます。
- 7-Zip
- Universal Extractor | LegRoom.net (UniExtract Binary Archive)
- KNOPPIX 5.3.1CD
-
- Index of /pub/linux/knoppix/iso
- Index of /Linux/knoppix/iso
- knoppix_v5.3.1CD_20080326-20080520-AC.iso をダウンロード
- または
knoppix_v5.3.1CD_20080326-20080520.iso
- FreeDOS
-
- Balder - Finnix
- balder10.img をダウンロード
ファイルへの展開はFDに書き込んでもいいけど、Universal Extractor | LegRoom.net (UniExtract Binary Archive)とかでも可能
- Balder - Finnix
- GRUB for DOS
-
- Browse GRUB4DOS and WINGRUB Files on SourceForge.net
- grub4dos-0.4.4.zip をダウンロード
- Browse GRUB4DOS and WINGRUB Files on SourceForge.net
- Linux インストーラ
-
※ Fedora はだめになってるかも?すみません。
ネットワーク(HTTP,FTP)インストール用カーネルが用意されているディストリならどれでもできますが、とりあえず下記のものを設定。
インストール用カーネル(linux, vmlinuz など)と ミニルート(initrd.img, initrd.gz など)をダウンロード
- i386 (x86)
-
- Debian stable netboot/debian-installer/i386(※テキストモード版)
- Debian stable netboot/gtk/debian-installer/i386(※グラフィカル版)
- Ubuntu : Index of /pub/Linux/ubuntu/dists
<バージョン>/main/installer-i386/current/images/netboot/ubuntu-installer/i386/
- Vine Linux : Index of /pub/linux/Vine
<バージョン>/i386/images/pxeboot/
- Fedora : Index of /pub/linux/fedora/linux/releases
<バージョン>/Fedora/i386/os/images/pxeboot/
- amd64 (x86_64)
-
- Debian stable netboot/debian-installer/amd64(※テキストモード版)
- Debian stable netboot/gtk/debian-installer/amd64(※グラフィカル版)
- Ubuntu : Index of /pub/Linux/ubuntu/dists
<バージョン>/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/
- Vine Linux : Index of /pub/linux/Vine
<バージョン>/x86_64/images/pxeboot/
- Fedora : Index of /pub/linux/fedora/linux/releases
<バージョン>/Fedora/x86_64/os/images/pxeboot/
- Memtest86+
-
- Memtest86+ - Advanced Memory Diagnostic Tool
- Download - Pre-Compiled Bootable Binary (.zip)をダウンロード
- Memtest86+ - Advanced Memory Diagnostic Tool
syslinuxディレクトリ
SYSLINUX関連ファイルなど、この syslinux
ディレクトリに保存する。
【注意】/boot/syslinux
ディレクトリがあると、そちらが優先されてしまいます。/boot/syslinux
ディレクトリを作らないように。
USBメモリの syslinux
ディレクトリに必要ファイルをコピー。ブートメニュー用設定ファイル作成
USBメモリ │ ├─syslinux (※ディレクトリ作成) │ chain.c32 │ jp106.kbd -- ※あれば │ memdisk │ menu.c32 │ poweroff.com │ reboot.c32 │ syslinux.cfg -- 作成 │
- USBメモリへSYSLINUXのインストール
-
win32\syslinux.exe
をUSBメモリのルートにコピーした場合は、仮にUSBメモリがX:
ドライブだと仮定致しますとこんなかんじ。コマンドプロンプトから※ Vista/7ではコマンド プロンプトを「管理者として実行」すること!
X: syslinux.exe -ma X:
または、
X: syslinux.exe --install --active --mbr X:
【注意!】ドライブ文字を間違うとWindowsが起動しなくなることもありますので注意。(※ 上記コマンドでは内蔵HD、USB HDへはインストールできない筈ですけど...)
アイテム投入
まず、USBメモリにディレクトリを作成しておきませう
USBメモリ | +---syslinux | +---KNOPPIX +---bootdisk +---debian | \---gtk +---fedora +---ubuntu \---vine
必要なものを設定。USBメモリへのコピーは容量に合わせて。(※すべて入れると 900 MB 程。)
- FDイメージ
- Knoppix 5.3.1CD -- 約 700 MB
- Windows PE 2.0 -- 約 125 MB
- FreeDOS -- 約 1.4 MB - 3 MB
- GRUB for DOS
- Linux インストーラ
- Memtest86+
FDイメージ
- bootdisk ディレクトリへFDイメージをコピー
とりあえずは、BG-Rescue Linux (rescue-0.9.1.img
) とか?
Knoppix 5.3.1CD
KNOPPIX
ディレクトリへisoイメージ内の下記ファイルをコピー/boot/isolinux
ディレクトリの内容/KNOPPIX
ディレクトリ内の内容
バージョン 6.x でもやり方は同じで。
Windows PE 2.0
※ Windows 7 PCがあるなら「システム修復ディスク」を使いませう。
ファイル作成後に。
- バラしたファイルから
-
- ISOフォルダの内容をそのままUSBメモリのルートへコピー
- isoイメージから
-
- isoイメージをルートへ、ファイル名はとりあえず
WinPEx86.iso
などにする
- isoイメージをルートへ、ファイル名はとりあえず
FreeDOS
- FDイメージをロード
-
bootdisk
ディレクトリへ balder10.img をコピー
- kernel.sys をチェインロード(USBメモリから直接ブート)
-
- USBメモリのルートへコピー
- command.com
- kernel.sys
- keyb.exe
- keyboard.sys
- keybrd2.sys
- 他、himem.exe, devload.com, edit.exe, xcopy.exe など
- USBメモリのルートへコピー
GRUB for DOS
- USBメモリルートへ下記ファイルをコピー
- grub.exe
- menu.lst
Linux インストーラ
- 下記ディレクトリへ其々のインストール用カーネル(linux, vmlinuz など)と ミニルート(initrd.img, initrd.gz など)をコピー
/debian
/fedora
/ubuntu
/vine
Memtest86+
- syslinuxディレクトリへ下記ファイルをコピー
- memtest86+-x.xx.bin を memtest にリネームしてコピー
syslinux.cfg 作成
syslinux
ディレクトリにブートオプション設定ファイル syslinux.cfg を作成しませう。
DEFAULT /syslinux/menu.c32 MENU TITLE SYSLINUX Boot Options Menu PROMPT 0 KBDMAP /syslinux/jp106.kbd MENU ROWS 14 MENU TABMSGROW 19 MENU CMDLINEROW 19 LABEL FDimage KERNEL /syslinux/memdisk APPEND initrd=/bootdisk/fdimage.img LABEL KNOPPIX 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 LABEL WinPE KERNEL /syslinux/chain.c32 APPEND ntldr=/bootmgr LABEL WinPEx86.iso KERNEL /grub.exe APPEND --config-file="find --set-root /WinPEx86.iso;map /WinPEx86.iso (0xff) || map --mem /WinPEx86.iso (0xff);map --hook;chainloader (0xff);rootnoverify (0xff)" LABEL FreeDOS KERNEL /syslinux/chain.c32 APPEND freedos=/kernel.sys LABEL FreeDOS-Balder KERNEL /syslinux/memdisk APPEND initrd=/bootdisk/balder10.img LABEL GRUB4DOS KERNEL /grub.exe APPEND --config-file="configfile /menu.lst" LABEL debian KERNEL /debian/linux APPEND vga=normal initrd=/debian/initrd.gz locale=ja_JP LABEL debian-gtk KERNEL /debian/gtk/linux APPEND vga=788 initrd=/debian/gtk/initrd.gz locale=ja_JP LABEL fedora KERNEL /fedora/vmlinuz APPEND initrd=/fedora/initrd.img devfs=nomount LABEL ubuntu KERNEL /ubuntu/linux APPEND vga=normal initrd=/ubuntu/initrd.gz locale=ja_JP LABEL vine KERNEL /vine/vmlinuz APPEND initrd=/vine/initrd.img devfs=nomount LABEL Memtest86+ KERNEL /syslinux/memtest LABEL poweroff MENU LABEL * Poweroff * KERNEL /syslinux/poweroff.com LABEL reboot MENU LABEL * Reboot * KERNEL /syslinux/reboot.c32
DEFAULT
- /syslinux/menu.c32 を指定MENU TITLE
- メニューのタイトルPROMPT
- 0 にしないとコマンドモードになるKBDMAP
- キーボード配列をJP仕様に(アンダースコアはShift-0)MENU ROWS
- メニュー行数(多い場合はスクロールで表示)MENU TABMSGROW
- メニュー下メッセージの行番号(項目数 +5 とする)MENU CMDLINEROW
- オプション編集時の行番号(項目数 +5 とする)- 最終行番号は 24
- ※
LABEL
は本来コマンドモード用で、メニュー用にはMENU LABEL
が指定できますが、とりあえず簡素化ということで
FDイメージ
memdisk
を使い、仮想FDドライブとしてオンメモリで起動。
この例では fdimage.img となってますが、実際のファイル名に変更してクダサイ。
LABEL FDimage KERNEL /syslinux/memdisk APPEND initrd=/bootdisk/fdimage.img
XP版MS-DOS起動ディスクやGRUB起動ディスクなど raw
オプションを付けないと起動できないかもしれません。
LABEL FDimage KERNEL /syslinux/memdisk APPEND raw initrd=/bootdisk/fdimage.img
※ 一部の小さなisoイメージなどもオンメモリでの起動が可能です。isoオプションを追記します。
LABEL ISOimage KERNEL /syslinux/memdisk INITRD /bootdisk/hoge.img APPEND iso
KNOPPIX 5.3.1CD
とりあえずデフォルトの設定だけですが。元の isolinux.cfg
から設定を抜き出してファイル参照のパスを絶対パスに変更。
LABEL KNOPPIX 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
KERNEL linux
を/KNOPPIX/linux
へ置換initrd=minirt.gz
をinitrd=/KNOPPIX/minirt.gz
へ置換
バージョン 6.x でもやり方は同じで。
Windows PE 2.0
SYSLINUXの chain.c32
モジュールで bootmgr をチェインロードします。
または、grub.exe でisoイメージからブート。
※ 前者の方法はNTシグネチャ関連なのかうまく行かないこともあるので、isoイメージの方が確実かも?
LABEL WinPE KERNEL /syslinux/chain.c32 APPEND ntldr=/bootmgr LABEL WinPEx86.iso KERNEL /grub.exe APPEND --config-file="find --set-root /WinPEx86.iso;map /WinPEx86.iso (0xff) || map --mem /WinPEx86.iso (0xff);map --hook;chainloader (0xff);rootnoverify (0xff)"
FreeDOS
前者がUSBメモリから直接(C:ドライブまたは A:,B:)、後者はFDイメージを仮想Aドライブとしてブート(USBメモリはC:またはB:)。
LABEL FreeDOS KERNEL /syslinux/chain.c32 APPEND freedos=/kernel.sys LABEL FreeDOS-Balder KERNEL /syslinux/memdisk APPEND initrd=/bootdisk/balder10.img
GRUB for DOS
KERNEL に grub.exe を指定するだけ。念のため configfile
でUSBメモリ内の menu.lst を指定。
LABEL GRUB4DOS KERNEL /grub.exe APPEND --config-file="configfile /menu.lst"
- めも
Linux インストーラ
基本的には、kernel と initrd を指定するだけ。他のオプション(パラメータ)はなしでも。
LABEL debian KERNEL /debian/linux APPEND vga=normal initrd=/debian/initrd.gz locale=ja_JP LABEL debian-gtk KERNEL /debian/gtk/linux APPEND vga=788 initrd=/debian/gtk/initrd.gz locale=ja_JP video=vesa:ywrap,mtrr LABEL fedora KERNEL /fedora/vmlinuz APPEND initrd=/fedora/initrd.img LABEL ubuntu KERNEL /ubuntu/linux APPEND vga=normal initrd=/ubuntu/initrd.gz locale=ja_JP LABEL vine KERNEL /vine/vmlinuz APPEND initrd=/vine/initrd.img
- めも
-
- 4.5. TFTP ネットブート用ファイルの準備 - Debian GNU/Linux インストールガイド
- Index of /pub/linux(Ringサーバ)
- Software archives(理研サーバ)
- 付録 B. ハードディスクやネットワーク上のサーバからインストールする場合 - Vine Linux 4.1 インストールガイド
Memtest86+
kernel に memtest
(バイナリ)を指定するだけ。
LABEL Memtest86+ KERNEL /syslinux/memtest
スクリーン・ショット
Tabキーを押すとブートオプションを編集できます。Enterでブート、Escでキャンセル。
※ アンダースコア_はShift-0です。
Escでコマンドライン・モードになります。何も入力せずにEnterを押すとメニューに戻ります。
もっと入れたい!
- InetBoot (KNOPPIX 5.3.1 Remastered CD)
- SystemRescueCd
- PING(Partimage Is Not Ghost)
- Clonezilla Live
- Parted Magic
- Puppy Linux
- SLAX
- Berry Linux
- Ecolinux
- INSERT+ 1.2.18
- PLoP Linux
- Paragon Backup & Recovery
- Seagate Disc Wizard (True Image)
- True Image WD Edition
- ネットワークブート用起動ディスク
とりあえずは、サブディレクトリにファイルをコピーし、sylinux.cfg
に追記するだけでもいいのですが、選択オプションの多い場合など、メニューの項目が増えすぎて別ファイルに切り替えないとシンドイこともあるかと。
- メニューを切り替えるには
-
Linux LiveCDの元々のブート設定ファイルである
isolinux.cfg
などを表示します。/syslinux/syslinux.cfg
に追記
LABEL hoge KERNEL /syslinux/menu.c32 APPEND /hoge/isolinux.cfg
しかしながら、元の isolinux.cfg は殆ど場合相対パスでファイル名のみ記述となってるので、これをルートからの絶対パスに変更する必要があります。
- DEFAULT行の変更
DEFAULT /syslinux/menu.c32
Esc → Enter で最初のメニューに戻れます。
- ファイルのパスの変更
KERNEL /hoge/vmlinuz APPEND vga=788 initrd=/hoge/initrd.img
この他にもファイルの参照があればすべて絶対パスへ変更します。
また、ISOイメージの内容をサブディレクトリにコピーした場合は原則としてオプションの指定が必要になります。
InetBoot (KNOPPIX 5.3.1 Remastered CD)
※HTTPサーバが必要です。KNOPPIX起動後はUSBメモリの差換えが可能です。
HTTPサーバのisoイメージをマウントしてブートします。
- Index of /pub/linux/oscircular/iso/inetboot-20080731
linux
とminirt.gz
をダウンロード
- USBメモリに
inetboot
ディレクトリを作成 inetboot
ディレクトリへダウンロードファイルをコピー
/syslinux/syslinux.cfg
に追記
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
【注意】IPアドレスをサーバのものに合わせて修正してクダサイ!
- HTTPサーバの設定
-
※Windowsなら下記の AN HTTPD が簡単かも。
- isoイメージのダウンロード
- Index of /pub/linux/knoppix/iso
- ファイル名
knoppix_v5.3.1CD_20080326-20080520.iso
- ※通常版ではなく、Remaster版の方なのでご注意!
- HTTPサーバのドキュメントルートにisoイメージをコピー
- AN HTTPD の初期設定では、httpd.exe のあるディレクトリ
- isoイメージのダウンロード
- めも
SystemRescueCd
※【注意】systemrescuecd-x86-1.5.0.iso
の例
- USBメモリに
sysres15
ディレクトリを作成 sysres15
ディレクトリへisoイメージ内の下記をコピー- すべてそのまま
isolinuxディレクトリの内容後はそのまま
/syslinux/syslinux.cfg
に追記
LABEL SystemRescueCd KERNEL /syslinux/menu.c32 APPEND /sysres15/isolinux/isolinux.cfg
/sysres15/isolinux/isolinux.cfg
を編集- 1行目:
DEFAULT /syslinux/menu.c32
- 2行目:削除
- ファイル参照のパスをすべて絶対パスへ変更
- APPEND行に
scandelay=5 subdir=sysres15
を追記 - 2行目:下記 LABEL を挿入追記
- 1行目:
- 2行目に挿入追記
LABEL default KERNEL /sysres15/isolinux/rescuecd APPEND initrd=/sysres15/isolinux/initram.igz scandelay=5 subdir=sysres15
- めも
PING(Partimage Is Not Ghost)
※【注意】バージョン 3.00.02
の例
- USBメモリに
ping
ディレクトリを作成 ping
ディレクトリへisoイメージ内の下記をコピー- すべてそのまま
/syslinux/syslinux.cfg
に追記
LABEL PING KERNEL /ping/kernel APPEND vga=normal devfs=nomount pxe ramdisk_size=55000 load_ramdisk=1 init=/linuxrc prompt_ramdisk=0 initrd=/ping/initrd.gz root=/dev/ram0 rw noapic nolapic lba combined_mode=libata ide0=noprobe nomce pci=nomsi irqpoll quiet
Clonezilla Live
※【注意】clonezilla-live-1.2.3-27.zip
の例
- USBメモリに
live
ディレクトリを作成 live
ディレクトリへ展開した下記ファイルをコピー- liveディレクトリの内容
- syslinuxディレクトリの内容
/syslinux/syslinux.cfg
に追記
LABEL Clonezilla KERNEL /syslinux/menu.c32 APPEND /live/syslinux.cfg
/live/syslinux.cfg
を編集- 4行目:
DEFAULT /syslinux/menu.c32
- 4行目:
- GRUB for DOS の CD-ROM Emulation
-
isoイメージからブートします。あんまり確実とは言えないかも。
下記は、
menu.lst
に追記して GRUB for DOS から起動する例。- isoイメージをルートに保存
menu.lst
に下記を追記
title Linux Live == clonezilla-live-1.2.3-27.iso (from iso) find --set-root /clonezilla-live-1.2.3-27.iso map --heads=0 --sectors-per-track=0 /clonezilla-live-1.2.3-27.iso (0xff) map --hook root (0xff) kernel /live/vmlinuz boot=live union=aufs noswap nolocales noprompt ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_keymap="" ocs_live_batch="no" ocs_lang="ja_JP.UTF-8" vga=791 ip=frommedia toram=filesystem.squashfs findiso=/clonezilla-live-1.2.3-27.iso initrd /live/initrd.img
Parted Magic
※【注意】pmagic-usb-4.8.zip
の例
- USBメモリに
pmagic
ディレクトリを作成 pmagic
ディレクトリへ下記をコピー- boot\syslinux ディレクトリの内容
- pmagic ディレクトリの内容
/syslinux/syslinux.cfg
に追記
LABEL Parted_Magic KERNEL /syslinux/menu.c32 APPEND /pmagic/syslinux.cfg
/pmagic/syslinux.cfg
を編集- 1行目に挿入追記:
DEFAULT /syslinux/menu.c32
- ファイル参照のパスを変更
- 挿入追記:
MENU HELPMSGROW 20
- 1行目に挿入追記:
- GRUB for DOS の CD-ROM Emulation
-
isoイメージからブートします。設定が楽ですが、あんまり確実とは言えないかも。
- isoイメージをルートに保存
- syslinux.cfgに追記
LABEL PartedMagic(from-iso) KERNEL /grub.exe APPEND --config-fie="map /pmagic-4.8.iso (0xff) || map --mem /pmagic-4.8.iso (0xff);map --hook;chainloader (0xff)"
※ ルート以外にコピーする場合は、追加パラメータ指定(例:
iso_filename=/syslinux_multi/pmagic-4.8.iso
)が必要。下記は、
menu.lst
に追記して GRUB for DOS から起動する例。title Linux Live == Parted Magic 4.8 (from /syslinux_multi/pmagic-4.8.iso) find --set-root /syslinux_multi/pmagic-4.8.iso map /syslinux_multi/pmagic-4.8.iso (hd32) map --hook root (hd32) kernel /pmagic/bzImage edd=off noapic load_ramdisk=1 prompt_ramdisk=0 rw vga=791 loglevel=0 max_loop=256 keymap=jp106 iso_filename=/syslinux_multi/pmagic-4.8.iso initrd /pmagic/initramfs
Puppy Linux
※【注意】puppy-4.1.2.1-JP.iso
の例
- USBメモリに
puppy
ディレクトリを作成 puppy
ディレクトリへisoイメージ内の下記をコピー- すべてそのまま
/syslinux/syslinux.cfg
に追記
LABEL Puppy KERNEL /puppy/vmlinuz APPEND initrd=/puppy/initrd.gz psubdir=puppy
- めも
-
- USBメモリのみ検索 -
pmedia=usbflash
- USB CDのみ検索 -
pmedia=usbcd
- USBメモリのみ検索 -
SLAX
※【注意】slax-ja-6.0.9-1.iso
の例
- USBメモリに
slax6
ディレクトリを作成 slax6
ディレクトリへisoイメージ内の下記をコピー- すべてそのまま
/syslinux/syslinux.cfg
に追記
LABEL SLAX6 KERNEL /syslinux/menu.c32 APPEND /slax6/boot/slax.cfg
/slax6/boot/slax.cfg
を編集- 3行目:
DEFAULT /syslinux/menu.c32
- ファイル参照のパスをすべて絶対パスへ変更
- APPEND行に
slax=slax6/
を追記
- 3行目:
Berry Linux
※【注意】berry-1.00.iso
の例
- USBメモリに
BERRY
ディレクトリをコピー - Setup ディレクトリ内の vmlinuz と initrd.gz を
BERRY
ディレクトリへコピー
/syslinux/syslinux.cfg
に追記
KERNEL /BERRY/vmlinuz APPEND initrd=/BERRY/initrd.gz cdrom lang=ja video=vesa:ywrap,mtrr vga=785 splash=silent overlay=/berry/berry.img
Paragon Backup & Recovery
※ Normal Mode のみの起動となります。
- USBメモリに
paragon
ディレクトリを作成 paragon
ディレクトリへ作成した Recovery Media(またはC:\Program Files\Paragon Software\Backup and Recovery 10 Free Edition\iso\bootcd.iso
)内の下記ファイルをコピー- すべてそのまま
/syslinux/syslinux.cfg
に追記
LABEL Paragon KERNEL /paragon/vmlinuzp APPEND initrd=/paragon/initrd.gz vga=0x314 language=en_US.UTF-8 medialable=
Seagate DiscWizard (True Image)
- USBメモリに
ti
ディレクトリを作成 ti
ディレクトリへ作成したメディアの下記ファイルをコピー- Recovery Manager ディレクトリ内のファイル
/syslinux/syslinux.cfg
に追記
LABEL Seagate_DiscWizard KERNEL /ti/kernel.dat APPEND initrd=/ti/ramdisk.dat /S rw mbrcrcs=on video=vesa vga=791 load_ramdisk=1 prompt_ramdisk=0 ramdisk_size=32768 quiet
True Image WD Edition
- USBメモリに
ti_wd
ディレクトリを作成 ti_wd
ディレクトリへ作成したメディアの下記ファイルをコピー- Recovery Manager ディレクトリ内のファイル
/syslinux/syslinux.cfg
に追記
LABEL TrueImage_WD_Edition KERNEL /ti_wd/kernel.dat APPEND initrd=/ti_wd/ramdisk.dat /S rw mbrcrcs=on video=vesa vga=0x314 load_ramdisk=1 prompt_ramdisk=0 ramdisk_size=40948 quiet
ネットワークブート用起動ディスク
(PXE)ネットワークワークブート非対応PCでネットワークブートする際に使います。
※ 対応PCで使うと若干遅くなったりします。GRUB for DOS の CD ROM Emulation(ISOイメージからブート)などは使えないことがあります。
- PXE-On-A-Disk(FDイメージ)
- pxe-on-a-disk.floppy を
syslinux
ディレクトリへコピー - pxeon.img にリネーム
/syslinux/syslinux.cfg
に追記
LABEL PXE-on-a-disk KERNEL /syslinux/memdisk APPEND /syslinux/pxeon.img
- ROM-o-matic.net: for gPXE version git
- Choose an output format
Linux kernel (SYSLINUX/GRUB/LILO) loadable image (.lkrn)
を選択
- Choose a NIC type
all-drivers
を選択
- [Get Image] をポチっと
- Choose an output format
こちらは(ディスクイメージではないですが)gPXEにも対応の汎用ROMイメージ。
- gpxe-x.xx-gpxe.lkrn を
syslinux
ディレクトリへコピー - gpxe_all.krn にリネーム
/syslinux/syslinux.cfg
に追記
LABEL gPXE-git KERNEL /syslinux/gpxe_all.krn
マルチブートDVD/CD
※ CDだと700 MBしか入りませんけどね...私は2枚に分けたりしてます。ってか、KNOPPIXはそのまま1枚でええやん!ですか。
ブートローダに ISOLINUX を使い、USBメモリの内容そのままで、ISOイメージを作成します。
上記で作成したUSBメモリ内のファイルを作業用ディレクトリコピー、ファイルを追加して作成...
【注意】/boot/isolinux
ディレクトリがあると、そちらが優先されてしまいます。/boot/isolinux
ディレクトリを作らないように。ファイル名は英数30文字以内、アンダースコア(_)以外の記号を使わないようにしませう。
- ■ ファイル追加
-
【追記】ルートにある FreeDOS の kernel.sys と command.com は削除しておいた方がいいかも。選択しちゃうとややこしいことになりそうなので。
作業ディレクトリ │ │ cygwin1.dll │ mkisofs.exe │ ├─isolinux(ディレクトリ作成) │ isolinux.bin │ isolinux.cfg │
- ルートにファイルをコピー :
- cygwin1.dll と mkisofs.exe
- CDRtoolsの フロントエンド の CDRtoolsバイナリ より
- cygwin1.dll と mkisofs.exe
isolinux
ディレクトリ作成- SYSLINUX のファイル群(
core\isolinux.bin
)から isolinux.bin をコピー
- SYSLINUX のファイル群(
isolinux
ディレクトリにファイルisolinux.cfg
作成
isolinux.cfg
の内容は下記のみで
INCLUDE /syslinux/syslinux.cfg
ISOLINUX の本来の設定ファイルは isolinux.cfg なのですが、
syslinux.cfg
を読み込みます。設定変更は syslinux.cfg で行います。CDブートのみに設定したい場合はこちらに追記します。 - ルートにファイルをコピー :
- ■ イメージ作成
-
- コマンドプロンプトから(管理者として)実行します
pushd 作業ディレクトリのパス mkisofs -v -l -r -J -o ../isolinux.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table .
※ 一つ上のディレクトリに
isolinux.iso
が作成されます。※CD-R/-RWメディアでは、あまり問題ないかと。
- CD-R, CD-RW, DVD-Rメディア
- マルチドライブ - 読み取り・ブート可能
- DVD-ROM/CD-RWコンボドライブ - 読み取り・ブート可能
- DVD-RWメディア
- マルチドライブ - 読み取り・ブート可能
- DVD-ROM/CD-RWコンボドライブ - 読み取り不可
ネットワークブート
Windowsでは、TFTPD32 でDHCP/TFTPサーバを稼動できます。
※ 一部のものはネットワークブートでは使えません。例えば、KNOPPIX通常CDではローカルのUSBメモリ/CD/HDに本体を探しに行きますので、起動後にエラー(いわゆる「シェルに落ちる」)となります。でも、USBブート非対応PCにて、ネットワークブート後にUSBメモリやUSB CDから起動させる、なんて使い方はできます。
PXEサーバの設定
- USBメモリの内容を作業用ディレクトリにコピーしておく
- 作業ディレクトリに、SYSLINUX の
core\pxelinux.0
のファイルをコピーする - 作業ディレクトリに、TFTPD32 のファイルをコピーする
- PXELINUX の設定ファイル default を作成する
- TFTPD32 : a opensource TFTP server/service for windows : TFTP server
- ダウンロード:TFTP server (
tftpd32 standard edition (zip)
)
- ダウンロード:TFTP server (
作業ディレクトリ | | pxelinux.0 | tftpd32.chm | tftpd32.exe | tftpd32.ini | +---- pxelinux.cfg (ディレクトリ) | default |
pxelinux.cfg\default
INCLUDE /syslinux/syslinux.cfg
PXELINUX の本来の設定ファイルは pxelinux.cfg
ディレクトリにあるファイルなのですが、 syslinux.cfg を読み込みます。設定変更は syslinux.cfg で行います。PXEブートにのみ設定する場合は default に追記します。
- DHCP/TFTPサーバの設定
設定変更・ファイル追加
下記のものは、USBメモリブートと同じ設定で起動できます。
- FDイメージ
- Linux (ネットワーク)インストーラ
- Memtest86+
TFTPD32だけで起動可能ですが、若干の設定変更・追加が必要なもの
- Windows PE 2.0
- GRUB for DOS
- Windows PE 2.0
-
PXEブート用のファイルを追加します。
- 作成時にマウントした
mount\Windows\Boot\PXE\
にある bootmgr.exe を作業ディレクトリルートにコピー mount\Windows\Boot\PXE\
にある pxeboot.n12 をboot
ディレクトリにコピーpxeboot.n12 を pxeboot.0 にリネーム
/syslinux/syslinux.cfg
編集 or 追記
LABEL WinPE-PXE PXE /boot/pxeboot.n12
※ 尚、PE 2.1 (Vista SP1), PE 3.0 (7) では、TFTPD32の設定で
Option Negotiation
をオン(PXE Compatibility
はオフ)にしないと起動できないようなので注意。isoイメージからのブートの場合は...
/syslinux/syslinux.cfg
編集 or 追記
LABEL WinPEx86.iso-PXE KERNEL /grub.exe APPEND keeppxe --config-file="pxe basedir /;map --mem (pd)/WinPEx86.iso (0xff);map --hook;chainloader (0xff)"
- 作成時にマウントした
- GRUB for DOS
-
※ USBメモリブートと同じ設定ではPXEサーバ上のファイルをロードできません。
/syslinux/syslinux.cfg
編集 or 追記
LABEL GRUB4DOS-PXE KERNEL /grub.exe APPEND keeppxe --config-file="pxe basedir /;configfile (pd)/menu.lst"
PXEでもっと入れたい!
TFTPD32だけで起動。USBメモリと同じ設定でおk
- PING(Partimage Is Not Ghost)
- Paragon Backup & Recovery
- Seagate Disc Wizard (True Image)
- True Image WD Edition
HTTPサーバが必要ですが、USBメモリブートと同じ設定でいいもの
- InetBoot (KNOPPIX 5.3.1 Remastered CD) --- + HTTPサーバ
TFTPD32だけで起動可能ですが、若干の設定変更・追加が必要なもの
- SystemRescueCd
- Clonezilla Live
- Parted Magic
- SystemRescueCd
-
※【注意】
systemrescuecd-x86-1.5.0.iso
の例- 一例です:APPEND行にパラメータを 編集 or 追記
LABEL default KERNEL /sysres15/isolinux/rescuecd APPEND netboot=tftp://192.168.0.2/sysres15/sysrcd.dat initrd=/sysres15/isolinux/initram.igz scandelay=5
- Clonezilla Live
-
※【注意】
clonezilla-live-1.2.3-27.zip
の例- 一例です:
- APPEND行の
ip=frommedia
を消す fetch=
でURLを指定
- APPEND行の
LABEL Clonezilla KERNEL /live/vmlinuz1 APPEND initrd=/live/initrd.img boot=live union=aufs noswap nolocales noprompt ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_keymap="" ocs_live_batch="no" ocs_lang="ja_JP.UTF-8" vga=791 fetch=tftp://192.168.0.2/live/filesystem.squashfs
- 一例です:
- Parted Magic
-
※【注意】
pmagic-usb-4.8.zip
+ の例- Browse Parted Magic Files on SourceForge.net
pmagic-pxe-4.8.zip
をダウンロード
※【USBメモリブートでの作業後に追加で実行
- 一例です:
- 作業ディレクトリの
pmagic
ディレクトリへPXE版のpmagic\initramfs
をコピー /pmagic/syslinux.cfg
-LABEL
のlive
とlowram
は使えないので項目を消す
- 作業ディレクトリの
- Browse Parted Magic Files on SourceForge.net
別にNFSサーバが必要なもの。
- KNOPPIX 5.3.1CD (NFS)
- INSERT+ 1.2.18 (NFS)
- めも
関連リンク
- SYSLINUX
- GRUB for DOS
- Etherboot/gPXE
- FDイメージ関連
-
- FDからイメージ作成・イメージをFDへ書き込み
- 仮想FDドライブ - マウント、イメージの展開
- FDイメージの展開
- Universal Extractor | LegRoom.net ( UniExtract Binary Archive)
- FD Linux
- BG-Rescue Linux (rescue-0.9.1.img)
- FreeDOS
- オフィシャルの起動ディスクイメージ (fdboot.img)
- 私的めも
-
- さらに「ややこしや」版
-
手前味噌というか拙作でありますが
私的設定ファイルをアップなんてしとりますが、私のはかなり偏ってますんで、設定方法を覚えてしまえば自分で作る方がベターだと思われます。
いろいろ
- KERNEL コマンドの注意点
- コマンドラインで修正してブート
- 内蔵HDをチェインロード
- 内蔵HDのWindowsをチェインロード
- USBメモリを2台目のHD扱いでDOSをブート
- FreeDOSの設定ファイル
- グラフィカル・メニュー
- メニューについてもっと詳しく! (menu.c32, vesamenu.c32)
- chain.c32 についてもっと詳しく!
- 「USBメモリブートに対応してません!(><)」
KERNEL コマンドの注意点
syslinux.cfg
にて KERNEL
文を使う場合の注意事項です。まぁ問題になる場合は少ないかもですが。
- KERNEL 文ではファイルの拡張子でブートの種類を判断してます
- 例として、拡張子なしは「Linux kernel image」拡張子
.bin
は「CD boot sector」なのでplpbt.bin
をそのまま指定してもブートできませぬ。plpbt にリネームすればおkです - ファイルの拡張子に関わりなくブートの種類を指定できる別のコマンドがあります
- LINUX - linux kernel image.
- BOOT - Bootstrap program (.bs, .bin)
- BSS - BSS image (.bss)
- PXE - PXE Network Bootstrap Program (.0)
- FDIMAGE - Floppy disk image (.img)
- COMBOOT - COMBOOT program (.com, .cbt)
- COM32 - COM32 program (.c32)
コマンドラインで修正してブート
設定ファイル (syslinux.cfg
) に記述ミスがあっても、コマンドラインの書式を覚えておけばなんてことないのだ!
【注】 jp106.kbd ではアンダースコア (_) はShift-0となってます。
- メニューを選択
- Tabキー押す
- パスなどを修正 or オプションを追記したり消したり
- Enterでブート
または、Escキーでコマンドラインモードから直接指定するとかでも。
尚、コマンドラインでの書式はというと、こんな石原莞爾
<kernelのファイル名> <APPEND行の内容>
例えば、FDイメージのブートなら
boot: /syslinux/memdisk initrd=/bootdisk/hogehoge.img
これでいいのだ!(柳の下は下柳)
内蔵HDをチェインロード
※GRUBからでもできますけど...
間違ってUSBメモリからブートしちゃった時とか書いとくと便利。
LABEL disk1 localboot 0x80 LABEL disk2 localboot 0x81 LABEL floppy localboot 0x00
HDのパーティションを指定するには、chain.c32
を使います。
hd0 0
(hd0
) - 第1HD(hd0)のMBRhd0 1
- 第1HDの第1パーティション
syslinux.cfg
に追記
LABEL disk1 KERNEL /syslinux/chain.c32 APPEND hd0 0 LABEL disk1-1 KERNEL /syslinux/chain.c32 APPEND hd0 1
USBメモリが第1HD、内蔵HDが第2HDとなることが多いので、Windowsの起動など、順序を入換える必要があるかも。
syslinux.cfg
に追記
LABEL disk2-swap KERNEL /syslinux/chain.c32 APPEND hd1 0 swap
内蔵HDのWindowsをチェインロード
(あくまで一例ですが)基本的にはこんなかんじなのですが...
- SYSLINUX - chain.c32 使用(一例)
LABEL Windows KERNEL /syslinux/chain.c32 APPEND hd0 0
※ MBRにWindowsブートストラップがない場合や第1パーティション以外の場合はパーティション番号を指定します。例: hd0 2
- GRUB for DOS(一例)
title Windows find --set-root /ntldr chainloader /ntldr
※ Vista以降は、ntldr
= bootmgr
しかしながら、USBメモリブートではUSBメモリが第1HD、内蔵HDが第2HDとして認識されてる場合が多い(殆ど?)のです。原則的にはですが(Vista以降は少し違うかも)、Windowsは第2HDからだとブートしません。よって、この場合は順序を入換えてからブートさせます。
- SYSLINUX - chain.c32 使用(一例)
LABEL Windows-swap KERNEL /syslinux/chain.c32 APPEND hd1 0 swap
- GRUB for DOS(一例)
title Windows swap map (hd0) (hd1) map (hd1) (hd0) map --hook find --set-root /ntldr chainloader /ntldr
title Windows swap find --set-root --ignore-floppies --ignore-cd /ntldr map () (hd0) map (hd0) () map --rehook find --set-root --ignore-floppies --ignore-cd /ntldr chainloader /ntldr
USBメモリを2台目のHD扱いでDOSをブート
BIOSの仕様に依存すると思われますが、殆どの場合USBメモリでブートした際は(FD扱いでブートした場合を除き)、1台目のHDとして認識されます。
2台目としてブートさせたい場合は、GRUBのmapコマンドでHDの順序を入替、FDイメージでブートするのが安全かな。
- GRUB起動後にコマンド入力(menu.lstに書いといてもいいかな)
map (hd0) (hd1) map (hd1) (hd0) map --hook root (hd1,0) map --mem /bootdisk/balder10.img (fd0) map --memdisk-raw=1 map --hook chainloader (fd0)+1 rootnoverify (fd0) boot
FreeDOSの設定ファイル
FDイメージブートでなく、USBメモリから直接ブート時に使いたい場合です。
起動時に HIMEM.EXE とキーボードドライバを読み込みます。
- USBメモリに freedos ディレクトリを作成しコマンド類を移動
config.sys
,autoexec.bat
をルートに作成
USBメモリ | | autoexec.bat | config.sys | | command.com | kernel.sys | +---- freedos (ディレクトリ) | keyb.exe | keyboard.sys | keybrd2.sys | himem.exe | edit.exe | devload.com |
config.sys
!SWITCHES=/E menucolor=7,0 menudefault=0,100 menu menu FreeDOS menu menu 0 - Clean boot menu 1 - load HIMEM.EXE menu 0?shell=command.com command.com /P 1?DEVICE=.\FREEDOS\HIMEM.EXE 1?DOSDATA=UMB 1?DOS=HIGH,UMB !FILES=20 !BUFFERS=20 !LASTDRIVE=Z
autoexec.bat
@echo off for %%x in (C D E F G H I J ) do if exist %%x:\freedos\keyb.exe set dosdrv=%%x: if not "%dosdrv%"=="" GOTO set_path if exist A:\freedos\keyb.exe set dosdrv=A: if not "%dosdrv%"=="" GOTO set_path if exist B:\freedos\keyb.exe set dosdrv=B: :set_path set path=%dosdrv%\freedos keyb jp
グラフィカル・メニュー
menu.c32 の代わりに vesamenu.c32 を使うとグラフィカルなメニュー画面となります。
\com32\menu\vesamenu.c32
をsyslinux
ディレクトリへコピーsyslinux\syslinux.cfg
の1行目を編集
DEFAULT /syslinux/vesamenu.c32
背景画像の指定もできます。サイズ640x480のjpgかpngが指定可能。
試しに sample\m16-640x640-syslinux.jpg
を、(syslinux.jpg にリネームして)指定してみます。
syslinux.cfg
に追記
MENU BACKGROUND /syslinux/syslinux.jpg
なかなかキレイ?
※ 但し、かなり古いマシンだと表示できないこともあるのでご注意。
メニューについてもっと詳しく!
拙作めもですが...
chain.c32 についてもっと詳しく!
パーティション番号の指定以外の方法もいろいろあります。
- LABEL(ボリューム ラベル)を指定
LABEL boot_part_win7fs COM32 /syslinux/chain.c32 APPEND label=win7fs ntldr=/bootmgr
- disk ID を指定(※ fdisk コマンドなどで確認可)
LABEL mbr_serial COM32 /syslinux/chain.c32 APPEND mbr:0x0ec8694c
- NTLDR, BOOTMGR のチェインロード(Windows 起動)
-
※ chain.c32 でNTLDRやBOOTMGRのチェインロードは可能です。しかしながら、USBメモリブート時はややこしいので GRUB for DOS の方が確実だと思います。
- NTLDR (Windows NT/2000/XP/2003) のチェインロード
LABEL boot_part_win7fs COM32 /syslinux/chain.c32 APPEND hd0,1 ntldr=/ntldr
- BOOTMGR (Windows Vista/7/2008/PE 2.0) のチェインロード
LABEL boot_part_win7fs COM32 /syslinux/chain.c32 APPEND hd0,1 ntldr=/bootmgr
と、基本はこうなのですが、USBメモリブート時にはUSBメモリが hd0, 内蔵HDが hd1 となります。Windows(PE除く)は原則、第2HDからブートできないので前述のとおり swap などの指定が必要になるかと。(※ USBメモリの NTLDR から第2HDの Windows のブートは可能です。でも boot.ini の書き換えとかややこしいかも。)
「USBメモリブートに対応してません!(><)」
あくまで、「at your own risk」なツールです。「バッチシ確実!」とは言えませんけど。
起動ディスク(FD,CD,ネットワーク)などからブートして、USB メモリ/HD をチェインロードできる(かもしれない)ブートローダです。
- PLoP - Bootmanager
- PLoP Boot Manager Downloads
-
plpbt-5.x.x.zip
をダウンロード
-
マルチブートCD,ネットワークブートに組み込む場合は下記の手順にて。(※ USBメモリに入れても意味ないです)
- syslinuxディレクトリへ下記ファイルをコピー
- plpbt.bin を
plpbt にリネームしてコピー
- plpbt.bin を
/syslinux/syslinux.cfg
に追記
/syslinux/syslinux.cfg
LABEL PLoP-Boot-Manager LINUX /syslinux/plpbt.bin
USB 1.1 では起動まで非常に遅いのでご注意!止まってしまうこともあります。Windows PE では1時間以上かかったり、とか。
ほなね