山本小鉄的解説者の明日はどっちだ!
【追記】あっと、小鉄氏の解説は大好きでした。ただ、たまにおちゃめがあったかなと。
古舘「お〜っと、これはなんという技ですか?小鉄さん」
小鉄「う〜ん、これは効いてますね!」いや、だからあの...
みたいな(w
山本小鉄的解説者の明日はどっちだ!
【追記】あっと、小鉄氏の解説は大好きでした。ただ、たまにおちゃめがあったかなと。
古舘「お〜っと、これはなんという技ですか?小鉄さん」
小鉄「う〜ん、これは効いてますね!」いや、だからあの...
みたいな(w
最近こんなんばっかですみません...えー我が家のサブのデスクトップ機はUSBブートもPXEネットワークブートにも対応していませんがCDドライブはまだまだ健在なのです。CD-RWでもしっかりブートしてくれます。そんなわけでメンテナンス用にこんなCDを作ってたりします。そこはそれ的(何)私的めもシリーズ第?弾。(※別名「マイノリティ向けレポート」w)
これって実際に作ってみると非常に簡単で面白いのですが、あれやこれやと考えて私的バージョンアップが頻繁になる、つまりしょっちゅうカスタマイズ欲求が発生してしまうという弊害(?)もあったりします(汗)。あれもしたいこれもしたいで、ほとんど使わないと思われるDOSイメージなんかにやたら凝ってしまったり、とか(w。
LiveCD版Linuxなどisolinuxをブートローダに使っているものはisoイメージそのままでは使えませんが(※ 正確には kernel と initrd 以外にルートイメージがあるものはisoイメージそのままではだめ、ルートイメージ不要のものでもisolinuxディレクトリの重複に注意)、ファイルを適切に展開すればチェーンロード(つまり多段マルチブート)が可能。
作成手順については下記ページの解説がとても詳しくてわかりやすいです。とりあえず通読されることをおすすめ。
この「bcdw-2.0a1」ディレクトリが仮想CDディレクトリとなります。(名前は任意でいいです)
isoイメージ作成ツールを準備。
BCDW.INIを開く。
[MenuItems] C:\ ; Boot from drive C: \WNPE\setupldr.bin ; Bart's Preinstalled Environment \BCDW\bcdw2dos.ima \VC\vc.com ; Volkov Commander \I386\setupldr.bin ; Microsoft Windows XP Setup \BCDW\bcdw2dos.ima \WIN9X\setup.exe ; Microsoft Windows 98 Setup /linux/isolinux.bin /linux/kernel ramdisk_size=16384 initrd=/linux/rescue.gz root=/dev/ram0 rw ; Linux \ACRONIS\tis.iso ; Acronis TrueImage Server :PowerOff ; Power Off : \boot\loader.bin ; BCDW for CD Shell demo script (\boot) \cdsh\loader.bin ; BCDW for CD Shell demo script (\cdsh) \bscript\loader.bin ; BCDW for Boot Scriptor demo script \bcdw\gfxdemo.ima ; BCDW for DOS demo script \floppy.ima ; Password protected option ;;; 5ebe2294ecd0e0f08eab7690d2a6ee69
不要部分をカットする。
[MenuItems] C:\ ; Boot from drive C: :PowerOff ; Power Off
アイテムの追加ですが、基本がこんなかんじ。isoイメージやFDイメージは仮想CDディレクトリのルートに保存したとして。
[MenuItems] C:\ ; Boot from drive C: \dimage.img ; DriveImage with NetBEUI \memtest86-3.2.iso ; MemTest86 :PowerOff ; Power Off
ブートはしても(ブートローダは起動しても)、本体が起動しないものもあり。本体が起動可能なものでも、起動後に仮想CDがあるわけではないのですね。
基本的にはこんなかんじでせうか
isolinux.cfg
が読み込まれてしまったりisolinuxなどのブートイメージを使わないCDイメージやFDイメージ、USBメモリのddイメージ(syslinuxでマルチブート化イメージ含む)などはそのまま指定するだけで使えたのでそれ以外でファイルの展開が必要なものについてです。
isolinuxについてはisolinux.cfgを編集すればマルチブートで(labelを指定して)選択起動できます。というかisolinuxを使うOSを複数追加する場合はisolinux.cfgの編集は必須かと(多分...)。つまり、isolinuxを使うイメージが複数ある場合は、isolinux.cfgは一つにまとめる(isolinux.cfgは/boot/isolinux
, /isolinux
, /
.の順序で検索される)
ということで。この際、kernelとinitrdファイルのパスに注意すること。
isolinuxではなくブート用2.88MB FDイメージを指定。
\berry\boot.img ; Berry Linux 0.7.9
sysrcd.datだけはルートに置かないとだめなもよう(※ subdir=sysrescd
などとして指定可能)。isolinux.cfgを編集すれば他のファイルについてはディレクトリにまとめてもいいようです。
\isolinux\isolinux.bin ; SystemRescueCd 0.3.4
\boot\isolinux\isolinux.bin ; HTTP-FUSE KNOPPIX501
\boot\isolinux.bin ; SLAX
追加モジュールについてはダウンロードしたモジュールを modules ディレクトリにコピーするだけ。(SLAX起動後にモジュール追加も可能)
/boot/isolinux/isolinux.cfg
があれば常にそれが優先となります。 menu.c32
(vesamenu.c32
) を使い BCDW.INI で指定すれば切替は可能ですが、/boot/isolinux/isolinux.cfg
がなく /boot/isolinux/linux
があると自動ロードされてしまうとかややこしいです。
/boot/isolinux/isolinux.cfg
を大元に設定するか、/boot/isolinux/
ディレクトリがない状態で /isolinux/isolinux.cfg
を大元に設定するのがいいかなと思いまする。(isolinux.bin
は最新版に置換しませう)
menu.c32(or vesamenu.c32)を使うとアイテムごとにメニューの切替が可能となります。大元のisolinux.cfgからそれぞれのアイテムの設定ファイルに切替します。最初の設定は結構面倒かもですけど...
注意点が以下の通り。
├─isolinux (※ディレクトリ作成) │ isolinux.bin (※ファイルをコピー) │ isolinux.cfg (※ファイルを作成) │ menu.c32 (※ファイルをコピー)
DEFAULT /isolinux/menu.c32 PROMPT 0 MENU TITLE Boot Options Menu LABEL systemrescuecd MENU LABEL ^1. SystemRescueCd 1.0.4 KERNEL /isolinux/menu.c32 APPEND /sysrescd/isolinux/isolinux.cfg LABEL slax MENU LABEL ^2. Slax-ja 5.1.8.1-3 KERNEL /isolinux/menu.c32 APPEND /slax/isolinux.cfg
default /sysrescd/isolinux/rescuecd append initrd=/sysrescd/isolinux/initram.igz subdir=sysrescd
\isolinux\isolinux.bin ; ISOLINUX -- Linux LiveCD
※「非エミュレーションモードでのロードセクタ数」に「4」を指定した方がいいかもしれません。
実行コマンドは下記の通り...
mkisofs -iso-level 4 -r -hide TRANS.TBL -T -b "bcdw/loader.bin" -no-emul-boot -boot-load-size 4 -o "(作成先パスとファイル名).ISO" "仮想CDディレクトリのパス"
以上、簡単そうに書いてみましたが最初は失敗があるかも(私は5、6回しました...あせ)。isoイメージ作成後はVMware Player などの仮想マシンでの確認、またはCD-RWの利用をおすすめしときます。
BCDWのサイトによると下記のやりかたでもいいのかな?(TRANS.TBLファイルなし)
mkisofs.exe -iso-level 4 -joliet -joliet-long -r -hide-rr-moved -force-uppercase -volid "RESCUE" -A MKISOFS -sysid "Win32" -b "bcdw/loader.bin" -no-emul-boot -boot-load-size 4 -hide boot.catalog -o "(作成先パスとファイル名).ISO" "仮想CDディレクトリのパス"
※ -volid
(または -V
)は、ボリュームIDの指定
【Bootable CD Wizard】を使う場合は必要ありませんが、ディレクトリ構成がpxelinux用(ネットワークブート)、syslinux用(USBメモリなどでブート)としても使えるので(設定ファイルはそれぞれ syslinux.cfg、pxelinux.cfg/default と違いありますが)忘れないようにめも。
isoイメージ作成に必要なファイルは、CDRtoolsバイナリに含まれる mkisofs.exe と cygwin1.dll だけ。
※あくまで一例ですが...
mkisofs -v -l -r -J -o ../isoimage.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table .
mkisofs -v -l -r -J -o "D:\isoimage.iso" -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table "D:\bootable_cd"
-o
-- 作成されるisoファイル名を指定-b
-- ブートローダを指定-no-emul-boot
--- '非エミュレーション' イメージであると指定。エミュレーションしない-c
-- ブートカタログを作成-v
-- 詳細を出力(画面上で)-l
-- 30 文字のファイル名を許可(※ DOSで使えなくなるかもなので注意)-r
-- Rock Ridge を使用。uid,gid を0にする、など。-J
-- Joliet-boot-info-table
-- CD-ROM の配置に関する情報の 56 バイトのテーブルが、ブートファイルのオフセット 8 に置かれることを指示する。(CdRecordフロントエンドでは「ブートファイルのオフセット8から56バイトにレイアウト情報テーブルを書き込む」にチェック)isolinux.cfgでのファイルの指定に注意(絶対パスで表記するなど)