この章では、まず初めに Debian のブートに関する一般的な情報について 説明した上で、個々のインストール方法についてそれぞれ節を設けて説明し、 最後にトラブルシューティングに関するアドバイスについて述べます。
ブートパラメータは、周辺機器の正確な制御を保証するために、 一般的に用いられる Linux カーネルのパラメータです。 カーネルはたいてい周辺機器の情報を自動的に検出します。しかし、 場合によってカーネルには少々の補助が必要です。
ブートパラメータに関する完全な情報は、 Linux
ブートプロンプト HOWTO
にあります。この節では最も重要なパラメータの概略のみを扱います。
このシステムを初めてブートする場合は、デフォルトのブートパラメーター を試して (つまり、パラメーターになにも引数を設定しないで)、 正確に動作するかどうかを確認してください。 おそらくそれで問題はないでしょう。もしなにか問題があったら、 あとでリブートし、お使いのハードウェアに関する情報をシステムに 伝えるために必要になる、特別なパラメータを調べてください。
カーネルがブートする際そのプロセスの最初のほうで、 Memory: availablek/totalk available というメッセージが表示されるでしょう。 total は利用可能な全メモリー量をキロバイト単位で表しています。 もしこれが、実際に搭載している RAM の量と一致しなかったならば、 mem=ram というパラメータが必要でしょう。 ram のところには、実際に搭載しているメモリー量を、 キロバイト単位なら ``k''、メガバイト単位なら ``m'' を付加して当てはめます。 例えば mem=8192k も mem=8m も 8MB の RAM を意味します。
お使いのモニタが白黒表示しかできないものでしたら、 ブート引数に mono を使ってください。 そうしなければ、インストールの際、標準でカラー表示が用いられます。
ブートの際にシリアルコンソールを使っているならば、 通常カーネルはこちらを自動検出します。 ただ、シリアルコンソール経由でブートしたいコンピュータに、 ビデオカード (フレームバッファ) とキーボードがあるならば、 カーネルに console=デバイス名 という引数を 渡す必要があるかもしれません。 デバイス名の箇所には、お使いになる シリアルデバイスを当てはめますが、 こちらは普通 ``ttyS0'' のようなものになるでしょう。
繰り返しますが、ブートパラメータに関する完全な情報は、 Linux
ブートプロンプト HOWTO
にあります。こちらにはマイナーなハードウェアに関する情報もあります。
また雑多な共通事項に関しては、ブートプロセスに関するトラブルシューティング,
Section 6.6 にて説明します。
一連のブート作業が行われている間、 「〜が見つかりません can't find something」や、 「〜がありません something not present」、 「〜は初期化できません can't initialize something」、あるいは 「このリリースのドライバは、〜に依存しています this driver release depends on something」 といったたくさんのメッセージが表示されるかもしれません。 これらのメッセージのほとんどは、気にする必要のないものです。 というのも、これらのメッセージは、 インストーラのカーネルがさまざまな周辺機器に幅広く対応するように 構築されているために、表示されるものだからです。 明らかに、可能な限りあらゆる周辺機器を装備したようなコンピュータは 存在しません。そのためオペレーティングシステムは、 実際には搭載されていない周辺機器を探そうとしていくらか文句を言っているのです。 また、システムが短時間停止しているかに見えることもあるかもしれません。 このことは、実際にシステムに搭載されていないデバイスからの反応を、 カーネルが待っていることから起きることです。 もし、システムのブートに我慢できないほど時間がかかる場合は、 独自のカーネルを構築してください。(新しいカーネルのコンパイル, Section 8.4 をご覧ください。)
場合によっては、既存のオペレーティングシステムからブートなさりたい かもしれません。 インストーラを他の方法を用いてブートすることは可能ですが、 基本システムはディスクからインストールしてください。
ext2fs パーティション、あるいは Minix パーティションから Debian をインストールすることもできます。 こちらのインストール方法は、例えばすでにインストールされた Linux システムを Debian で完全に置き換える場合に適切です。
Debian
のインストール元のパーティションと、インストール先のパーティションは、別にしなければならないことにご注意ください。
(すなわち、/
、/usr
、/lib
などそのすべてを別にしてください。)
既存の Linux パーティションからインストールする場合は、 以下の説明にしたがってください。
http://http.us.debian.org/debian/dists/potato/main/disks-arm/current/base2_2.tgz
もしブート可能な CD ドライブをお持ちで、お使いのアーキテクチャやシステムが CD-ROM からのブートをサポートしているなら、フロッピーはまったく必要ありません。
CD-ROMからブートできない場合でも、Debian の基本システムを CD-ROM からインストールすることは可能です。 単に他のインストール方法の一つを用いてブートしてください。 つまり、基本システムや追加パッケージをインストールするときに、 ``基本システムのインストール'', Section 7.12 の説明にしたがって、CD-ROM ドライブをインストールシステムとして選択すればよいのです。
と TFTP サーバの二つのサーバを設定する必要があります。
簡易ファイル転送プロトコル Trivial File Transfer Protocol (TFTP) は、ブートイメージをクライアントに提供するために用いられます。 理論的には、これらのプロトコルが用意されていれば、 どんなプラットフォームのいかなるサーバでも利用できます。 この節の例では、SunOS 4.x、SunOS 5.x (別名 Solaris) と GNU/Linux 用のコマンドを紹介します。
GNU/Linux から利用できる BOOTP サーバには、 CMU bootpd と ISC dhcpd の二つがあります。 これらはそれぞれ Debian GNU/Linux の bootp および dhcp パッケージに収録されています。
CMU bootpd を利用するには、まず最初に /etc/inetd.conf にある適切な行を (加えるなり) コメントから外すなりしなければなりません。 そのためには Debian GNU/Linux の場合、 update-inetd --enable bootps を実行してから、 /etc/init.d/inetd reload を実行すればよいでしょう。 その行は以下のようになっているはずです。
bootps dgram udp wait root /usr/sbin/bootpd bootpd - i -t 120
次に /etc/bootptab ファイルを作成しなければなりません。 こちらは、古きよき BSD の printcap(5) および、 termcap(5)、disktab(5) ファイルと似た、 暗号形式になっています。 より詳しい情報については、bootptab(5) man ページをご覧ください。 なお、CMU bootpd を利用する場合、 クライアントのハードウェア (MAC) アドレスを調べておかなければなりません。
一方、ISC dhcpd を利用しての BOOTP の設定はとても簡単です。 というのも ISC dhcpd は、BOOTP クライアントを DHCP クライアントの特別な一例として適切に扱ってくれるからです。 ブートイメージのファイル名や、 クライアント対クライアントで NFS ルートのパスなどを オプションとして指定したい場合や、 ご自分のマシンに BOOTP や DHCP を使って 固定アドレスを割り当てたい場合を除けば、 クライアントのハードウェア (MAC) アドレスを調べる必要はまったくありません。 クライアントが所属するサブネットの設定ブロックに allow bootp 命令を追加した上で、 /etc/init.d/dhcpd restart として dhcpd を再起動するだけで結構です。
TFTP サーバを用意するためには、 最初に tftpd
が動作するようになっているかを確認してください。 普通
/etc/inetd.conf
に以下の行を付け加えれば、 tftpd
が動作するように設定できます。
tftp dgram udp wait root /usr/etc/in.tftpd in.tftpd -l /boot
このファイルをご覧になって、in.tftpd
の引数として使われているディレクトリを覚えておいてください。
後で必要になります。 in.tftpd
のバージョンによっては、
-l オプションを用いることで、
システムログにすべてのリクエストを記録することができます。
こちらはブートエラーを診断するのに有益です。 もし /etc/inetd.conf
に変更が必要だったならば、 このファイルに変更があったことを、 実行中の
inetd
のプロセスに伝える必要があります。 Debian マシンなら
/etc/init.d/netbase reload (potato/2.2 以降のシステムでは
/etc/init.d/inetd reload) を実行し、
また他のマシンでは、inetd
のプロセス ID を探して、 kill -1
inetd のプロセス ID を実行してください。
次に、必要な TFTP ブートイメージ tftpboot.img
を システムファイルインストールの解説,
Section 5.4 で探し、それを tftpd
ブートイメージディレクトリに置いてください。 一般的にこのディレクトリは、Debian
では /boot
に、 他のオペレーティングシステムでは
/tftpboot
になります。 そうしたら、このファイルから、
tftpd
が特定のクライアントのブートに用いる
ファイルにリンクを張らなければなりません。
残念ながら、そのファイル名のつけられ方に明確な標準というものはなく、
それは、TFTP クライアントによって異なってきます。
ただたいてい、TFTP クライアントが探すファイルは、 クライアントの IP
アドレス (16 進数)-クライアントのアーキテクチャ となります。
クライアントの IP アドレス (16 進数) を算定するには、クライアントの
IP アドレスの各バイトを取り出し、 それを 16 進数に変換してください。
お手元のマシンに bc
プログラムがあれば、
このプログラムを使うこともできます。 この場合、最初に出力に 16
進数を使うよう設定するために obase=16
を発行して、それからクライアントの IP アドレスの各要素を一つずつ入力します。
クライアントのアーキテクチャに関しては、
いくつかの値を試してみてください。 一旦その名前が限定できたら、 ln
/boot/tftpboot.img /boot/ファイルネーム
のようにして、リンクを張ってください。
さあ、実際にお使いのシステムをブートする準備をしてください。
NOT YET WRITTEN
RAM ディスクに余分なものをロードせず、 新たに作成した nfs-root ファイルシステムからブートすることから、 こちらの方法は 「メモリの少ないシステムへの TFTP によるインストール」 とよく似ています こちらの方法では、tftpboot イメージへのシンボリックリンクを カーネルイメージ (例えば linux-a.out) へのシンボリックリンクに 置き換える必要があります。 ネットワーク越しのブートに関する本文書の著者の経験はもっぱら、 同じサーバにすべてのデーモンが動作している RARP/TFTP に基づいたものです。 (sparc ワークステーションは、tftp リクエストを 先に送っておいた rarp リクエストに応答するサーバに返します。) しかし、Linux は BOOTP プロトコルもサポートしていますが、 この文書の著者は、それをどのように設定するのか知りません :-((。 このマニュアルにそれが同様に付記される必要はあるでしょうか?
もし何か問題があって、ブートプロセスの最中にカーネルがハングしたり、 実際に搭載してある周辺機器やドライブが正確に認識されなかった場合は、 まず最初に、ブートパラメータの引数, Section 6.1 の説明の通りにブートパラメーターを 確認してください。
またこのような問題は、増設したカードや周辺機器を取り外すことで 解決できることもよくあります。こちらも試してみて、 もう一度ブートしてみてください。
もしまだ何か問題がある場合は、バグレポートを提出してみてください。
これは、submit@bugs.debian.org
宛に電子メールで送ってください。
なお、その電子メールの先頭行には必ず以下の記述を付け加えてください。
Package: boot-floppies Version: version
version のところに、お使いの boot-floppies パッケージのバージョンを必ず書き添えてください。 もしそのバージョンがご不明の場合は、そのフロッピーをダウンロード した日付を、どのセクション ( ``stable'' や ``frozen'' など) からダウンロードしたかを添えて、書いてください。
バグレポートには以下のような情報を添えてください。
architecture: arm model: お使いになっているハードウェアのモデル名 memory: RAM の量 scsi: もしあれば、SCSI ホストアダプタの名前 cd-rom: CD-ROM のモデル名とインターフェースの種類 (例えば ATAPI) network card: もしあれば、ネットワークインターフェースカードの名前 pcmcia: PCMCIA デバイスの詳細
問題の性質にもよりますが、インストール先のディスクが IDE ディスクなのか SCSI ディスクなのか、また、オーディオのような他の周辺機器、ディスク容量、 ビデオカードのモデル名などの情報を書き添えることも有益でしょう。
バグレポートの際には、カーネルがハングした際最後に表示される カーネルメッセージを添えて、何が問題なのかを説明してください。 また、問題が起きるまでにシステムに対して行ったことも記述してください