FreeBSD QandA 87

FreeBSD QandA

Q. セカンダリのマスタに FreeBSD を入れたとき、いつも boot: で
   1:wd(2,a)/kernel を入力するのは面倒なんですが。

A. セカンダリのマスタに FreeBSD を入れると、起動時は wd2 として認識されて
   しまうので、最初は "boot:1:wd(2,a)/kernel" というようにオプションをつけ
   なければ FreeBSD は起動してくれません。

   もし boot でオプションをつけずに直接 FreeBSD を起動させようとするな
   ら、方法は 2 つあります。ひとつ目は [管理番号 85] を参照してくださ
   い。もう一つの方法としてカーネルの再構築をして FreeBSD の入っている
   wd2 のドライブを wd1 として認識させる方法があります。

   必要な作業は
     1. カーネルコンフィグレーションファイルの変更
     2. カーネルの再構築
     3. デバイスファイルの作成
     4. /etc/fstab の変更
     5. 再構築したカーネルのインストール
   です。

   FreeBSD 2.2.x-RELEASE では IDE のみのシステムの場合

   1台目のディスク(wd0)  -       プライマリ マスタ   (wdc0 drive0)
   2台目のディスク(wd1)  -       プライマリ スレーブ (wdc0 drive1)
   3台目のディスク(wd2)  -       セカンダリ マスタ   (wdc1 drive0)
   4台目のディスク(wd3)  -       セカンダリ スレーブ (wdc1 drive1)

   という対応を前提としています。この対応はカーネルのコンフィグレーション
   ファイルで変更できます。
   例えば
      セカンダリのマスタに接続されている2台目のハードディスクを
      起動ディスクとする
   ような場合は wd1 に セカンダリマスタ (wdc1 drive0) を対応させる必要があ 
   ります。  

   注意:
      既にインストール済みの場合、デバイスファイルや /etc/fstab の内容は
      wd2 として作成されていますから、そのまま作り直したカーネルをインス
      トールして再ブートするとファイルシステムがマウントできなくなって何
      もできない状態になってしまうので気をつけて下さい。

   1. カーネルコンフィグレーションファイルの変更
   コンフィグレーションファイルの controller wdc のセクションを
   次のように変更します 

   そのためにはまず (/usr/src)/sys/i386/conf/GENERIC のファイルを
   適当な名前でコピーして以下のように一部変更します。
   変更箇所は 2,3 箇所。
   -------------------------------------------------------------------------
   ident                MYMACHINE ← 新しく作ったファイル名
   .....
   config               kernel  root on wd1 ← "wd0" から "wd1" に変更
   ....
   controller   wdc0    at isa? port "IO_WD1" bio irq 14 vector wdintr
   disk         wd0     at wdc0 drive 0

   controller   wdc1    at isa? port "IO_WD2" bio irq 15 vector wdintr
   # disk          wd2     at wdc1 drive 0              行頭に # を書いて無効化
   disk         wd1     at wdc1 drive 0 
                    ↑ FreeBSD の入っている wd2 を wd1 に変更


   2. カーネルの再構築
   このような設定を行なって カーネルの再構築を行ないます。コンフィグレー
   ションファイルの名前を MYMACHINE とした場合、

    # config MYMACHINE
    # cd ../../compile/MYMACHINE/
    # make depend
    # make

   ここではまだ再起動をしないで、そのまま次の操作に入ってください。

   3. デバイスファイルの作成
   wd1 で足りないデバイスファイルを作ります。2 台目のディスクの場合
    # cd /dev/dev
    # sh MAKEDEV wd1s1a

   4. /etc/fstab の変更
   /etc/fstab の変更を行ないます。

   FreeBSD が wd2 としてインストールしたときの /etc/fstab
   --------------------------------------------------------------------------
   /dev/wd2s1b                     none            swap    sw 0 0
   /dev/wd2a                       /               ufs     rw 1 1
   /dev/wd2s1f                     /usr            ufs     rw 1 1
   /dev/wd2s1e                     /var            ufs     rw 1 1
   proc                            /proc           procfs  rw 0 0
   /dev/wcd0c                      /cdrom          cd9660  ro,noauto 0 0
   --------------------------------------------------------------------------
   このファイルの "wd2*" をすべて "wd1*" に変更。

   5. 再構築したカーネルのインストール
   最後に再構築したカーネルをインストールします。
     # cd /usr/src/sys/compile/MYMACHINE
     # make install

   以上の作業を行なった後、再ブートすれば自動的に FreeBSD が起動するでしょ
   う。

同一グループへのリンク

グループ名: boot-config


間違い・追加情報を見付けた場合は、 修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで お知らせください。