SILO.CONF(5) SILO.CONF(5) 名前 silo.conf - SILOで使用されるファイルのフォーマット 書式 /etc/silo.conf 説明 silo.confファ イルはSILOがブートする間に読み込む設定ファイ ルである。 silo.confにはSILOのための命令を記述する。これには、どの カ ー ネ ルまたは他のオペーレーティングシステムをロードするの か、それにどんなオプションを渡すのかが含まれる。インテルプ ラッ トフォームのLILOブートローダと違って、 SILOはブート時 に設定ファイルを読み込み解析する。これはどのような変更でも 設定ファイルに加えることができることを意味する。そして、シ ステムが正しくシャットダウンされる、または設定ファイ ル が ディ スク上に作られたなら、 SILOは次のブート時にそれを使う だろう。 SILOはこの設定ファイル無しでさえも、カーネルをブートするこ とができる。もしこのファイルが読み込めなかった、あるいは構 文エラーがあった場合、ユーザーは全てのPROMでの名前と、ロー ドするイメージのフルパスと、要求される全てのオプションを手 動で入力する必要がある。 ファイルフォーマット ファイルは、コメントと変数の代入式で構成されている。 コメント #からその行の終りまで。 フラグ変数 1つのキーワードから成って、その後に空白 文 字 ま た はEOFが続く。 列変数 変数名、アーキテクチャの有効範囲(オプション)、空白 文字、=、空白文字、値、空白文字かEOFで構成される。 アーキテクチャの有効範囲 変数名image otherのためだけに用意されている。空白文 字 無 し で変数名のすぐ後ろに続かなければならない。 [、大文字小文字を区別しないトー ク ン の サ ブ セッ トsun4, sun4c, sun4d, sun4e, sun4m, sun4uを,で区 切った文字列 (間に空白文字があってはいけない)、そし て最後に]で構成される。 ファイル名 い く つかの列変数はファイル名を予測する。 SILOでの ファイル名のフォーマットは以下の通りである: [][] or SILO 20 September 1999 1 SILO.CONF(5) SILO.CONF(5) [][][[-]] 前者ではサポートされたファイルシス テ ム(現 在ext2, ufs, romfs, iso9660)上で、ファイルまたはディレクト リを指定する。後者ではデバイス上で512Bブロックの 範 囲 を 指 定 す る。 デ バ イ スブロックの範囲のため に、, , [-]のいずれかは指定 し な け ればならない。最後の部分がなかった場合、デ フォルトでは[1-16](すなわち、デバイス-通常のSPARCの ブ ートブロック上でのオフセット512からの7280バイト) になる。 オプションのは、ファイルまたは範囲を 示 す デバイスのPROMでの名前である。構文については下記 を参照すること。 v2とP1275 PROMのためにデバイ ス 名 は;の す ぐ 後 に 続 かなければならない。デフォルト は、SILOがブートされたブートデバイスである。 オプションのは、そのデバイス上のパーティ ショ ン番号の1つである。最初のパーティションは1である(例 えばLinuxの/dev/sdaではこれは/dev/sda1にな る)。 デ フォ ル トは、デフォルトパーティション(設定ファイル のpartition変数の値)。 は/で始めなければならず、その デ バ イスのファイルシステム上のルートからのパス名でな ければならない (ルートファイルシステムでない限 り、 これはLinuxで見るパス名と異なる)。 は ロードされる範囲の最初のブロック番号(ブロック サイズは512バイト)、そして、は最後のブロック番号 に1を加えたものである。 も しgzip化されていてファイルがラムディスクでない限 り、ロードするときにSILOは、透過的にファイルを展 開 する。 デバイス名 ブ ート時に使用されるマシンのPROMバージョンに依存す る。古いPROM(v0)ではデバイス名の構文は次のように な る: (,,) 説明: はsd, st, xd, xy, fd, le, ieのうちの1つ。 は十進数でのコントローラー番号。 十進数でのデバイスid。 そしては0をベースとしてのパーティション番号。 SILO 20 September 1999 2 SILO.CONF(5) SILO.CONF(5) 例: sd(0,3,0) fd(0,0,0) 新しいPROM(v2)と全ての64ビットSPARCマシンのPROMのた めの構文は次のようになる: [:] は、 PROMデバイス ツリーのルートを表す/で始まり、ディスクデバイスノー ド までのツリーのルートからのノードを含む。もしノー ドが同じ名前の複数のノードを含み、そのようなノー ド を 指定するなら、 @の後に続く16進アドレスで曖昧性を 解決することができる。オプションでパーティション 番 号 は、 :に続くa(最初のパーティション)からh(最後、 8番目のパーティション)の文字で 指 定 で き る。 v2 PROMでのデバイス名の例を示す: /sbus@3,0/SUNW,fas@3,8800000/sd@0,0 /iommu/sbus/espdma@5,8400000/esp@5,8800000/sd@6,0:d /pci@1f,0/pci@1,1/ide@3/disk@2,0 /pci@1f,4000/ide/ata@0,0/cmdk@0,0 もしファイル名の一部としてv2 PROMデバイス名が記述さ れるなら(上記参照)、オプションのLinuxパーティション 番号と必須のパス名からデバイス名を区切る た め に、 ;が後に続かなければならない(注 後者の優先順位のため に、 2つのパーティション番号が記述されるこ と が あ る)。 変数名は大文字と小文字の区別をしない、列変数の値は大文字と 小文字の区別をする。 もしバックスラッシュでエスケープされる、またはダブルクオー トで括られるなら、ブランクとイコールは変数名または値の一部 であるだけかもしれない。イコールは変数名または値の単なる文 字でないかもしれない。 エスケープされたタブは、エスケープされたブランクに変換され る。エスケープされた改行は、入力ストリームから削除される。 エスケープされたバックスラッシュ(すなわち2つのバックスラッ シュ)は、バックスラッシュに変換される。ダブルクオートで 囲 まれた文字列では、バックスラッシュと改行をエスケープするこ とができる。 例: # Simple silo.conf timeout=50 partition=5 root=/dev/sda5 SILO 20 September 1999 3 SILO.CONF(5) SILO.CONF(5) read-only image=/boot/vmlinux label=linux image=/boot/vmlinux.old label=old グローバルオプション /etc/silo.confはおそらく空のグローバルオプションセクション から始まる。このセクションでは、最初のimageまたはotherの設 定まで、全ての変数の代入式について述べる。 以下のグローバルオプションが使用可能である: default=name デフォルトブートイメージとしてイメージを指定する の に使用する。もし`default'が省略された場合、設定ファ イルで最初に指定されたイメージが使用される。 message=message_filename ブートプロンプトの前に表示されるメッセージ を 含 む ファイルを指定する。 password=password パ スワードでブートを保護する。パスワードは設定ファ イルのクリアテキストで与えられる。そのた め、 設 定 ファ イルはスーパーユーザーだけが読めるようにしなけ ればならない。そして、パスワードはシステム上の他 の パスワードと異なる方が良い。 restricted timeout=tsecs キ ーボードからの入力のためのタイムアウト(1/10秒)を 設定する。キーが指定された時間の間押されなけれ ば、 最初のイメージが自動的にロードされる。 これらのグローバルオプションに加えて、プリイメージオプショ ン の append, device, fill-reboot-cmd, image, initrd- prompt, initrd-size, initrd, other, partition, pause- after, pause-message, ramdisk, read-only, read-write, rootを グ ローバルセクションに記述することができる。これら は、入力行で指定される任意のイメージのコンフィグレーション セクションで、指定されないなら、 (入力行オプションで上書き されない限り)デフォルトとして使用される。 プリイメージセクション プリイメージセクションは、 image=filename (ファイルからブートする)または other=partition_name SILO 20 September 1999 4 SILO.CONF(5) SILO.CONF(5) (デバイスからブートする)のどちらの行からでも始めることがで き る。 imageまたはotherの後に、直接アーキテクチャの有効範 囲(上記参照)を指定することができる。その場合、ブートするマ シンのアーキテクチャが指定されているなら、宣言されたイメー ジを利用することができる。もし指定されてない の な ら ば、 imageま た はother行とそれに続く関連したセクションは、設定 ファイルに存在しないものとして扱われる。例: image[sun4c,sun4d,sun4m]=/boot/vmlinux32.gz sun4c, sun4d, sun4mだけで、ファイル名が記述されたイメー ジ として宣言される。 SILOは透過的にgzipされたイメージを展開する。 otherで 設定されるpartition_nameは、パス名の部分のない上で 記述されている構文の通常のファイル名である。 よっ て そ れ は、(1か ら 始 ま る)パ ーティション番号、または(v2とP1275 PROMの)デバイス名と(;に続く)パーティション番号である。例: other=1 bootblock=/boot/old.b # Example with device for v0 PROM: other=sd(0,2,0)3 # Example with device for v2 or P1275 PROM: other=/iommu/sbus/espdma/esp/sd@3,0;3 filenameは次の2つの特別なトークンcatとlsを含むことが で き る。 両方とも、空白文字と何らかのファイル名(lsの場合ディレ クトリ名)が、続かなければならない。lsは、lsとディレクト リ 名の間に、オプションを指定することができる catはファイルを ロードし、スクリーンにその内容を表示する。 lsはスクリー ン に ディレクトリリストを表示する。 lsの構文は以下のようにな る。: ls [-[l][t][r]] オプションlは、ファイル名だけを表示する代わりに長いリス ト を生成する。オプションtは、名前でソートする代わりにmtimeで ソートする。そしてrは、逆順にソートする。 catとlsの両方 と も、トークンとファイル名の間に空白を含めなければならない。 それには、次のようにダブルクオートで囲めば良い: image="cat /etc/passwd" image="ls /lib/modules/" image="ls -lt /lib/" imageまたはother行から次のimageまたはother行までは、このイ メージセクションの変数の代入式とフラグを記述する。以下のオ プションとフラグが使用できる: label=name ブートローダは、そのイメージを識別するために、各 イ メ ー ジ の(パ ス 名なしの)ファイル名を使用する。変 SILO 20 September 1999 5 SILO.CONF(5) SILO.CONF(5) 数`label'を設定することで、異なる名前を使用すること ができる。 alias=name 同じエントリの2番目の名前は、エイリアスを指定するこ とによって、使用することができる。 partition=part_no ファイル名に明示的にパーティション番号を指定して な い 場 合、 使用するためのデフォルトパーティション番 号(1から8の1桁、sda1はpart_no 1)を指定する。 device=device_name ファイル名に明示的にパーティション番号を指定して な い 場合、使用するためのデフォルトデバイス名を指定す る。設定ファイルのグローバルセクション、またはプ リ イ メージセクションでdeviceを指定していない場合、デ フォルトは、SILOがブートしたデバイスになる。 append=string カーネルに渡されるパラーメータを記述するためのオ プ ショ ンを追加する。これは一般的に、自動的に発見でき ない、または発見したとしても危険な場合、ハード ウェ アのパラメータを指定するために使用される。 append = "video=sbusfb:off" literal=string `append'と似ているが、他のすべてのオプション(例えば ルートデバイスの設定)を無効にする。有効なオプション が、`literal'によって意図せずに無効にすることができ るので、このオプションは、グローバルセクションで 使 用することができない。 ramdisk=size オ プションのラムディスクのサイズを指定する。 0はラ ムディスクを生成しないことを示す。この変数が省略 さ れ た場合、ブートイメージに設定されているラムディス クのサイズが使用される。 read-only ルートファイルシステムを読み込み専用でマウントす る こ とを指定する。一般的に、システムはスタートアップ 時に、ルートファイルシステムを読み書きでき る よ う に、リマウントする(例えばfsckの後)。 read-write ル ートファイルシステムを読み書きできるようにマウン トすることを指定する。 root=root-device ルートとしてマウントするデバイスを指定する。 SILO 20 September 1999 6 SILO.CONF(5) SILO.CONF(5) proll=filename JavaStationのフラッシュインストールのために使 用 す る。PROLLと 呼ばれたIEEE P1275 PROM上で、古いSun v2 PROMをエミュレートするために実行するファイルを指 定 する。 initrd=filename ブ ート時にロードするラムディスクイメージのファイル を指定する。例: initrd=/images/initrd.img SILOはラムディスクイメージを展開しない。Linuxカーネ ルがそれを行う。ラムディスクイメージが1つのメディア に収まらない(通常フロッピー)場合、それを分割する こ と が で き、|で ファイル名のリストを区切る。この場 合、0以外のinitrd-sizeを指定しなければならない。 ま た、 イ メ ー ジ が 異 なるメディアに存在するなら、 initrd-promptも指定しなければならない。例(最初の フ ロッ ピーにinitrd1.imgがあり、 2番目のinitrd2.imgが ルートディレクトリにある。そして、2つのイメージのサ イズの合計が1700000バイトとする): initrd=/initrd1.img|/initrd2.img initrd-size=1700000 initrd-prompt initrd-size=size 1つ以上のラムディスクイメージがinitrdで設定されてい る時、このオプションには、記述されているすべての イ メ ージのサイズの合計を、バイトで指定しなければなら ない。たとえいくつかのサイズがまだ決定され て い な かったとしても、 SILOが、イメージのためにスペースを 確保することができるようにするために、指定する必 要 がある。 initrd-prompt 1つ以上のラムディスクイメージが指定された場合、ユー ザーがメディアを交換することができるように、異な る イ メージをロードする間にユーザーのキー入力を待つ。 このフラグは、いくつかの分割されたinitrdが同じデ バ イ スであるが、異なるリムーバブルメディア上に存在す る場合、必要である。それ以外の場合、例えば1つ は フ ロッ ピーから、 2つめはハードディスクからロードする 場合、そのようなオプションは必要ない (silo.confにそ のような記述をするのは問題である)。 bootblock=filename otherイメージセクション用のオプションである。どこか のパーティションからブートする要求があるが、その パ ー ティション上のブートブロックを何らかのファイルに 保存してなく、そのパーティション上に何らかのブー ト ブ ロッ ク が含まれている (例えばSILOのブートブロッ ク)ならば、このオプションには、ロードするブー ト ブ SILO 20 September 1999 7 SILO.CONF(5) SILO.CONF(5) ロックのファイル名を記述する必要がある。 SILOは、ま るでそれが指定されたパーティションからロードした か の ように、ファイルからイメージをロードし、それを実 行する。これは例えば、Solarisをディスクの最初のパー ティ ションにインストールしていて、マスターブートレ コーダ(すなわち最初のパーティションのブート ブ ロッ ク)に SILOをインストールしたい場合、役に立つ。まず 最初に、次のようにしてSolarisのブートブロックを何ら かのファイルに保存する: dd if=/dev/sda of=/boot/old.b bs=512 count=15 skip=1 そしてSILOをインストールして、silo.confに次の記述を 加える: other=1 bootblock=/boot/old.b こ れは当面UltraSPARC上で正常に動作しない点に注意す ること。 fill-reboot-cmd このフラグはLinuxカーネルだけに使用する。このフラグ が 記述された場合、ブートしたデバイスのSILOが、カー ネルのイメージ名と、設定ファイルまたは入力行で指 定 さ れ た す べ て の 引 数 に よっ て、 /proc/sys/kernel/reboot-cmdを初期化する。これは、ユ ー ザーがそのファイルを修正しなくて、システムをリブ ートする場合、最後にロードしたのと同じカーネルを ロ ー ドし、同じ引数を渡さなければならないことを意味す る。 pause-after このフラグが指定された場合、 SILOはカーネルをロード した後に停止して(そして指定された場合、ラムディスク の初期化を行う)処理を続ける前にユーザーにキー入力を 待つ。 pause-message=string pause-afterには、ユーザーにキー入力を促す時に、表示 する文字列を指定する。デフォルトは次のようになる: Press ENTER to continue. single-key 最後にを押すことなく、カーソルが入力行の最初 に ある状態で、 1つのキーを押すことによってイメージ をブートできるようにする。 single-keyは、イメージの ラ ベルまたはエイリアス(またはその両方とも)が、 1文 字でなければならない。もしそのようなイメージにパ ラ メ ータを指定する必要がある、または同じ文字で始まる 他のイメージをブートしたいならば、 single-keyの機能 を無効にするために、少なくとも1つスペースで始める必 SILO 20 September 1999 8 SILO.CONF(5) SILO.CONF(5) 要がある。 solaris このフラグは、ロードされたイメージがSolarisカーネル であることをSILOに指定する。ユーザーがSolarisブート ブロックを保存する必要がないように、 SILOは、指定さ れ た カ ーネルイメージをロードするために、 Solaris ufsbootセカンドステージローダを使用しようとする。通 常カーネル名は、/kernel/unix(必要ならば、SILOはパス の前に、 /platform/をプリペンドする)で あ る。 SILOで は、(ど んなデバイスやパーティションで も)/kernel/unixを、特別なパス名とする が、solarisは そ れ を デ フォ ルトとみなす。 Solarisのバージョン とPROMが異なるために、Solarisをロードするためのこの 方 法 が、 機能しないかもしれない点に注意すること。 SolarisとLinuxを同じディスク上で共有する推奨され た 方法は、 (マスターブートブロックに対して) Linuxをイ ンストールしたパーティション の ブ ー ト ブ ロッ ク に、SILOを インストールし、そのデバイスからブートす るためにPROMエイリアスを加えること で あ る。 例 え ば、SolarisがLinuxで のsda1に イ ンストールされてい て、 Linuxがsda4にインストール さ れ て い る な ら ば、silo.confは次のようになる: partition=4 timeout=50 image=/boot/vmlinux label=linux root=/dev/sda4 other=1 label=solaris SILOを次のように実行する: /sbin/silo -t そして、PROM上で(これはPROMバージョンに依存する。こ こではP1275を仮定する)、次のようにする: setenv boot-device /sbus/espdma/esp/sd@0,0:d (デフォルトで4番目(すなわちLinux)のパーティションか らブートするようにする) あるいは: nvalias linux /sbus/espdma/esp/sd@0,0:d nvalias solaris /sbus/espdma/esp/sd@0,0:a と して、PROM上でboot linuxまたはboot solarisのいず れでも、ブートできるよ う に す る。 前 者 の た め に、SILOプロンプトでsolarisと打って、 Solarisを起動 する可能性がまだある。 著者 SILOは、Jakub Jelinek と、 SparcLinuxチ SILO 20 September 1999 9 SILO.CONF(5) SILO.CONF(5) ーム(貢献者リストのドキュメントを参照)によって書かれた。 入手先 ソースの最新バージョンがftp://ultra.linux.cz/pub/silo/から 入手できるだろう。 関連項目 silo(8) 翻訳者 尾藤 正人 SILO 20 September 1999 10