テクノロジー遊び

SysLinux翻訳

注:この文書は自分の勉強のために訳したものです。いかなる保障もありません。気に入らない方は原文にあたってください。


SYSLINUX


Linuxにもっとも適したブートローダ


Copyright(C) 1994-2007 H.Peter Anvin

このプログラムはGNUジェネラルパブリックライセンス第2版、将来のバージョンに基づいて、提供されます。このプログラムの機能について、明示的にも暗黙的にも保証はありません。詳細は同梱されているCOPYINGファイルを参照してください。




SYSLINUXの今のホームページは、http://syslinux.zytor.com/ です。



SYSLINUX一式は、代表的なブート用メディアに応じた次のブートローダーの種類をもっています。




  • SYSLINUX – MS-DOS/Windows Fatシステム
  • PXELINUX – PXE ネットワークブート
  • ISOLINUX – ISO9660 CD-ROM
  • EXTLINUX – Linux ext2/ext3用


歴史的な理由から、この文書ではFAT用ローダについてのみ言及しています。他については、pxelinux.doc, isolinux.doc, extlinux.docoを参照してください。


この文書をよりよくするために協力していただけると幸いです。

++++ ブート可能なLinuxフロッピーの製作について ++++


SYSLINUXを使ってブート可能なLinuxフロッピーを作るためには、普通のMS-DOSでフォーマットされたフロッピーが必要です。そこにいくつかのLinuxカネールのファイルをコピーし、DOSコマンドから:


syslinux [-sfma][-d directory] a:

(ドライブレターは適当なものにします。また、[]内はオプションです。)

純粋なDOS(MS-DOS, DR-DOS, PC-DOS, FreeDOS…)やWin9x/MEの場合、”syslinux.com”(配布ライブラリーのdosサブディレクトリーにあります)を使ってください。


WinNT/2000/XPの場合、”syslinux.exe”(配布ライブラリーのwin32サブディレクトリーにあります)を使ってください。


Linuxの場合、下記コマンド:


syslinux [-sf][-d direcotory][-o offset] /dev/fd0

(もう一度、どのデバイスが正しいのか、確認しましょう)

このプログラムはディスクのブートセクターに変更を加え、LDLINUX.SYSというファイルをコピーします。一般的にそれはルートに置かれます(もし、-dオプションを指定すると、そのサブディレクトリーに置かれます)


-sオプションを指定すると、SYSLINUXの”安全にゆっくり動作”バージョンをインストールします。このバージョンはSYSLINUXがBIOSのバグで失敗しそうなところでも動作するようにできています。もしこのオプションをつけなくてはきちんと動作しない機器があったら、できるだけ詳しく機器構成と失敗のメッセージをお知らせください。

-oオプションは、ディスクイメージのファイルとその中でファイルシステムのオフセットを指定する時に使います。

-m,-aオプションはDOS,WindowsインストーラでMBR(Master Boot Record)に書き込み、そのパーティションをアクティブにする時に指定します。
ブート時、デフォルト(省略値)ではブートフロッピー上のLINUXという名前のカーネルイメージをロードしようとします。デフォルトを変更するには、SYSLINUX設定ファイルのセクションを見てください。

ブート中に、シフトキーやALTキーを押したまま、もしくはCapsOnやスクロールロックをセットにしていると、SYSLINUXはLILOのように”boot:”プロンプトを出します。ユーザはカーネルファイルの名前や後に続くパラメータを入力することができます。SYSLINUXは事前にカーネルのファイル名を知る必要はありません:ただし、すべてのファイルはディスク上のルートディレクトリになければなりません。


Linuxインストーラとしては2つのバージョンがあります。ひとつは”mtools”ディレクトリにある特別な権限を要しない(導入しようとしているデバイスへの書き込み権限以外の)けれど、mtools一式が使用可能な状態であることが必要なものと、”unix”ディレクトリにあるroot権限が必要なものがあります。

++++ 構成ファイル ++++


SYSLINUXプログラムにおいて変更可能な内容は”syslinux.cfg”という名前でブートディスクのrootディレクトリ上においてあるファイルで変更できます。

これはUnixかDOSでいうテキストファイルで、複数の以下で説明する項目が入っています。(大文字小文字の区別はしません。ここで大文字で書かれているのはつづりを正確に示したいからです。)

バージョン3.35より、構成ファイルは/boot/syslinuxか/syslinuxディレクトリー(この順序で検索されます)にあってよくなっています。この場合、ファイル名がスラッシュやバックスラッシュに続いてない場合には、同じディレクトリーにあることとします。


SYSLINUX上で可能なすべてのオプションは、PXELINUX, ISOLIUNXやEXTLINUXでも可能です。関係する.docファイルを参照してください。


# コメント
コメント行です。#の後に半角空白が必須です。
INCLUDE ファイル名
構成ファイルの、この場所に他のファイルを挿入した形になります。ファイルは16レベルまでのネストを許す予定ですが、今は8レベルまでです。
DEFAULT カーネル オプション。。。
省略値のコマンドラインをセットします。もしSYSLINUXが自動的にブートした場合、”boot:”の後に入力されたかのように処理されます。

構成ファイルがない場合や、構成ファイル中にDEFAULTエントリがない場合、省略値は”linux auto”です。

注:SYSLINUXの初期のバージョンはDEFAULTコマンドの指定に、自動的に”auto”をつけていました。バージョン1.54以降、”init.”に続いてシェルを使う場合の問題に対処するため”auto”は指定しなければいけないようになりました。
APPEND オプション。。。
カーネルコマンドラインにさらにつけるオプションを指定します。自動ブートやマニュアルブートのいずれでもつけます。このオプションカーネルコマンドラインの極めて初期につけるために使われます。通常、これらを書き換えるために、カーネルのオプションを明示的な入力を許可します。これはLILOの”append”オプションと同じです。
IPAPPEND フラグ値 [PXELINUXのみ]
IPAPENDオプションはPXELINUXでのみ有効です。フラグ値は以下のいずれかです。

1: 以下の形式のオプションが生成され、カーネルコマンドラインに追加されます。
ip=<クライアントip>:&ltブート・サーバーip>:<ゲートウェイip>:<ネットマスク&g;

この入力はDHCP/BOOTPか、PXEブートサーバに基づきます。

このオプションの使用はお勧めしません。このオプションを使うということは、おそらくネットワーク構成が壊れているはずです。カーネルコマンドラインオプションで”ip=dhcp”と単に記述すればよく、よりよい解決策はdhcpcd/dhcclinetをinitrdから立ち上げるほうをお勧めします。


2: 以下の形式のオプションが生成され、カーネルコマンドラインに追加されます。
BOOTIF=<ブート-インターフェースの-ハードウェア-アドレス>

ハードウェアタイプを示す16進数が”-“でわけられます。

(構成ファイルと同様なので、pxelinux.docを参照)

これはinitrdが、どのインターフェースでシステムブートにかかるかを決めることを許可します。

LABEL ラベル

KERNEL イメージ

APPEND オプション。。。

IPAPPEND フラグ値   [PEXLINUXのみ]

“ラベル”がブートするカーネル名としていれられると、SYSLINUXは”イメージ”をブートします。APPENDやIPAPPENDオプションが指定されていれば、(最初のLABELコマンドより前、つまり)全体セクションに書かれたオプションに代わって使われます。”イメージ”の省略値は、”ラベル”と同じです。もしAPPENDがなければ全体セクションの値が使われます。


バージョン2.20から、LABELステートメントは内部的に圧縮されるようになりました。LABELステートメントの数は複雑さにもよりますが、一般的には600くらいが上限です。SYSLINUXはメモリーを超えるとエラーメッセージを出力します。


LILOは次のような形式ですが、
image = mykernel
label = mylabel
append = “myoptions”

同様の内容はSYSLINUXでは、
label mylabel
kernel mykernel
append myoptions



注:”kernel”はLinuxのカーネルである必要はありません。COMBOOTファイル(後述)かブートセクターであればいいのです。

LINUX image – Linux カーネルイメージ(省略値)

BOOT image – ブートストラッププログラム(.ba, .bin)

BSS image – BSSイメージ(.bss)

PXE image – PXE ネットワークブートストラッププログラム(.0)

FDIMAGE image – フロッピーディスクイメージ(.img)

COMBOOT image – COMBOOT プログラム(.com, .cbt)

COM32 image – COM32 プログラム(.c32)

CONFIG image – 新しい構成ファイル
これらのキーワードをKERNELの代わりに使うとファイル名にかかわりなく、そのイメージとして扱います。

CONFIGとは違う構成ファイルでブートローダを再スタートします。

APPEND –
なにも追加しません。LABELセクションにおいて、ひとつのハイフンをつけたAPPENDはグローバル部分のAPPENDを上書きするために使います。

LOCALBOOT タイプ    [ISOLINUX, PXELINUX]
PXELINUX上で、”KERNEL”オプションの代わりに”LOCALBOOT 0″を指定すると、カーネルを直接ブートする代わりにローカルにあるディスクのブートを呼び出します。

引数の0は、普通のブートを意味します。4はメモリーにあるUNDI(Universal Network Driver Interface)ドライバーを使ってローカルブートをします。5はメモリーにあるUNDIドライバーをふくめPXEスタックを使ってローカルブートをします。UNDIやPXEスタックになじみがなければ、0のみを指定してみてください。

ISOLINUXで”タイプ”は、ローカルにあるドライブの番号を意味します。0x00は最初のフロッピードライブで0x80は最初のハードディスクです。特別な値 -1 はBIOSに失敗を知らせるものです。いうのも、最近のBIOSの中にはブート処理の中で次のブートデバイスをアクティベイトするものがあるからです。

IMPLICIT フラグ値
もし、フラグ値が0ならばLABELステートメントに明示的に示されたカーネルイメージ以外はロードしないことを指示します。省略値は1

ALLOWOPTIONS フラグ値
もし、フラグ値が0ならカーネルコマンドラインからユーザーが引数を入れることを許可しません。APPENDステートメントのオプションだけが有効となります。省略値1
TIMEOUT タイムアウト値
ブートにどれくらいの時間をおくか示します。0.1秒単位で指定された時間だけ、ブートが自動的に開始されるのを待ちます。ユーザーがなにかをキーボードで入力したところでタイムアウトはキャンセルされます。これはユーザーがコマンドラインに入力しかけていたら、待ちをを終わる場合を考えています。タイムアウト値を0にすると、タイムアウトはおきません。省略値は0です。

TOTALTIMEOUT タイムアウト値
ブートが自動的に始まるまでの待ち時間を0.1秒単位で示します。このタイムアウトはユーザーのインプットによりキャンセル「されません」。シリアルポートがなにかの理由で使えなくなっていたり、ユーザが放置してしまう状況で使われることでしょう。0を設定するとタイムアウトはセットされません。省略値は0です。

TIMEOUTとTOTALTIMEOUTを一緒に使う場合は、例えば、

# ユーザがなにか入力するまで、5秒待つけれど、15分後にブートされます
TIMEOUT 50
TOTALTIMEOUT 9000

ONTIMEOUT カーネルオプション。。。
タイムアウトの場合のコマンドラインオプションをセットします。通常、これは”DEFAULT”と同じ意味になります。このパラメータをセットすると、”DEFAULT”はユーザーがを押してブートした時にのみ、有効となります。
ONERROR カーネルオプション。。。
カーネルイメージが見つからないとき(存在しないとか、IMPLICITがセットされている)、指定したコマンドを実行します。失敗したコマンドラインは指定したオプションに追加され、ONERRORディレクティブは次のように解釈されます。

ONERROR xyzzy plugh

… 入力されたコマンドラインが次のようだとすると、
foo bar baz

… SYSLINUXはユーザに次のように入力されたかのように実行します。
xyzzy plugh foo bar baz

SERIAL ポート [[ボーレート] フローコントロール]
シリアルポートをコンソールとして実行可能とします。”ポート”は番号(0 = /dev/ttyS0 = COM1など)か、I/Oポートアドレス(0x3F8など)を指定します。もし、”ボーレート”が記述されていれば9600が省略値です。
パラメータは固定値で8ビット、パリティなし、ストップビット1です。

“フローコントロール”は以下のビットパターンと対応しています。

0x001 – DTR(Data Terminal Ready)あげる
0x002 – RTS(Request To Send)あげる
0x010 – CTS(Clear To Send)待つ
0x020 – DSR(Data Set Ready)待つ
0x040 – RI(Ring Indicate)待つ
0x080 – DCD(Data Carrier Detect)待つ
0x100 – CTSあがるまで入力無視
0x200 – DSRあがるまで入力無視
0x400 – RIあがるまで入力無視
0x800 – DCDあがるまで入力無視

他のビットは無視されます。

典型的な使用方法は

0 – フローコントロールしない(省略値)
0x303 – Nullモデムケーブルケーブル検知
0x013 – RTS/CTSフローコントロール
0x813 – RTS/CTSフローコントロール、モデム入力
0x023 – DTR/DSRフローコントロール
0x083 – DTR/DCDフローコントロール

SERIALディレクティブをうまく動作させるには、構成ファイルの最初のほうにおいたほうがよいでしょう。

注:”ポート”の値が0から3は、BIOSに検知されるシリアルポートです。一般的にはアドレスは0x3F8,0x2F8,0x3E8, 0x2E8にマップされます。

CONSOLE フラグ値
フラグ値が0ならば、ディスプレイには出力しません。フラグ値が1ならばディスプレイに出力します。(これが省略値です)

BIOSによってはシリアルコンソールに転送しようとするものがあります。時々それが思わぬ問題を引き起こしたりします。このオプションはシステム上のディスプレイを使わないようにするものです。

FONT ファイル名
.psf形式のフォントをなにか出力する前にロードしておきます。(copyrightの行は除きます。この行はldlinux.sys自身がロードされると出力されます)SYSLINUXのみがビデオカードにこのフォントをロードします。もし、.psf形式ファイルがUnicodeテーブルを含んでいたら無視されます。それはEGA,VGAカードでのみ有効です。他に影響がなければいいのですが。
KBDMAP キーマップ
単純なキーボードマップをインストールします。このキーボードマッピングは「ものすごく」単純です。(BIOSから受け取るキーコードの再マッピングは単純です。それゆえ省略時のレイアウト– U.S. English — と関連をもったキーの組み合わせのみとなります。)しかし、AZERTYレイアウト(訳注:フランス語圏で使われているレイアウト)や、= や , の位置が違う(このふたつの文字はLinuxカーネルコマンドでよく使います。)キーボードをもつ人々を少なくとも助けとなるでしょう。

プログラムに含まれているkeytab-lilo.plはLILOディストリビューションからのものですが、このようなキーマップを作る参考となるでしょう。keytab-lilo.docが説明文書です。

DISPLAY ファイル名
ブート時に指定したファイルの内容を表示します。(boot:プロンプトの前に) DISPLAYファイルについては後述。

注: ファイルが見つからなければ、このオプションは単純に無視されるだけです。

SAY メッセージ
スクリーンに”メッセージ”を表示します。
PROMPT フラグ値
フラグ値が0ならば、シフトキーかALTキーが押されている、もしくはCapsロックかScrollロックキーがセットされている状態の時、boot:プロンプトを出します。(これが省略値)もし、1がセットされていたらいつもboot:プロンプトを出します。
NOESCAPE フラグ値
フラグ値が1にセットされていたら、シフト/ALT/Capsロック/Scrollロックキーを無視します。これを(PROMPT 0と一緒に)使うと省略時のブートプロセスを強制することになります。


  • F1 ファイル名
  • F2 ファイル名

  • F9 ファイル名
  • F10 ファイル名
  • F11 ファイル名
  • F12 ファイル名

boot:プロンプトが出ている状態で、ファンクションキーを押すと指定したファイルをスクリーンに表示します。これはブート前のオンラインヘルプに使えるでしょう。(カーネルコマンドラインのオプションとか)後述するDISPLAYファイルのところをご覧ください。

シリアルコンソールを使用している場合、ヘルプのスクリーンを見たかったら<Ctrl-F><数字>を押してください。例えば<Ctrl-F><2>はF2スクリーンを、F10-F12については<Ctrl-F><A>、<Ctrl-F><B>、<Ctrl-F><C>です。初期バージョンとの互換性のために、F10は<Ctrl-F><0>でもOKです。

空白行は無視されます。

構成ファイルは完全にデコードされないことがあります。このバージョンでの上記命令はきちんと動きますが、将来変更されるかも知れません。

++++ DISPLAY ファイル形式 ++++:


DISPLAYとファンクションキーのヘルプファイルはDOSかUNIXでいうテキストファイルです。(<CR>がついていても構わないといっています)さらに、次のコードを特別に解釈します。


<FF> <FF> = <Ctrl-L> = ASCII 12
クリアスクリーン、カーソルをホームへ。スクリーンは今の色で設定されます。

<SI><bg><fg> <SI> = <Ctrl-O> = ASCII 15
背景と前景の色をセットします。<bg><fg>とも16進数で以下の値が一般的なPCでは使用可能です。


0 = 黒 8 = 暗い灰
1 = 暗い青 9 = 明るい青
2 = 暗い緑 a = 明るい緑
3 = 暗いシアン b = 明るいシアン
4 = 暗い赤 c = 明るい赤
5 = 暗い紫 d = 明るい紫
6 = 茶 e = 黄
7 = 明るい灰 f = 白

(8-f)の明るい色を背景にセットすると、前景は点滅しながら適当な暗い色(0-7)が選択されます。

シリアルコンソールでは色は見えません。
<CAN>ファイル名<改行> <CAN> = <Ctrl-X> = ASCII 24
VGAディスプイレイの場合、グラフィックモードで指定したファイルでグラフィックを表示することができます。表示できるファイルはLSS16といわれてるフォーマット(訳注:640×480以下、16色表示のLinu系で使われているかなり特殊なフォーマット)です。同梱されている”ppmtolss16″というPerlプログラムで作ることができます。このPerlプログラムはこのファイル形式の定義を含んでいます。

イメージは640×480、16色モードです。グラフィックモードに入ると、(<SI>コードでセットされます)表示属性が少しかわります。背景色は無視され、前景の色はファイル内に指定された16色のいずれかになります。この理由で、ppmtolss16は特定の色指定ができるようになっています。

特に0から7で示される色を選ぶ場合は、気をつけてください。背景色の0とテキストの7はSYSLINUX自身が使用します。

<EM> <EM> = <Ctrl-Y> = ASCII 25
もし、グラフィックモードになっていたら、テキストモードに戻します。

<DLE>..<ETB> <Ctrl-P>..<Ctrl-W> = ASCII 16-23
これらのコードはファイルにあるメッセージの一部をプリントするモードを選択するために使われます。おのおののコントロール文字はモードを選択することで、(テキスト画面、グラフィック画面、シリアルポート)事実上、表示されます。

文字 テキスト グラフィック シリアル
————————————————————————
<DLE> = <Ctrl-P> = ASCII 16 No No No
<DC1> = <Ctrl-Q> = ASCII 16 Yes No No
<DC2> = <Ctrl-R> = ASCII 16 No Yes No
<DC3> = <Ctrl-S> = ASCII 16 Yes Yes No
<DC4> = <Ctrl-T> = ASCII 16 No No Yes
<NAK> = <Ctrl-U> = ASCII 16 Yes No Yes
<SYN> = <Ctrl-V> = ASCII 16 No Yes Yes
<ETB> = <Ctrl-W> = ASCII 16 Yes Yes Yes

例:<DC1>テキストモード<DC2>グラフィックモード<DC4>シリアルポート<ETB>

どのモードにコンソールがあるかで実際のプリントアウトは決まります。

<SUB> <SUB> = <Ctrl-Z> = ASCII 26
ファイルの終わり(DOSのルール)
<BEL> <BEL> = <Ctrl-G> = ASCII 7
スピーカーからビープ

++++ コマンドラインキー入力++++

コマンドラインは以下のキーをサポートしています。


  • <Enter> 指定されたコマンドラインでブートします。
  • <BackSpace> 一文字消去
  • <Ctrl-U> 行全体消去
  • <Ctrl-V> 現在のSYSLINUXのバージョン表示
  • <Ctrl-W> 一語、消去
  • <Ctrl-X> テキストモードに強制的に変更
  • <F1>..<F10> ヘルプスクリーン(もし設定されていれば)
  • <Ctrl-F>数字 F1..F10と同じ(訳注:F10はA)
  • <Ctrl-C> ブートプロセスの中止
  • <ESC> ブートプロセスの中止

++++ COMBOOTイメージと他のオペレーティングシステム ++++


このバージョンのSYSLINUXから、オペレーティングシステムのチェイン・ロードをサポートしています。(MS-DOS系、Windows 95/98を含みます)、同様にCOMBOOTスタイルのスタンドアローンの実行もサポートしています。(DOSのサブセットの.COMファイル:以下の別セクションに後述)

チェイン・ローディングは、ルートディレクトリの存在するファイルシステム中に別OSのブートセクターが存在する、必要があります。Lniuxカーネルのブートセクターイメージか、COMBOOTファイルのいずれも、なにかといいきれるものではありません。SYSLINUXはファイルの末尾を見て、おのおののタイプを見分けます。



  • .0 PXEブートプログラム(NBP) [PXELINUXのみ]
  • .bin “CDブートセクタ” [ISOLINUXのみ]
  • .bs ブートセクター [SYSLINUXのみ]
  • .bss ブートセクター、DOS特殊ブロックにパッチをあてたもの[SYSLINUXのみ]
  • .c32 COM32 イメージ [32ビット COMBOOT]
  • .cbt COMBOOT イメージ(DOSからはたちあがらない)
  • .com COMBOOT イメージ(DOSからたちあがる)
  • .img ディスクイメージ[ISOLINUXのみ]

コマンドラインからのファイル名を、SYSLINUXはファイル名そのものが見つからなかったら、上記のサフィックスを順番に適用しながら探します。KERNELステートメントのファイル名は省略は許されません。

KERNELキーワードでなく、LNIUX, BOOT, BSS, FDIMAGE, COMBOOT, COM32, CONFIGキーワードで末尾も一緒に指定されたとしても、ファイル名が示すファイルタイプを無視して、キーワードを優先します。

++++ DOSのブート(他、類似のOS) ++++


このセクションはSYSLINUXにのみ適用可能です。PXELINUXとISOLINUXには適用されません。ISOLINUXで同様のことがやりたい場合、isoliunx.docをお読みください。

これはDOSかLinuxでSYSLINUXのブートディスクを作るお勧めの方法です。この例ではDOSでいうA:ドライブ、Linuxでいう/dev/fd0を想定しています。他のドライブのときは適当に推測してください。

—- Linuxでの手順 —-



  1. DOSのブート可能なフロッピーを作ります。これはフォーマット時に/sオプションをつけるか、DOSコマンドでSYSコマンドで可能です。

    format a: /s


    sys a:

  2. Linuxをブートします。フロッピーからファイルにDOSのブートセクターをコピーします。
    dd if=/dev/fd0 of=dos.bss bs=512 count=1

  3. フロッピー上でSYSLINUXを実行します。
    syslinux /dev/fd0

  4. ディスクをマウントし、DOSブートセクターファイルをコピーします。ファイルの末尾は.bssじゃなければなりません。

    mount -t msdos /dev/fd0 /mnt

    cp dos.bss /mnt

  5. Linuxカーネルイメージ、initrdと他のものをディスクにコピーします。そして、syslinux.cfgを作成、編集し、必要ならヘルプ用ファイルも作ります。

    cp vmlinux /mnt
    cp initrd.gz /mnt

  6. アンマウントします。(必要なら)

    umount /mnt

—- DOS/Windowsでの手順 —-


DOSのみを導入するならば、syslinux.comインストーラと同じようなcopybs.comが使えます。(これはSYSLINUXに同梱されています)。Windows NTベース(WinNT,Win2k,WinXP以降)ならば、syslinux.exeを使います。



  1. DOSブート可能ディスクを作ります。DOSのもとでフォーマット時に/sオプションを指定するか、DOSコマンドのSYSを実行します。
    format a: /s


    sys a:

  2. フロッピーからDOSブートセクターをファイルにコピーします。 ファイルの末尾は.bssでなければなりません。
    copybs a: a:dos.bss

  3. フロッピー上でSYSLINUXを実行します。
    syslinux a:

  4. Linuxカーネル、initrd他をコピーします。そして、syslinux.cfgを作成、編集します。

    copy vmlinux a:

    copyu initrd.gz a:


++++ COMBOOT 実行 ++++


SYSLINUXは単純なプログラムの実行のみもサポートしています。そのプログラムがDOSの”.com”と同様な形式であることが必要です。COM32といわれるような32ビットバージョンのプログラムでもいいです。ファイルシステムについて限られた単純なAPIとコンソール機能が使えます。

より詳しくは、COMBOOTやCOM32プログラムにつ9いて、comboot.docを参照してください。

++++ 初心者向け注意 ++++


SYSLINUXは、ブートにほとんどメモリーを食わないようになっています。Linuxの完璧なブートが行われないことがあります。そういう時は、メッセージが出たまま、ブートの処理がとまっているでしょう。こういう時、Ctrlキーを押し続けてみてください。

SYSLINUXが使うどのファイルも、隠し属性、システム属性、読み取りのみ属性などがあってもSYSLINUXは無視します。XYXLINUXはLDINUX.SYSを読み取りのみ、隠し、システム属性をセットしてインストールします。

++++ ブート可能なCD-ROMについての注意 ++++


SYSLINUXは、ブート可能なCD-ROMとして、 El Toritoコンパチのイメージを作ります。(訳注:BIOSレベルでのブートでポピュラーな形式) しかしCD-ROMのブートに関してはバグの多いBIOSはかなりあります。ユーザによっては、以下のような方法でCD-ROMを作るといいかもしれません。この方法は数多くのマシンで有効です。



a) SYSLINUXのオプションで -s (安全にゆっくり動作)を使う

b) 可能な限りISO9660ファイルシステムの先頭近くにブートイメージを置く

CD-ROMはフロッピーよりははるかに早く、たとえ-sオプションをつけてもそれほどひどいことにはなりません。

もちろん、ISOLINUXを使うという方法もあります。isolinux.docをお読みください。

++++ ハードディスクのFATファイルシステムのパーティションからのブート ++++


SYSLINUXはFAT(FAT32をふくむ)形式のハードディスクドライブからブートできます。インストレーションプロシージャは、フロッピーで作ったものとまったく同じで結構です。それはDOSでもLinuxでも動きます。パーティションからブートする場合、DOS自身がそうであるように、SYSLINUXはMBR(Master Boot Record)か他のブートローダに置く必要があります。

DOSの環境で、プリマリーのハードディスクに単純にMBRをセットするには、


FDISK /MBR

で、パーティションがアクティブになります。

MBRは乱暴にいえば、プライマリーのアクティブになったディスクごとにあります。SYSLINUXにふくまれるMBRを入れるには、Linuxの環境下では以下のコマンドで導入できます。

cat mbr.bin > /dev/XXX

/dev/XXXは、導入したいデバイスです。

DOSやWin32の環境では、SYSLINUX MBRを-mオプションでインストールすることができます。-aをつけると対象のパーティションをアクティブにできるので、

syslinux -ma c:

というように指定します。

これは指定したパーティションにSYSLINUXも導入されます。

++++ ハードウェア情報 ++++


私(訳注:製作者)はわかっている問題はウェブページに掲載しています。しかし、不幸なことに、ハードウェアのせいでうまくいかないものもあります。とくに、初期のPXEスタック(PXELINUX用)はたくさんの問題をもっています。

問題のリストと、回避策(もしわかっていれば)は以下にあります。


http://syslinux.zytor.com/hardware.php

++++ ブートローダが使うID ++++


Linuxブートローダは、”ブートローダーID”をサポートしています。これは一バイトで、上半分でブートローダのファミリーを示しています。(3 = SYSLINUX)下半分でバージョンそのほかを示します。


0x31(49) = SYSLINUX
0x32(50) = PXELINUX
0x33(51) = ISOLINUX
0x34(52) = EXTLINUX

Linuxの比較的新しいバージョンでは、IDは以下のところで知ることができます。

/proc/sys/kernel/bootloader_type

++++ バグ報告 ++++


SYSLINUXについてあなたが困ったことを聞かせてくれることに、私は感謝している。私はSYSLINUXがどういうところで成功裏に動いているかについても知りたいです。「とくに」ディストリビューションを使っている方については興味あります。

問題をレポートしてくれる時、システムとBIOSの環境についてもぜひ知らせてください。ほとんどの問題がBIOSやハードウェアのバグに起因しているのです。さらに私は問題解析のためにも知りたいのです。

メーリングリストがあり、SYSLINUXユーザー間や、新しいバージョン、テストのバージョンについても議論されています。ご参加いただくには、

http://www.zytor.com/mailman/listinfo/syslinux

メーリングリストにはHTML形式や添付ファイル付きは送ってはいけません。(マルチパートメールも同様です)これらのメッセージははじかれます。


The End of This Document

translation by Tsukasa Takao (07/24/2007)

関連記事

  1. ブルースクリーン出まくり

  2. デバッグとコード強化

  3. GoogleスプレッドシートAPI Ver.3 一部翻訳

  4. 屋根裏の窓に換気扇をつける

  5. USBメモリについて

  6. LOOX U G90とUbuntu

  7. 日本のDIY市場の勘違い

  8. easygui API 私家製翻訳(4)

記事をプリント