FreeBSDはセカンダリIDEディスクから起動できません

FreeBSDはセカンダリIDEディスクから起動できません

2000年型PCにFreeBSD-7.4をインストールしました(※仕様は下記参照)。

ディスクがプライマリIDEスロットに接続されている場合、オペレーティングシステムは正常に起動しますが、中学校IDEソケットでは、「1. FreeBSDブート[デフォルト]」「3.セーフモードでFreeBSDブート」などのオプションを含むメニューを表示する最初の部分のみが起動します。

デフォルトの最初のオプションを選択すると、しばらく起動した後に表示されます。

Trying to mount from ufs:/dev/ad0s1a
freebsd manual root filesystem specification:
<fstype>:<device> [options]   Mount <device> using filesystem <fstype>
                                eg. ufs:/dev/da0s1a
  ?               List valid disk boot devices
  <empty line>    Abort manual input

役に立たないmountrootプロンプトを入力してください。タイピングする?

List of GEOM managed disk devices:
  ufsid/5c922e4292c8e9fa ufsid/5c922e435b48afb7 
ufsid/5c922e4343d7ab4b ufsid/5c922e44e470015a 
ufsid/5c922e424bf39462 ad2s1g ad2s1f ad2s1e 
ad2s1c ad2s1b ad2s1a ad2s1 ad2

mount ufsid/5c922e4292c8e9fa他のすべてのデバイスに入り、試してから戻ります。

Trying to mount root from mount ufsid/5c922e4292c8e9faなど、つまり有用な情報は提供されません。

同様の質問が投稿されました。混合IDE/SATAディスクと起動の問題しかし、それは役に立ちません。ただ似ているだけです。

IDE2ソケットから40ピンリボンIDEケーブルを外してIDE1ソケットに差し込むと、すべてが正常に戻ります。この問題は、ディスクがセカンダリプライマリIDEディスクとして使用される状況に制限されています。

実際、この問題は、同じFreeBSDインストールでプライマリIDEディスクから2番目のIDEディスクにアクセスしようとしたときに最初に発生しました。

mount /dev/ad1* /mnt/mydisk ad1*さまざまなオプションを実行すると、ad1s1すべて一貫して返され、セカンダリプライマリ ad1s1aIDE接続に問題があるため、2番目のIDEディスクをマウントできないようです。この問題はBiosの設定で解決できるようです。 「モード:LBA、Large、Auto」など、プライマリディスクとセカンダリIDEディスクに関連するBiosの設定はたくさんありますが、何かを知らず、誤って変更するためにランダムな設定を試したくありません。 。ad1s1bmount: /dev/ad1s1: Operation not permitted

セカンダリプライマリIDEから起動する方法とFreeBSDで2番目のIDEディスクを使用する方法は?

  • PC仕様:PII 400Mhz、Gigabyte Intel 440BX MoBo、512MB RAM、16MB RAMグラフィックカード、15GB Oantum Fireball IDEハードドライブ、Award Bios(2002ファームウェアを含む)

ベストアンサー1

ブートローダは、どのBIOSドライブがどのIDEチャネルとマスター/スレーブの場所にマップされているのかを確認できないため、ハードドライブが穴なしでマスター - スレーブ、マスター - スレーブの順序で満たされ、BIOSドライブC、D、E ...ドライブとしてad0、、ad1ad2

一方、IIRC FreeBSD 7ベースカーネル(GENERIC)にはハードワイヤードIDEドライブマッピングがあります。

  • /dev/ad0ジュニアマスターです
  • /dev/ad1主な負荷です
  • /dev/ad2二次マスターです
  • /dev/ad3補助奴隷

あなたの場合、メインチャンネルは使用されないため、BIOSはFreeBSDハードドライブにCドライブ(0x80)を割り当てます。その後、ブートローダはBIOSドライブC(/dev/ad0)スライス1(おそらくドライブの唯一のパーティション)BSDディスクラベルパーティションを確認してa起動し、そのパーティションを起動デバイスに変換し/dev/ad0s1aufs:/dev/ad0s1aカーネルに渡します。

一方、カーネルブートシーケンスはIDEチャネルを検索し、セカンダリマスターでFreeBSDドライブを探します。上記のハード配線スキームによると、コアはad2ドライバに割り当てられます(そうではありませんad0)。したがって、rootdevをマウントする必要があるときにad0s1aブートローダから渡された情報を見ることはできません。

設定(セカンダリマスターサーバーのFreeBSD)を維持するには、設定を変更する必要があります。スピード:

  1. FreeBSDを初めてインストールするときと同じIDEチャンネル(マスター/スレーブ)と同じ場所(マスター/スレーブ)にドライブを配置します。 (説明で見るとジュニアマスターのようです。)
  2. システムを起動します。
  3. 起動が完了したら、rootとしてログインします。
  4. 次のコマンドを実行して、ブートローダにad2(セカンダリマスターデバイス)をブートドライブとしてカーネルに渡すように指示します。
    echo 'vfs.root.mountfrom=ufs:/dev/ad2s1a' >> /boot/loader.conf
    
  5. システムをシャットダウンします。
  6. ドライブをセカンダリIDEチャネルに戻します。

/dev/ad2s1a次の起動から、カーネルはブートローダのプロンプトを無視し、ルートデバイスとして使用されます。

/boot/loader.conf注:ドライブを別のチャンネル/位置に移動するには、起動デバイスを調整する必要があります。

おすすめ記事