AHCIとしてBIOS SATAモードでブートが失敗するのはなぜですか?


8

一言で言えば、私はJetwayエンジニアと私自身のために、彼らが私にしたカスタムBIOSがSATAデバイスのAHCIモードでの起動を許可しない理由を理解しようとしています。

明らかに、これを*カスタムの経歴を考慮して質問することは困難ですが、うまく行けないので、誰かがいくつかのアイデアを提供できるように十分な詳細を提供できれば幸いです。

ボードはJetway NF98です。元の経歴は、アメリカのメガトレンドがトップにあると言います。コンパイルするためのソースコード(またはおそらくロゴのみ)を提供するだけであることを知りましたが、実際のBIOSを構成して作成するのはJetwayです。それで私はジェットウェイに連絡を取りました、そして彼らは信じられないほど役に立ちました。私は彼らに私の目標を伝えました、そして彼らはそれに権利を得てカスタムBIOSを出荷しました。

目標は単純で、BIOSを設定して、SATAポート0経由で接続されたディスク以外のメディアからの起動を拒否できるようにしました。彼らが提供したものはほぼ正確にそれを行いましたが、構成可能ではなかったことを除いて、SATAポート0以外のブートを許可しないように設定されていました。

そのため、カスタムバージョンのCrux Linuxディストリビューションを実行しているSATAディスクを接続します。BIOSのレポートでは、ディスクが接続されていないかのように接続してください(BIOS設定を見ると、ディスクがポート0に接続されていることが示されています)。

デバッグを行った後、SATAモードをAHCIからIDEに変更します。これにより、ディスクは表示されますが、起動はまだ失敗します。今回は少し先に進み、root /を探すと失敗します。

はじめに、私はLinuxブートのデバッグにかなりの経験があります。さらに、NF98に付属している標準のBIOSを使用して、このシステムの正確なコピー(ハードウェアとソフトウェアに関して)があります。ディスクを取り出して、標準のBIOSで起動すれば、すべてが成功します。カスタムBIOSに入れても成功しません。

さらにデバッグした後、これは私が知っていると思うものです:

-IDEとしてSATAモードを使用

--Linux(crux)はrootを探すまで起動します

--Vistaが正常に起動します

AHCIとしてSATAモードを使用

--Linux(crux)が正常に起動しない(さらに、起動プロセスが開始されない)

--Vistaが正常に起動しない(さらに、起動プロセスが開始されない)

Crux OSにはわずかに古いカスタムカーネルがあり、initramfs(これもカスタム)を使用しています。Jetwayエンジニアはカーネルのアップグレードを提案しましたが、私は十分公平だと思っていましたが、これは役に立ちませんでした。

次に、Arch Linuxを試してみると思いました。これもIDEモードでは失敗し、AHCIには表示されませんでした。これは3.0-ARCHカーネルでした。

次に、最後に、もう一度archをインストールしましたが、今回は単一パーティションにして、UUIDやLABELではなくdevを使用しました。AHCIモードでは、まだ表示されませんでした。IDEモードでも、ルートへの転送に失敗します。

しかし、Archのフォールバックブートメニューオプションを選択し、SATAモードがIDEの場合、ブートは半ば成功します。つまり、ログインプロンプトが表示されますが、起動中にまともなエラーが発生します。現在、違いを生んでいるものを探しています。

テキストが長いことをお詫びします。SATAモードのAHCIを備えたカスタムBIOSが起動しない理由を理解するために、なぜ、またはどこに目を向けるべきかについて誰かが何かアイデアを持っていますか?


3
これらのブート障害のいくつかは予想されます。OSがIDEモードでインストールされている場合、AHCIモードに切り替えた後はそのOSを起動できません。ブート用の適切なディスクドライバーをインストールする必要がありますが、これは通常、実行可能なオプションではありません。たぶんliveCDがこれを達成できるでしょう。通常、ディスクモードが変更された場合は、OSを完全に再インストールする必要があります
sawdust

回答:


1

AHCIモードがAmerican Megatrends BIOSでうまく機能しない可能性があります。Intel J1800 SoCを搭載した同様のボードのように見えるギガバイトGA-J1800N-D2Hでも同様の問題がありました。Linux Mint 17.2とxfce 32ビットを信頼できるCD-ROMからインストールしました。インストールが完了すると再起動しましたが、「ModemManager ... org.freedesktop.ModemManager1を取得できませんでした」というメッセージが表示されてシェルでスタックしました。HDDからいくつかの再起動を試みると、ほとんどの場合、「(initramfs)」に陥るか、「ata1.00:コマンドの失敗:READ FPDMA」というメッセージで行き詰まってしまいます。HDDをワイプした後、インストールを再試行しましたが、違いはありませんでした。

いくつかの赤いニシンを追跡した後、BIOSでSATAモードをAHCIからIDEに変更しようとすると、マシンが起動して完全にシャットダウンしました。念のため、前後に数回進みました。インストールはAHCIモードで実行されましたが、IDEモードでのみ起動してシャットダウンしました。

BIOSの詳細は次のとおりです。

ID:8A05AG03プロジェクト名:J1800N-D2Hバージョン:F4ビルド:2014年4月29日15:00:08

ボードはIDEモードで問題なく応答します。


1

これに遭遇した人を助けるかもしれない考慮すべき点がいくつかあります。

  1. BIOSがEUFI(-only)モードの場合、BIOS / UEFIでディスクが検出されない: UEFI BIOSはGPTパーティションディスクのみを表示します。ディスクが表示されない場合は、おそらく古いMBRパーティションディスクです。BIOSでレガシーモードを選択してMBRディスクを検出するか、パーティションツールを使用してディスクモードをGPTに変更するか、ディスクを完全にクリアします(すべてのパーティションを削除し、MBRをクリアします)。
  2. BIOSがAHCIモードのときにOSが起動しないが、BIOSがIDEモードのときに起動する: AHCI / IDEを切り替えた後、OSにAHCIまたはIDEドライバーがインストールされていない可能性があります。たとえばWindows 7では、インストール時のモードによって、インストールされるドライバーのタイプが決まります。regeditを使用して、HKLM / System / CurrentControlSet / Services / msahci / Start = 0およびHKLM / System / CurrentControlSet / Services / pciide / Start = 0レジストリキーを設定できます。次に、AHCI / IDE BIOSモードを切り替えるたびに、適切なドライバーを再インストールします。

0

Windows(および場合によっては他のOS)は、起動時にアクティブでない限り、AHCIモードのSATAドライバーをインストールしません。

ウィンドウ内でこれを解決するには:-

IDE(レガシー)モードで起動

  1. レジストリエディター(regedit.exe)を実行します。
  2. レジストリキーに移動します:HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services \ Msahci
  3. 「開始」値を0(ゼロ)に設定します
  4. レジストリキーに移動します:HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services \ Pciide
  5. 「開始」値を0(ゼロ)に設定します
  6. シャットダウン
  7. 再度起動しますが、Windowsが起動する前にBIOS設定に入ります

画面を開き、ディスクモードを「AHCI」に変更します。新しいBIOS設定を保存し、Windowsが起動するように再起動します。Windowsが起動すると、変更が検出され、新しいディスクドライバーが読み込まれ、もう一度再起動して起動します。

(ソース-https://www.neowin.net/forum/topic/987378-how-to-switch-from-ide-to-ahci-without-repairingreinstalling-windows/

システム上にあるLinux OSにも同様のプロセスがあると思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.