上記に続きまして、マイノリティ向け(何)超私的メモ第4弾。
と言っても、大したもんではなく、syslinuxを使いsyslinux.cfgを編集すれば誰でもできちゃうレベルです。
- 入れたもの
- LiveCD版Linux - INSERT+ 1.2.18+ (ライブCDの部屋さん版)
- HTTP-FUSE-KNOPPIX501
- FDイメージ(2.88MBイメージ含む)
容量の関係で入れませんでしたが、VineやDebian、Fedora Coreなどのインストーラもおkでした。
■ 注意事項とか
- 大まかな手順は...
-
- Linuxでパーティションを切る
- 必要なファイルをコピーする
- syslinuxのインストール
- syslinux.cfgの編集
[1]以外はWindowsでやった方が簡単かも。仕上げにWindows上で
syslinux -ma <ドライブ名>:
しておくといいかも。 - 注意事項
-
いやぁドキュメントは一通り目を通しましたが英語なので、ほんまに目を通しただけ(汗)。
- ファイル名は8文字以内、または8文字以内+拡張子3文字
- 大文字・小文字もそのままにした方がいいみたい?
- LiveCD版Linuxのルートイメージファイルは(USBメモリの)ルートに置いた方がいいのかもしれない?
- iso(pxe)linuxで使える「localboot 0x80」などの指定は使えない模様
isoファイルの展開(抽出・解凍)はSuper ウルトラISOや
WinRAR7-Zip とかがいいかな。(ワンパターンw)
■ ファイルのコピー
Windows上で直接isoイメージを展開(抽出)するには Super ウルトラISO や 7-Zip などが便利です(※7-Zipで展開時の[BOOT]ディレクトリはブートセクタなので基本的に不要です)。
仮想CDソフトやWinRARなどでは、ファイル名がすべて大文字の8.3形式となってしまうことがあるため上記をおすすめします。
あくまで私のやり方です。ファイル名の重複とsyslinux.cfgを編集する際のパスの指定に注意すればいいだけ(だと思う...)。
- INSERT+ 1.2.18+
-
- CD内のINSERTディレクトリをディレクトリごとUSBメモリのルートにコピー
- CD内のルートにある.htmlファイルをUSBメモリのルートにコピー
- CD内のisolinuxディレクトリの中身をUSBメモリのINSERTディレクトリにコピー
- ※isolinux.* やboot.catは不要ですけど
- HTTP-FUSE-KNOPPIX 5.0.1
-
- USBメモリのルートにknoppixディレクトリを作成
- CD内のisolinuxディレクトリの中身をknoppixディレクトリにコピー
- ※isolinux.* やboot.catは不要ですけど
- FDイメージ
-
- USBメモリのルートに「fdboot」などの名前でディレクトリ作成
- FDイメージをfdbootディレクトリにコピー
- SYSLINUXをダウンロードして展開
- memdiskディレクトリ内のファイル memdiskをfdbootディレクトリにコピー
■ メニューを作成
※2ch(どのスレか忘れた...すんません)スレを参考にしました。
いっぱい入れるとラベル名を覚えるのが大変なのでブート時の表示用にメニューを作っちゃいます。ファイル名はとりあえずmenu.txtにしました。
あっと!多分改行コードをLFで保存しないと駄目かと思います。WindowsならLFを指定して保存できるテキストエディタを使いましょう(メモ帳はだめ)。
F1 Boot Menu. F2 F3 - KNOPPIX help. F4 - INSERT help. 1 - HTTP-FUSE-KNOPPIX 5.0.1 2 - HTTP-FUSE-KNOPPIX 5.0.1 text mode 3 - INSERT+ 1.2.18 4 - INSERT+ 1.2.18 text mode 5 - memtest 6 - GRUB 7 - MBM (Multible Boot Manager) 8 - MS-DOS (Windows 98) <以下略>
Fキーでメニューやhelpが出て、数字(アルファベットでも)1文字で選択するわけです。
ブートオプションを使う場合は、「1 toram」とかでおkでした。
■ syslinux.cfgの編集
コピー元のCD内にあるisolinux.cfgを参照しつつ編集。
まずファイルの先頭部分、ブート画面の設定
default 1 display menu.txt F1 menu.txt F2 knoppix/f2 F3 knoppix/f3 F4 insert/f2 prompt 1
promptを0にするとbootプロンプトは出ずにdefaultの1で起動する。時間指定するには timeout をミリ秒で指定。
続いてブートイメージの指定
label 1 kernel knoppix/linux append ramdisk_size=100000 init=/etc/init lang=ja.utf8 apm=power-off vga=791 initrd=knoppix/minirt.gz nomce quiet BOOT_IMAGE=knoppix label 2 kernel knoppix/linux append ramdisk_size=100000 init=/etc/init lang=ja.utf8 apm=power-off vga=791 initrd=knoppix/minirt.gz nomce quiet BOOT_IMAGE=knoppix 2 label 3 kernel insert/vmlinuz append ramdisk_size=100000 init=/etc/init lang=ja apm=power-off vga=791 initrd=insert/miniroot.gz nomce noapic BOOT_IMAGE=insert label 4 kernel insert/vmlinuz append ramdisk_size=100000 init=/etc/init lang=ja apm=power-off vga=normal initrd=insert/miniroot.gz nomce noapic BOOT_IMAGE=insert 2 label 5 kernel fdimage/memdisk append initrd=fdimage/memtestp.img label 6 kernel fdimage/memdisk append initrd=fdimage/grub.img floppy <以下略>
syslinux.cfgをUSBメモリのルートに置いた場合です。ディレクトリ内に置いた場合は/knoppix/linux
な風に絶対パスで指定。
syslinuxをインストール(Windowsなら syslinux.exe -ma <ドライブ名>:
)で一応完成となります。
■ めも - 2.88MB FDイメージ作成
【追記】間違っておりました。すみません。(<イメージファイル> が抜けてました...)
- Windows 98 起動ディスク
-
Windows 98 の2枚組み起動ディスクを一つのイメージにしました。
- Virtual Floppy Driveを起動して2.88MBを選択
- mkbt.exeで98起動ディスクイメージ(1枚目)からブートセクタを仮想FDドライブにコピー
mkbt -x <イメージファイル> <仮想FDドライブ名>:
- io.sys → msdos.sys → command.comの順番でコピー。その他のファイルをコピー
- Virtual Floppy Driveでイメージを保存
AUTOEXEC.BATはそのままでいいかな。
- PC DOS(DR-DOS) 起動ディスク
-
Norton Ghost やDriveImageなどのDOS起動用FDを一つのイメージにしました。
- Virtual Floppy Driveを起動して2.88MBを選択
- mkbt.exeで起動ディスクイメージ(1枚目)からブートセクタを仮想FDドライブにコピー
mkbt -x <イメージファイル> <仮想FDドライブ名>:
- ibmbio.com → ibmdos.com → command.comの順番でコピー。その他のファイルをコピー
- Virtual Floppy Driveでイメージを保存
必要ならAUTOEXEC.BATを編集。
※FreeDOS 1.0ではブートセクタコピー後に kernel.sys → command.com の順番でコピー
USB1.1や2.0、MSネットワーククライアントなども組み込んで選択起動できるイメージを作ってみました。(※でも私はDOS版のGhostは普段使ってなかったりします。CD版9.0があるので。何やってんだか...)
■ めも - FDイメージあれこれ
内蔵FDドライブのあるデスクトップ機とFDドライブのないノートPCで確認したこと。
- Windows XP で作成したMS-DOS起動ディスクイメージでは
起動できないraw
オプションで可能でした。
EMM386と相性が悪いのかな?他のDOSイメージでもEMM386をキャンセルすると正常起動できる場合がありました。
- FDイメージでブートした際、仮想的に書き込みが可能となる
変更分は保存されませんが。
- DOSイメージではUSBメモリ自身をドライバなしでBドライブとして認識可能な場合がある(内蔵FDが無い場合は他にUSBデバイスを繋いでみる)
デスクトップではBドライブで認識。ノートでは他にUSBデバイス(FDやデジカメ)を繋いでおくとBドライブで認識。他のUSBデバイス自身は認識しない。GhostではUSBドライバを読み込んでおくとDドライブで認識。(BIOSがUSBブート対応な場合、USBドライバなしでDOS上でも普通にドライブとして認識できたりするので特別なことではないかもしれませんけど。)
USBメモリ自身を認識できるなら、DOS版プログラムをUSBメモリに普通にファイルとして保存しておけば実行できますね。
- GRUB起動ディスク - ノートではkernelコマンドを使うと再起動してしまう。chainloaderコマンドならOK。
- Windows XP緊急起動ディスク - ノートではメニューは出るがWindowsは起動しない。デスクトップでは問題なく起動
- Norton Ghost 2003 - パーティションを切っていない場合、USB2.0ドライバ(aspiehci.sys)を読み込むと起動しない。パーティションを切っていれば問題なし。(※あっと、USBブートに対応していれば既にDOS上で認識されてる筈なので、USBドライバは不要だと思います。)
■ めも - その他
- GRUB for DOS
-
grub.exeを保存するだけ。必要ならmenu.lstも作成。
label grub kernel grub.exe
【ご注意追記】私の環境では、0.4.2と0.4.3のgrub.exeでWindowsの起動が非常にスローになってしまうというちょっと困るトラブルがありました。0.4.1のgrub.exeでは今のところ無問題。
ということで、BIOSの対応(HD扱いなのかFD扱いなのかとか)、USBメモリの仕様(パーティションの構成とか色々違ったり)によって変わってくるので、正式には対応していないのかもしれません。
grubinst.exeでMBRまたはブートセクタにインストール、memdisk経由でFDイメージを使うなど使い分けが必要かもしれません。でも、これもバージョン毎に違ったり、機種によって相性みたいなのがあったりするので最善ではありませんけど。
- SystemRescueCd
-
systemrescuecd-x86-0.4.1.isoの例
- ルートイメージのsysrcd.datはルートに置く
- 他のファイルはrescuecdディレクトリを作成してコピー
- CD内に含まれる\syslinux\syslinux.cfgを参考にsyslinux.cfgを編集&パスの修正
F5 f1boot.msg F6 f2images.msg F7 f3params.msg F8 f4arun.msg F9 f5troubl.msg F10 f6pxe.msg label rescuecd kernel rescuecd/isolinux/rescuecd append initrd=rescuecd/isolinux/rescuecd.igz video=ofonly vga=0 scandelay=10 cdroot=/dev/sd label vesa kernel rescuecd/isolinux/rescuecd append initrd=rescuecd/isolinux/rescuecd.igz vga=788 scandelay=10 cdroot=/dev/sd forcevesa label vmlinuz2 kernel rescuecd/isolinux/vmlinuz2 append initrd=rescuecd/isolinux/vmlinuz2.igz video=ofonly vga=0 scandelay=10 cdroot=/dev/sd label fb640 kernel rescuecd/isolinux/rescuecd append initrd=rescuecd/isolinux/rescuecd.igz vga=785 scandelay=10 cdroot=/dev/sd label fb800 kernel rescuecd/isolinux/rescuecd append initrd=rescuecd/isolinux/rescuecd.igz vga=788 scandelay=10 cdroot=/dev/sd label fb1024 kernel rescuecd/isolinux/rescuecd append initrd=rescuecd/isolinux/rescuecd.igz vga=791 scandelay=10 cdroot=/dev/sd
- Linuxインストーラ
-
一応確認しましたレベルですけど(汗)。こんなかんじで。
- Debian etch
-
label debian kernel debian/linux append vga=normal initrd=debian/initrd.gz
- Vine 4.2
-
label vine kernel vine/vmlinuz append load initrd=vine/initrd.img
- Fedora 8
-
label fedora kernel fedora/vmlinuz append initrd=fedora/initrd.img
- Ubuntu Feisty
-
label ubuntu kernel ubuntu/linux append vga=normal initrd=ubuntu/initrd.gz