注:この文書は自分の勉強のために訳したものです。いかなる保障もありません。気に入らない方は原文にあたってください。
ISOLINUX
ISO 9660/El Torito CD-ROMを使ったLinux用ブートローダ
Copyright(C) 1994-2003 H.Peter Anvin
このプログラムはGNUジェネラルパブリックライセンス第2版、将来のバージョンに基づいて、提供されます。このプログラムの機能について、明示的にも暗黙的にも保証はありません。詳細は同梱されているCOPYINGファイルを参照してください。
ISOLINUXは、ISO9660/El Torito CD-ROMを”エミュレーションじゃない”モードで動かす、Linux/i386用ブートローダです。これは限られたスペースで”エミュレーション・ディスク・イメージ”(フロッピーエミュレーションとか)を作る必要がなく、コンパチビリティの問題(ハードディスクエミューレーションとか)を回避することを意味しています。
この文書は完璧じゃありませんが、テストできる程度の情報はあります。
まず、mkisofsのバージョンが比較的最近か確認してください。mkisofs 1.13(cdrecord1.9と一緒に配布されています)以降であることが必要です。1.12でも動くかも知れません(テストはしてません)
イメージを作るには、”isolinux”(もしくは、boot/isolinux)といわれているディレクトリを作ります。
直下にISOイメージにしたいファイルツリーを作ります。isolinux.binと”isolinux.cfg”と呼ばれる構成ファイルを置きます。(構成ファイルの中身については、syslinux.docを読んでください。)
また、必要なファイル(カーネル、initrd,表示するファイルなど)は同じディレクトリーにおいてください。そして、次のコマンドでISOイメージをつくります。(-Jや-Rの適当なオプションを加えてください)
mkisofs -o <isoイメージ名> ?
-b isolinux/isolinux.bin -c isolinux/boot.cat ?
-no-emul-boot -boot-load-size 4 -boot-info-table ?
<isfファイルツリーのルート>
(もし、/boot/isolinuxというディレクトリを作ったのなら、-b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat.)
ISOLINUXは以下のようにパスを解決していきます。
- パス名はUnixスタイルの/で区切られている。
- /で始まるとルートディレクトリを探す。そうでなければisolinuxディレクトリから探し始める(カレントディレクトリからと思ってください。)
- .や..はサポートしていません。
- パス名は255文字を超えてはいけません。
ISOLINUXは普通のISO9660ファイル名を使います。なので、Rock Ridge(Unix用CDイメージ)やJoliet(Windowsロングファイル名用)はサポートしていません。RockRidgeやJoliet拡張はいまだに使われており、Linux上では、マウント時に”-o norocknojoliet”オプションをつけてマウントすると、普通のファイル名かどうかわかります。しかし、ISOLINUXは長いiSO9660ファイル名をサポートしています。もし、MS-DOSのような短い名前のファイルシステムならば、問題となりません。ファイル名が31文字くらいまでの長いファイル名ならばmkisofsを実行するときに”-l”か”-iso-level 2″オプションをつけてくkださい。
ISOLINUXは連続していないファイルをサポートしていません。たとえ、インターリーブっであってもサポートしていません。また、論理ブロックやセクターが2048バイトを超えているものもダメです。普通は問題にならないと思います。
ISOLINUXにはふたつのバージョンがあります。ひとつは細かいデバッグ用メッセージが出るもので、もし、ISOLINUXがトラブルを起こしているようならば、このデバッグバージョン(isolinux-debug.bin)で情報を収集してお送りくださると非常にうれしいです。
省略ではデバッグバージョンを使います。
++++ 設定ファイルディレクトリーについて ++++
ISOLINUXは設定ファイルを次の順序で探します。/boot/isolinux, /isolinux, /. 最初に発見したディレクトリ内を探します。たとえ設定ファイルがなくても探索はそこで終わりです。それゆえディレクトリの存在には気をつけてください。
+++ DOSのブート(もしくは他の類似のOS) ++++
警告:この機能はBIOSの機能に頼っていますが、多くのBIOSがサポートしているようで動作しません。それゆえどのシステムでも動作するとはいいきれません。回避策はないので、もし動作しなかったらBIOSメーカーに”BIOS INT 13h AX=4C00hが動作しないぞ”と文句をいってください。
ISOLINUXを使ってDOSや類似のOS(動作しようがしまいがプロテクトモードで動作するオペレーティングシステム)をブートするには、ディスクイメージが必要です。普通はフロッピーイメージかもしれませんが、多くはハードディスクイメージでしょう。このファイルがCD-ROM中の/isolinuxディレクトリに、.imgというファイル名であることが必要です。”.img”はコマンドラインの指定はできませんが、構成ファイルisolinux.cfg内に明示的に”kernel”ステートメントを書けば指定可能です。
正確に以下のサイズであることがフロッピーイメージと認識されます。
1,228,800 バイト – 1200Kフロッピーイメージ
1,474,560 バイト – 1440Kフロッピーイメージ
2,949,120 バイト – 2880Kフロッピーイメージ
他のサイズはハードディスクイメージだとみなされます。いろんなシステムを稼動させるためには、ハードディスクイメージは全体が存在し、ひとつのパーティションであり、アクティブにされていなければなりません。そうであっても、すべてのBIOSでハードディスクイメージがサポートされているわけではないのです。
The End of This Document
translation by Tsukasa Takao (07/24/2007)