HyperV Linux EFI VHDX 移行でブート オプションに EFI が見つからない

HyperV Linux EFI VHDX 移行でブート オプションに EFI が見つからない

HyperV 2016上で n 台のマシンのクラスターが稼働していますW2k16

VHDXこのブート順序で実行される VMを複製しましたRHEL 7.5 (Gen2)(セキュア ブートは無効です)。

スクリーンショット

クローンディスクを使用して新しい VM を作成した後、EFI ファイル エントリが消えてしまい、起動できなくなりました。

注: から起動すると、Rescatux CDすべてのブートエントリが正しくリストされ、(そのディスクから手動で)起動できます。RHEL

答え1

UEFI ブート オプションは、ディスクではなく UEFI 変数に保存されます。これは、物理マシンと仮想マシンの両方に当てはまります。Hyper-V は、UEFI 変数を VHD ではなく、VM 状態ファイルの 1 つに保存します。そのため、VHD を VM から切り離すと、UEFI 変数とブート エントリが失われます。

起動に UEFI 変数に依存しているマシンを複製する場合は、VM をエクスポートして再度インポートします。これにより、状態ファイルと VHD が分割されるのではなく、セットとして保持されます。

ちなみに、すべてのゲスト OS が RHEL がここで行ったように UEFI 変数を設定するわけではないため、この問題が常に発生するわけではありません。Windows を含む一部の OS は、UEFI ブート変数をディスク上のファイルではなくディスクを指すように設定し、UEFI 仕様では、ディスク上のデフォルトの場所でブート ファイルを見つける場所が指定されています。これについて言及したのは、次によく聞かれる質問が、なぜ時々しか失敗しないように見えるのかということだからです。

関連情報