[ 前のページ ] [ 概要 ] [ 著作権表示 ] [ 目次 ] [ 次のページ ]

Debian GNU/Linux 2.2 のインストール (Alpha)
章 6 インストーラのブート


この章では、まず初めに Debian のブートに関する一般的な情報について 説明した上で、個々のインストール方法についてそれぞれ節を設けて説明し、 最後にトラブルシューティングに関するアドバイスについて述べます。


6.1 ブートパラメータの引数

ブートパラメータは、周辺機器の正確な制御を保証するために、 一般的に用いられる Linux カーネルのパラメータです。 カーネルはたいてい周辺機器の情報を自動的に検出します。しかし、 場合によってカーネルには少々の補助が必要です。

ブートに用いるコンソールファームウェアによって、 カーネルにパラメータを渡す方法は異なってきます。 それらの方法については、それぞれのブート方法ごとに後述します。 ブートパラメータに関する完全な情報は、 Linux ブートプロンプト HOWTO にあります。この節では最も重要なパラメータの概略のみを扱います。

このシステムを初めてブートする場合は、デフォルトのブートパラメーター を試して (つまり、パラメーターになにも引数を設定しないで)、 正確に動作するかどうかを確認してください。 おそらくそれで問題はないでしょう。もしなにか問題があったら、 あとでリブートし、お使いのハードウェアに関する情報をシステムに 伝えるために必要になる、特別なパラメータを調べてください。

カーネルがブートする際そのプロセスの最初のほうで、 Memory: availablek/totalk available というメッセージが表示されるでしょう。 total は利用可能な全メモリー量をキロバイト単位で表しています。 もしこれが、実際に搭載している RAM の量と一致しなかったならば、 mem=ram というパラメータが必要でしょう。 ram のところには、実際に搭載しているメモリー量を、 キロバイト単位なら ``k''、メガバイト単位なら ``m'' を付加して当てはめます。 例えば mem=8192kmem=8m も 8MB の RAM を意味します。

お使いのモニタが白黒表示しかできないものでしたら、 ブート引数に mono を使ってください。 そうしなければ、インストールの際、標準でカラー表示が用いられます。

ブートの際にシリアルコンソールを使っているならば、 通常カーネルはこちらを自動検出します。 ただ、シリアルコンソール経由でブートしたいコンピュータに、 ビデオカード (フレームバッファ) とキーボードがあるならば、 カーネルに console=デバイス名 という引数を 渡す必要があるかもしれません。 デバイス名の箇所には、お使いになる シリアルデバイスを当てはめますが、 こちらは普通 ``ttyS0'' のようなものになるでしょう。

繰り返しますが、ブートパラメータに関する完全な情報は、 Linux ブートプロンプト HOWTO にあります。こちらにはマイナーなハードウェアに関する情報もあります。 また雑多な共通事項に関しては、ブートプロセスに関するトラブルシューティング, Section 6.10 にて説明します。


6.2 カーネルのスタートアップメッセージの解説

一連のブート作業が行われている間、 「〜が見つかりません can't find something」や、 「〜がありません something not present」、 「〜は初期化できません can't initialize something」、あるいは 「このリリースのドライバは、〜に依存しています this driver release depends on something」 といったたくさんのメッセージが表示されるかもしれません。 これらのメッセージのほとんどは、気にする必要のないものです。 というのも、これらのメッセージは、 インストーラのカーネルがさまざまな周辺機器に幅広く対応するように 構築されているために、表示されるものだからです。 明らかに、可能な限りあらゆる周辺機器を装備したようなコンピュータは 存在しません。そのためオペレーティングシステムは、 実際には搭載されていない周辺機器を探そうとしていくらか文句を言っているのです。 また、システムが短時間停止しているかに見えることもあるかもしれません。 このことは、実際にシステムに搭載されていないデバイスからの反応を、 カーネルが待っていることから起きることです。 もし、システムのブートに我慢できないほど時間がかかる場合は、 独自のカーネルを構築してください。(新しいカーネルのコンパイル, Section 8.4 をご覧ください。)


6.3 ハードディスクからのブート

場合によっては、既存のオペレーティングシステムからブートなさりたい かもしれません。 インストーラを他の方法を用いてブートすることは可能ですが、 基本システムはディスクからインストールしてください。


6.3.1 Linux パーティションからのインストール

ext2fs パーティション、あるいは Minix パーティションから Debian をインストールすることもできます。 こちらのインストール方法は、例えばすでにインストールされた Linux システムを Debian で完全に置き換える場合に適切です。

Debian のインストールのパーティションと、インストールのパーティションは、別にしなければならないことにご注意ください。 (すなわち、//usr/lib などそのすべてを別にしてください。)

既存の Linux パーティションからインストールする場合は、 以下の説明にしたがってください。

  1. 以下の一連のファイルを入手し、それらを Linux パーティションにある ディレクトリに置いてください。
  2. パーティションからインストールをする際、 他のブート方法のうち都合のよいものを用いることができます。 以下では、フロッピーでブートしていると仮定していますが、 もちろんどんなインストーラをどんな方法でブートしても構いません。
  3. ディスクイメージからフロッピーを作成する, Section 5.6.4で説明したように、Rescue Floppy を作成します。 また Driver Floppies が必要になることも覚えておいてください。
  4. Rescue Floppy をフロッピードライブに挿入して、 コンピュータをリブートしてください。
  5. 以下の節はとばして、インストーラのブート, 章 6をご覧ください。


6.4 CD-ROM からのインストール

もしブート可能な CD ドライブをお持ちで、お使いのアーキテクチャやシステムが CD-ROM からのブートをサポートしているなら、フロッピーはまったく必要ありません。 Alpha における CD-ROM からのブートは、i386 の場合よりも若干複雑です。 しかし、必要になるフロッピーの数を減らすためには、 この方法には試すだけの値打ちがあります。 CD やフロッピーからの Alpha システムのブートについては、 より詳しい情報を インストーラのブート, 章 6 にてご覧ください。

CD-ROMからブートできない場合でも、Debian の基本システムを CD-ROM からインストールすることは可能です。 単に他のインストール方法の一つを用いてブートしてください。 つまり、基本システムや追加パッケージをインストールするときに、 ``基本システムのインストール'', Section 7.12 の説明にしたがって、CD-ROM ドライブをインストールシステムとして選択すればよいのです。


6.5 TFTP からのブート

BOOTP サーバ と TFTP サーバの二つのサーバを設定する必要があります。

BOOTP は、あるコンピュータが自身の IP アドレスと、 ブートイメージをネットワークのどこから入手できるかを伝えるために 用意されている IP プロトコルです。 Sparc や PowerPC マシンの Open Firmware とは異なり、 SRM コンソールは自身の IP アドレスを調べるために RARP を使いませんので、Alpha マシンをネットワークブートするには BOOTP を利用しなければなりません。 なお、SRM コンソールで ネットワークインターフェイスの IP 設定を 直接設定することも可能です [3]。

簡易ファイル転送プロトコル Trivial File Transfer Protocol (TFTP) は、ブートイメージをクライアントに提供するために用いられます。 理論的には、これらのプロトコルが用意されていれば、 どんなプラットフォームのいかなるサーバでも利用できます。 この節の例では、SunOS 4.x、SunOS 5.x (別名 Solaris) と GNU/Linux 用のコマンドを紹介します。


6.5.1 BOOTP の設定

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 を再起動するだけで結構です。


6.5.2 TFTP サーバを有効化する

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 を実行してください。


6.5.3 TFTP イメージの設置

次に、必要な TFTP ブートイメージ tftpboot.imgシステムファイルインストールの解説, Section 5.4 で探し、それを tftpd ブートイメージディレクトリに置いてください。 一般的にこのディレクトリは、Debian では /boot に、 他のオペレーティングシステムでは /tftpboot になります。 そうしたら、このファイルから、 tftpd が特定のクライアントのブートに用いる ファイルにリンクを張らなければなりません。 残念ながら、そのファイル名のつけられ方に明確な標準というものはなく、 それは、TFTP クライアントによって異なってきます。

ただたいてい、TFTP クライアントが探すファイルは、 クライアントの IP アドレス (16 進数)-クライアントのアーキテクチャ となります。 クライアントの IP アドレス (16 進数) を算定するには、クライアントの IP アドレスの各バイトを取り出し、 それを 16 進数に変換してください。 お手元のマシンに bc プログラムがあれば、 このプログラムを使うこともできます。 この場合、最初に出力に 16 進数を使うよう設定するために obase=16 を発行して、それからクライアントの IP アドレスの各要素を一つずつ入力します。 クライアントのアーキテクチャに関しては、 いくつかの値を試してみてください。

Alpha の場合、SRM boot コマンドで引数 -file を用いるか、 BOOT_FILE 環境変数を設定して、 (相対パスでブートイメージを直接指定するかたちで) ファイル名を指定しなければなりません。 あるいは、(ISC dhcpd で filename 命令を使い) そのファイル名を BOOTP 経由で指定することもできます。 Open Firmware とは異なり、 SRM にはデフォルトのファイル名というものは存在しませんので、 上記の方法のいずれかを用いて ファイル名を指定しなければなりません。 一旦その名前が限定できたら、 ln /boot/tftpboot.img /boot/ファイルネーム のようにして、リンクを張ってください。

さあ、実際にお使いのシステムをブートする準備をしてください。 SRM でイーサネットインターフェイスは ewa という接頭辞を用いて名付けられ、 show dev コマンドを利用すると 以下のようにその一覧が表示されます。

     >>>show dev
     ewa0.0.0.9.0               EWA0              08-00-2B-86-98-65
     ewb0.0.0.11.0              EWB0              08-00-2B-86-98-54
     ewc0.0.0.2002.0            EWC0              00-06-2B-01-32-B0

そして、一番目のイーサネットインターフェイスからブートを行なう場合には、 以下のように入力します。

     >>>boot ewa0

シリアルコンソールを利用したい場合には、 console= パラメータをカーネルに伝えなければなりません。 こちらは SRM boot コマンドで 引数 -flags を利用することで行なえます。 シリアルポートには /dev 以下の対応するファイルと 同じ名前が付けられます。 例えば、ewa0 からブートし、 一番目のシリアルポートからコンソールを利用するには、 以下のように入力します。

     >>>boot ewa0 -flags console=ttyS0

NOT YET WRITTEN


6.5.4 TFTP および NFS ルートを用いてインストールする

RAM ディスクに余分なものをロードせず、 新たに作成した nfs-root ファイルシステムからブートすることから、 こちらの方法は 「メモリの少ないシステムへの TFTP によるインストール」 とよく似ています こちらの方法では、tftpboot イメージへのシンボリックリンクを カーネルイメージ (例えば linux-a.out) へのシンボリックリンクに 置き換える必要があります。 ネットワーク越しのブートに関する本文書の著者の経験はもっぱら、 同じサーバにすべてのデーモンが動作している RARP/TFTP に基づいたものです。 (sparc ワークステーションは、tftp リクエストを 先に送っておいた rarp リクエストに応答するサーバに返します。) しかし、Linux は BOOTP プロトコルもサポートしていますが、 この文書の著者は、それをどのように設定するのか知りません :-((。 このマニュアルにそれが同様に付記される必要はあるでしょうか?


6.6 Alpha コンソールファームウェア

コンソールファームウェアはフラッシュ ROM に収められ、 Alpha システムに電源が入ったときやリセットが行なわれたとき実行されます。 Alpha システムで用いられているコンソールの仕様には異なるものが二つあり、 以下の二種類のコンソールファームウェアが利用できます。

ユーザの観点からすれば、SRM と ARC の最も重要な相違点は、 選択するコンソールによって ブート可能なディスクパーティション構造が異なってくる点です。

ARC を使う場合、ブートディスクには (cfdisk などで作成した) MS-DOS パーティションテーブルを使わなければなりません。 そのため、ARC からぷーとする場合は、MS-DOS パーティションテーブルが 「ネイティブ」なパーティションフォーマットになります。 実際、AlphaBIOS にはディスクパーティションユーティリティが含まれているので、 Linux をインストールする前に、ファームウェアのメニューから ご自分のディスクのパーティションを作成されたいかもしれません。

反対に、SRM は MS-DOS パーティションテーブルとは非互換です [4]。 Tru64 Unix は BSD ディスクラベルフォーマットを利用するために、 SRM をインストールする場合、 こちらが「ネイティブ」なパーティションフォーマットとなります。

GNU/Linux は、両方のコンソールからブートできる 唯一の Alpha 用オペレーティングシステムです。 そのため、その選択は、同一のマシン上で他にどのような オペレーティングシステムを動作させたいかによっても異なってくるでしょう。 他の Unix ライクなオペレーティングシステム (Tru64 Unix や FreeBSD、OpenBSD、NetBSD) は SRM からのみブートでき、一方、Windows NT は ARC からのみブートできます、

以下の表は、利用可能でサポートされている システムおよびコンソールの組み合わせをまとめたものです。 (機種名については CPU や、マザーボード、ビデオカード のサポート, Section 2.1.2 をご覧ください。). 以下に示されている `ARC' という単語は、 あらゆる ARC 互換コンソールを指しています。

     機種           サポートされているコンソールタイプ
     ====           ==================================
     alcor          ARC か SRM
     avanti         ARC か SRM
     book1          SRM のみ
     cabriolet      ARC か SRM
     dp264          SRM のみ
     eb164          ARC か SRM
     eb64p          ARC か SRM
     eb66           ARC か SRM
     eb66p          ARC か SRM
     jensen         SRM のみ
     lx164          ARC か SRM
     miata          ARC か SRM
     mikasa         ARC か SRM
     mikasa-p       SRM のみ
     nautilus       ARC のみ (マザーボードのマニュアルをご覧ください。)
     noname         ARC か SRM
     noritake       SRM のみ
     noritake-p     SRM のみ
     pc164          ARC か SRM
     rawhide        SRM のみ
     ruffian        ARC のみ
     sable          SRM のみ
     sable-g        SRM のみ
     sx164          ARC か SRM
     takara         ARC か SRM
     xl             ARC のみ
     xlt            ARC か SRM

一般的に Linux を直接ブートできるコンソールはありませんので、 ブートローダの仲介による補助が必要になります。 Linux ローダには主に MILOaboot の二つがあります。

MILO はそれ自身がコンソールであり、 メモリ上で ARC や SRM に取って替ります。 MILO は ARC および SRM のどちらからでもブートが可能で、 ARC コンソールから Linux をブートする唯一の方法でもあります。 MILO はプラットフォームに依存し、 (それぞれのシステムに応じて異なる MILO が必要になるので、) MILO はそれらのシステム向けのもののみ存在します。 各システム向けの ARC サポートは上記の表に示されています。 (残念なことに更新はされていませんが) MILO HOWTO もご覧ください。

aboot は小さな、プラットフォーム独立のブートローダです。 こちらは SRM からのみ動作します。 aboot に関するより詳しい情報については、 (残念なことに更新はされていませんが) SRM HOWTO をご覧ください。

システムのコンソールファームウェアによって、 また、MILO が利用できるかどうかによって、 一般的には以下の三つの方法があります。

     SRM -> aboot
     SRM -> MILO
     ARC -> MILO

Alpha Processor, Inc. の UP1000 マザーボード (サブアーキテクチャ名 `nautilus') は他のものとは異なっています。 こちらは API 専用のブートローダを利用し、 AlphaBIOS ファームウェアの下で動作します。 UP1000 用のインストールディスクは (まだ) ありませんが、 マニュアルの説明にしたがい、インストールディスクの root.bin を利用して、`generic' あるいは `nautilus' カーネルをブートすればインストールはできるはずです。

現行 (2000 年 2 月現在) の Alpha システムのすべてで MILO が利用できるわけではないことや、 SRM ファームウェアを旧式の Alpha に用意するために OpenVMS や Tru64 Unix のライセンスを購入する必要がもはやないことから、 GNU/Linux を新たにインストールする際、 Windows NT とのデュアルブートが必要なく、 DOS パーティションディスクがないならば、 SRM および aboot の利用をお勧めします。

AlphaServer の大半や、現行のサーバおよびワークステーション製品には、 そのファームウェアに SRM および AlphaBIOS の両方が含まれています。 さまざまな拡張ボードのような "half-flash" マシンならば、 ファームウェアを更新することで、 異なるファームウェアに切り替えることもできます。 また、一度 SRM をインストールすれば、(`arc' コマンドを利用して) フロッピーディスクから ARC/AlphaBIOS を実行することができます。

他のアーキテクチャの場合と同様、Debian をインストールする前に、 ファームウェア [5] は利用できる最新のバージョンをインストールしてください。 Alpha の最新ファームウェアは Alpha ファームウェアアップデート から入手できます。


6.7 SRM コンソールからのブート

SRM プロンプト (>>>) で、 以下のコマンドを発行してください。

     >>> boot dva0 -flags 0

場合によっては dva0 の箇所を 実際のデバイス名に置き換えてください。 通常、dva0 はフロッピーです。

     >>> show dev

と入力すれば、(例えば CD からブートを行ないたい場合などに) デバイス一覧を見ることができます。 MILO を利用してブートを行なう場合は、 -flags 引数が無視されることにご注意ください。 そのため boot dva0 と入力してください。

すべてが適切に動作していたら、 Linux カーネルがブートしているのを確認できるでしょう。

aboot を利用してブートする際に、 カーネルパラメータを指定したい場合は、 以下のコマンドを用いてください。

     >>> boot dva0 -file linux.gz -flags
     "root=/dev/fd0 load_ramdisk=1 arguments"

(こちらを一行で入力し、) 必要があれば、 dva0 となっている SRM ブートデバイス名を、 fd0 のような Linux ブートデバイス名に置き換え、 必要なカーネルパラメータを arguments の箇所で指定してください。

MILO を利用してブートを行なう際に、 カーネルパラメータを指定したい場合は、 一旦 MILO のプロンプトを呼び出して、 ブートストラップを中断する必要があるでしょう。 MILO によるブート, Section 6.9 をご覧ください。


6.8 ARC や AlphaBIOS コンソールからのブート

OS 選択メニューで、ブートローダとして linload.exe を、 OS パスとして milo を指定してください。 ブートには新規に作成したエントリを用いてください。


6.9 MILO によるブート

インストーラをブートするには、MILO のプロンプトで 以下のコマンドを入力してください。

     MILO> boot fd0:linux.gz root=/dev/fd0 load_ramdisk=1

フロッピー以外のメディアからブートを行ないたい場合は、 上記の例にある fd0 の箇所を、 Linux 式の適切なデバイス名に変更してください。 なお、help コマンドを使えば、MILO の簡単なコマンドリファレンスを参照することができます。


6.10 ブートプロセスに関するトラブルシューティング

もし何か問題があって、ブートプロセスの最中にカーネルがハングしたり、 実際に搭載してある周辺機器やドライブが正確に認識されなかった場合は、 まず最初に、ブートパラメータの引数, Section 6.1 の説明の通りにブートパラメーターを 確認してください。

またこのような問題は、増設したカードや周辺機器を取り外すことで 解決できることもよくあります。こちらも試してみて、 もう一度ブートしてみてください。

もしまだ何か問題がある場合は、バグレポートを提出してみてください。 これは、submit@bugs.debian.org 宛に電子メールで送ってください。 なお、その電子メールの先頭行には必ず以下の記述を付け加えてください。

     Package: boot-floppies
     Version: version

version のところに、お使いの boot-floppies パッケージのバージョンを必ず書き添えてください。 もしそのバージョンがご不明の場合は、そのフロッピーをダウンロード した日付を、どのセクション ( ``stable'' や ``frozen'' など) からダウンロードしたかを添えて、書いてください。

バグレポートには以下のような情報を添えてください。

     architecture: alpha
     model:        お使いになっているハードウェアのモデル名
     memory:       RAM の量
     scsi:         もしあれば、SCSI ホストアダプタの名前
     cd-rom:       CD-ROM のモデル名とインターフェースの種類 (例えば ATAPI)
     network card: もしあれば、ネットワークインターフェースカードの名前
     pcmcia:       PCMCIA デバイスの詳細

問題の性質にもよりますが、インストール先のディスクが IDE ディスクなのか SCSI ディスクなのか、また、オーディオのような他の周辺機器、ディスク容量、 ビデオカードのモデル名などの情報を書き添えることも有益でしょう。

バグレポートの際には、カーネルがハングした際最後に表示される カーネルメッセージを添えて、何が問題なのかを説明してください。 また、問題が起きるまでにシステムに対して行ったことも記述してください


[ 前のページ ] [ 概要 ] [ 著作権表示 ] [ 目次 ] [ 次のページ ]
Debian GNU/Linux 2.2 のインストール (Alpha)
version 2.2.20, 25 November, 2000
Bruce Perens
Sven Rudolph
Igor Grobman
James Treacy
Adam Di Carlo