USB3 PCIeカードからGrub2を起動する

USB3 PCIeカードからGrub2を起動する

PCの内蔵ハードドライブにgrub2をインストールし、USBフラッシュドライブからDebianインストールを起動してみました。 PCにはUSB 3ポートがなく、USB 3 PCIeカードを追加しました。ほとんどのPCIe USB3カードには起動ROMがないことがわかっているので、ハードドライブからgrub2をロードしてからUSBフラッシュドライブから起動する予定です。

USBキーをUSB 2ポートに接続すると、すべての設定が正しく機能します。 PCIeカードのUSB3ポートに接続しようとすると、次のエラーが発生します。

ブロック参照エラー:該当デバイスなし:ここにドライブのUUID

その後、グラブはリカバリモードになり、lsは(hd0)、(hd0、msdos1)、(hd0、msdos2)のみを表示します。したがって、grubがUSBキーを「見る」ことができないのと同じです。

usb、usbms、xhci、echi、uhciのinsmodを/boot/grub/grub.cfgに追加しました。 USB 3ポートがLinuxで動作することを知っています。これは、ハードドライブのディストリビューションで実行するときにポートのUSBキーを介してインストールできるためです。 grub2にPCIe USBポートをサポートさせる方法はありますか?

答え1

USBコントローラごとに異なるGRUBモジュールが必要です。

  • USB 1.xの場合はGRUBにohci.moduhci.mod
  • USB 2.0の場合、GRUBにはehci.mod
  • USB 3.xの場合、そのモジュールはありますが、xhci.modこの記事を書いている時点では、GRUBにこのドライバモジュールがないようです。

ほとんどの新しいシステムには、ファームウェアレベルに組み込まれているUSBをサポートするUEFIファームウェアがあるように見えるため、開発者はGRUBがネイティブUSB3 XHCIコントローラのサポートを必要としないと予想できます。残念ながら、これはあなたのような追加のカードユーザーが運がないことを意味します。

最近まで、ほとんどのUSB 3対応システムには、以前のバージョンと互換性のあるEHCIコントローラと2つの間のスイッチングプロトコルが含まれていました。これにより、システムがEHCIコントローラから起動し、最初にUSBポートを駆動し、ドライバがロードされた後にXHCIコントローラに切り替えることができます。これらのシステムにより、GRUBはEHCIドライバモジュールのみを使用して多数のUSB機能を実装できます。

Windows 7(内蔵USB 3をサポートしていない最後の主要なオペレーティングシステム)がサポート終了に近づくにつれて、ハードウェアメーカーはXHCI専用のチップセットとシステムの製造を開始しました。これにより、GRUBのXHCIドライバモジュールの必要性が高まる可能性があります。しかし、フル機能のXHCIドライバは複雑な問題であり、それを開発するのはかなり難しい作業です。

システムがUEFIファームウェアを使用している場合は、別の可能性があります。xhciDxe.efiXHCI USBコントローラ用のUEFIドライバが見つかった場合は、適切なUEFI NVRAM変数を設定してそれらをロードできます。これにより、XHCI USBはUEFIファームウェア機能ユーザーをサポートします。 GRUBのUEFIバージョンを含みます。私が知っている限り、これはAppleハードウェアでLinuxを実行するときに必要なことです。しかし、ここでバージョンを見つけましたxhciDxe.efi

答え2

Grub2モジュールとLinuxカーネルモジュールは同じではありません。つまり、Linuxでこれを行うと

lspci -k

そして、PCIeカードがどのモジュールを使用しているかを確認してください。 grub2と同じモジュールではありません。おそらく、grub2には同様のモジュールがないかもしれません。

grub2で以下をロードしてみてください:

  • lspci
  • PCIダンプ
  • PCI
  • PCI設定

源泉:http://www.linux.org/threads/understanding-the-various-grub-modules.7535/

答え3

UEFI以外のPC(BIOS LEGACY)でLinuxまたはWindowsを含むUSB 3.0ドライブからPCI-Eを介して起動する唯一の方法は、USBスティックにシステムをインストールすることです。たとえば、USB 2.0(プライマリドライブとして機能する)を介して起動チャネル)、次にPCI-E USB 3.0接続で動作する最終ドライブにオペレーティングシステムを複製します。

USB 2.0 USBスティックからオペレーティングシステムを起動すると、UUIDを介してPCI-EのUSB 3.0接続ドライブが自動的に呼び出されます。

関連情報