SILO(8) SILO(8) 名前 SILO - SPARC用ブートローダ(Sparc Improved boot LOader) 書式 /sbin/silo [-r root_path] [-b secondary] [-i primary] [-C config-file] [-S backup-file] [-s backup-file] [-J flash- image ] [-p {0|2}] [-fFtuUvV] 説明 SILOはLinux, SunOS, Solarisをブートするために使用すること ができる。 SPARCマシン上のPROMから実行して、オペレーティン グシステムのロードを行うプログラムである。任意のext2, ufs, romfs, iso9660ファイルシステムからLinuxカーネルをロード す る能力を持つように、機能が拡張されている。 ブ ート時にSPARCのPROMは、ブートデバイスからブートブロック をロードする。このブートブロックはとても短いのでフル機能の ブ ー ト ロ ー ダ は収まらない。特にext2ファイルシステムで は1024バイトだけを予約しておいて、パーティションテーブル自 体 に512バイトを使用する。そのため、SILOは、全てのサポート されたファイルシステムを理解して、設定ファイル操作、入力行 の編集、オペレーティングシステムのロードを行うセカンドステ ージローダをロードするためのファーストステージローダの集合 で構成されている。 /sbin/siloは、(適 当なファーストステージが既にインストール されてなく、 -fオプションによってそれを強制されなけ れ ば) ブートブロックに適当なファーストステージローダをコピーする ことによって、ファーストステージローダのインストール を 行 い、 セ カンドステージローダ(通常/boot/second.b)の最初のブ ロック番号を書き込む。そして、セカンドステージロー ダ に、 second.bの全てのブロック番号と設定ファイルの名前と位置を記 録する。設定ファイル自体は、ブートローダによってブート時に 解析される。詳細はsilo.conf(5)を参照すること。 これは、SILOの新しいバージョンをインストールする場合、ある いはディスク上でセカンドステージローダを移動する場合だけ、 /sbin/siloを実行しなければならないことを意味する。インテル プラッ ト ホ ー ム 上 のLILOブ ー ト ロ ー ダ と 違っ て、 /etc/silo.confを編集する、あるいは新しいカーネルをインスト ールするたびに、再実行する必要はない。 /sbin/siloはSPARCでブート可能なCDを作成するのに使用され た が、 こ の 機 能はmkisofs(8)に持ち込まれたので、実行する前 に、SILOのファースト及びセカンドステージローダと設 定 を、 CDに置く必要があるだけになった。 オプション -r root_path あらゆる実行の前にroot_pathにchrootする。 Linux 11 February 2000 1 SILO(8) SILO(8) -b secondary secondaryを/boot/second.bの代わりに、セカンドステー ジローダとして使用する。 -i primary (/sbin/silo実行時のオプションや、マシンのアーキテク チャ に よっ て/boot/first.b, /boot/ultra.b, /boot/fd.bのいずれかに定まる) デフォルトのファー ス ト ステージローダの代わりに、 primaryをファーストス テージローダとしてインストールする。 -C config /etc/silo.confの代わりに違う設定ファイルを 指 定 す る。 設 定ファイルは、セカンドローダ(通常/boot/sec- ond.b)と (パーティションが異なったとしても) 物理 的 に同じディスク上に存在しなければならない。 -S backup-file backup-fileに古いブートブロックを強制的に保存する。 -s backup-file backup-fileが存在しない場合に限り、 backup-fileに古 いブートブロックを強制的に保存する。 -p {0|2} PROMバ ー ジョンを0か2にする。(デフォルトでは自動検 出) -f 強制的にブートブロックを上書きする。 -t セカンドステージローダを同じパーティションのブー ト ブ ロッ ク に 書 き 込 む。 デ フォ ル ト でSILOは、SCSI/IDEディスク上でマスターブートのブ ー トブロック (シリンダー0で始まっているパーティション のブートブロック) に書き込む。 -t でこの動作を変 え る。 -V バージョンを表示する。 -F romfsファ イ ルシステムからブートするためのブートブ ロックを生成する。ブート可能なromfsファイルシ ス テ ム(通 常フロッピー)を作成するために、そのファイルシ ステムのツリーを準備して、 -a 512 -A 2048,/..オ プ ショ ンを渡すことに注意して genromfs(8)を実行する。 そして、それをマウントし、-Fオプション付きで実行 す る。この手続きは、通常次のようになる: genromfs -d directory/ -f device -a 512 -A 2048,/.. mount -t romfs device mountpoint silo -r mountpoint -i /boot/fd.b -F umount mountpoint Linux 11 February 2000 2 SILO(8) SILO(8) -J flash-image フラッシュイメージからブートするためのブートブ ロッ ク を生成する。それを作成するために、そのファイルシ ステムのツリーを準備して、 -a 512オプションを渡すこ とに注意してgenromfs(8)を実行する。そして、それをマ ウントし、-Fオプション付きで実行する。そのファイ ル システムの先頭に、 1KBのスペースをELFブートブロック のためにとっておかなければならない。この手続き は、 通常次のようになる: dd if=/dev/zero of=flash.img bs=1k count=1 genromfs -a 512 -f romfs.img -d flash/ cat romfs.img >> flash.img rm -f romfs.img losetup /dev/loop0 -o 1024 flash.img mount -t romfs -o ro /dev/loop0 /mnt silo -J flash.img -i /boot/ieee32.b -r /mnt umount /mnt losetup -d /dev/loop0 jsflash flash.img -u マシンがUltraSPARCであると仮定する(デフォルトでは、 明らかに/sbin/siloを実行しているマシンである)。これ は 例 えば、 32ビットボックスから64ビットボックスに ディスクを移動する計画をしてい て、 /sbin/silo -f -uを 実行して、シャットダウン後ディスクを移動する場 合に役立つ。 -U マシンがUltraSPARCでないと仮定する。 -v PROMバージョンを表示して終了する。 ブート時の処理 PROMがSILOがインストールされているディスク及びパーティショ ン からブートする時、 SILOという文字列をスクリーンに出力す る (セカンドステージローダが移動された、または正常に動作し なくなったら、実際より少ない文字列が出力されるかもしれない し、止まるかもしれない)。もし、timeoutがsilo.conf(5)で指定 されていれば、ユーザーが何かのキーを押すまで、あるいはタイ ムアウトするまで待つ。タイムアウトした場合、デフォルトイメ ージがブートされる。そうでなければ、SILOは正常動作、すなわ ち文字列boot:を出力しユーザーの入力を待ち続ける。 プロンプトで、設定ファイルで提供されているlabel、もしく は い くつかのイメージのalias、加えて渡したい引数を入力するこ とができ、SILOはそのイメージでブートする。全ての引数を設定 に記述することも、全ての引数をコマンドラインで与えることも できる。空行を入力した場合、デフォルトイメージがロードされ るようになる。例: boot: linux boot: linux.old init=/bin/sh Linux 11 February 2000 3 SILO(8) SILO(8) ロ ー ド さ れ る イメージ名の後に渡す引数は、基本的に、通 常silo.conf(5)のappend変数で記述されるカーネル引数である。 それに加えて、いくつかの特別な引数は、SILOの内部で取り扱わ れ、カーネルには渡されない。 こ れ に は、initrd, initrd- size=number, initrd-prompt, pause-after, show-argumentsが 含まれる。 show-argumentsは、カーネルがロードされる前 に、 カーネルに渡される引数をスクリーンに表示する。その他のオプ ションは、 silo.conf(5)にある同名のフラグや変数名と同じ で ある。 また特別なキーワードとして、haltまたはhelpを入力することが できる。 haltはPROMに戻り、 helpはいくつかの不完全なヘルプ メッセージを表示する。 設 定ファイルに記述されていない(もしくは、見つからないまた は構文エラーにより設定ファイルをロードすることができない - SILOはこの場合これについてメッセージを表示するだろう) 何か のイメージまたは他のオペレーティングシステムをロードしたい な ら、ローカルのext2, ufs, romfs, iso9660ファイルシステム から任意のイメージをロードすることができ、任意の引数を渡す こ とができる。 SILOは、gzipされたイメージの透過的な解凍を 行う。 SILOにはファイル名またはパーティション名と引数を 完 全 に記述する。 SILOへの完全なファイル名とパーティション名 の構文については、 silo.conf(5)を参照すること。例: boot: /pci@1f,4000/ide/ata@0,0/cmdk@0,0;4/boot/vmlinux.new root=/dev/hda4 boot: 2/boot/vmlinux initrd=/boot/initrd.img boot: sd(0,2,0)2/boot/vmlinux.gz root=/dev/sdc2 init=/bin/sh ro も し single-keyイメージが設定ファイルにあれば、入力の始め にそのキーを押すと、すぐにそれがロードされる。その文字から 始まる異なるイメージをロードしたい、または引数を渡したい場 合は、自動スタートされないために、始めにスペースを入力する ことができる。 また、短いファイルの表示及びディレクトリリストを参照するこ とができる。詳細は、silo.conf(5)に記述されている。ここにい くつかの例を示す: boot: cat /etc/silo.conf boot: cat /sbus/espdma@1,280000/esp/sd@2,0;5/etc/inittab boot: ls -lt /lib/modules/ boot: ls /pci@1f,4000/ide/ata@0,0/cmdk@0,0;2/lib/ SILOは、 2つの異なる方法(全てのパスワード保護に加えて)でパ スワード保護できる。 1つ目は何らかのイメージを読み込むとき Linux 11 February 2000 4 SILO(8) SILO(8) にパスワードを要求する場合で、 2つ目はsilo.confに記述さ れ て いないイメージをロードする、またはsilo.confに記述されて いるイメージに何らかの引数を与える場合である。 著者 SILO は、Jakub Jelinek (jakub@redhat.com)に よっ て 書 か れ、GNU General Public Licenseの条件でリリースされた。詳細 はCOPYINGファイルを参照すること。このマニュアル は、Donald Barnes (djb@redhat.com)に よっ て書かれ、アップデートされ た。 貢献者 Mark Adler Wernel Almesberger Donald Barnes Eddie C. Dost Miguel de Icaza Jakub Jelinek David S. Miller Mauricio Plaza Adrian Rodrigues Andrew Tridgell Peter Zaitcev 関連項目 silo.conf(5), mkisofs(8), genromfs(8) 翻訳者 尾藤 正人 Linux 11 February 2000 5