Update-grubはNVMEドライブ上のWindows 10システムを検出します。生成された項目を開始できません。 UFIシステムではありません。

Update-grubはNVMEドライブ上のWindows 10システムを検出します。生成された項目を開始できません。 UFIシステムではありません。

grub 2でUbuntu 18.04.2 LTSをインストールし、SATA SSDドライブから起動しました。 UEFIではなくBIOSシステムです。

Windows 10をnvmeドライブに復元し、「Macrium Reflect」回復USBを使用して起動構造とドライバを回復しました。 nvmeドライバはVirtualBoxから正常に起動します。だから私はWindows 10ディスクが正しく構成されていると思います。

% lsblk  -no name,serial,type,tran /dev/nvme0n1 
nvme0n1     S466NX0KB54472K disk nvme
└─nvme0n1p1                 part nvme

Grub 2を使ってこのnvmeドライブからWindows 10を起動したいです。

Ubuntuは私のnvmeドライブをよく見ることができ、update-grubWindows 10システムを見つけることができます。生成された部分は次のとおりです/boot/grub/grub.cfg

### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows 10 (on /dev/nvme0n1p1)' --class windows --class os $menuentry_id_option 'osprober-chain-4E76C42676C4111F' {
    insmod part_msdos
    insmod ntfs
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root  4E76C42676C4111F
    else
      search --no-floppy --fs-uuid --set=root 4E76C42676C4111F
    fi
    parttool ${root} hidden-
    drivemap -s (hd0) ${root}
    chainloader +1
}

ただし、grubからWindows 10 Entryを起動すると4つのエラーが発生します。

error: no such devices 4E...111F
error: not a partition
error: device format "lvmid/ozz..." invalid must be (f|h)dN, with 0 <= N < 120.
error: invalid signature

推測するNVMEドライバモジュールがありませんinitramfs。それとも--set=root別の仕様が必要です。

そうですか?それでは、どのようにグラブに入れることができますか?

これは私が見るにはバグのようです...

答え1

error: no such devices 4E...111F
error: not a partition
error: device format "lvmid/ozz..." invalid must be (f|h)dN, with 0 <= N < 120.
error: invalid signature

このメッセージはGRUBからのものであるため、この時点ではinitramfsはロードされません。

問題は、システムBIOSが起動時にNVMeデバイスにアクセスできないことです(少なくともレガシーBIOSモードではありません)。

デフォルトでは、NVMeドライブ用のM.2スロットが組み込まれているすべてのシステムはUEFIファームウェアを含むほど新しいため、一部のシステムファームウェアベンダーはNVMeブートサポート実装を選択しているようです。UEFI 基本モードのみ。 Linuxを実行するとNVMeドライブが正しく表示されるため、読み取ることができますが、update-grub起動時にGRUBはレガシーBIOS機能を使用してシステムディスクを列挙し、レガシーBIOSを使用するとNVMeドライブは存在しません。 。 NVMe アクセスに適した BIOS 拡張が利用できない場合、BIOS は NVMe ドライブをディスクデバイスと共通のない汎用 PCI/PCIe デバイスとして扱います。

BIOS設定を非常に慎重に確認する必要があります。 NVMeブートサポートに関連する設定があり、現在オフになっている場合は、その設定を有効にする必要があります。ただし、NVMeドライブが追加のカードにある場合、内蔵NVMeスロットがないマザーボードのレガシーBIOSから起動できない可能性があります。 NVMe ドライブに必要な BIOS ルーチン。

関連情報