この記事を書こうと思ったきっかけ
普通にHyper-VにCentOS7インストールできるだろうと思って試したところ、エラーが出たので忘れないうちにメモ。
##最初に結論
Hyper-Vのデフォルト設定を変更する必要がある。
「ハードウェア」→「セキュリティ」→「セキュアブート」
デフォルト:Microsoft Windows
変更後:Microsoft UEFI 証明機関
※もしくはセキュアブートを無効化してもよいようだ。
##現象
普通にダウンロードしたCentOSのISOイメージを使って、DVDブートでインストールしようとすると、
「The image's hash and certificate are not allowed (DB)」
と出てインストールに失敗する。
昔はこんなことはなかったような…
そもそもの根本原因
調べた結果、UEFIのセキュアブートが起動をチェックしているためのようだ。
UEFIの仮想マシンを選んだため、セキュアブート機能がデフォルトで有効になっている。
どこで選択していたかというと、インストール時に仮想マシンの世代として
・第一世代
・第二世代
並んでいたので、「新しいほうがいいだろう」と安易に第二世代を選んだ。
第一世代、第二世代?
ではどちらを選べばよかったのか?
選ぶ場合の選択条件は以下に記載があったので、簡単に翻訳したが、正直これだけでは、第2世代を選ぶ大きなメリットはなく、どっちでもいい感じ。
結局のところ、「新しいほうがいいだろう」で第二世代でいいのではないか。
###選択時の判断基準
以下の条件に当てはまらない場合は、MicrosoftはSecure bootなどの機能の優位性を確保できるので、第2世代を推奨する。
・ブートしようとするVHDがUEFI互換ではない場合
※第一世代の設定で作ったVMマシンのイメージかな?
・バーチャルマシンをAzureにマイグレーションする予定がある場合
・第二世代が起動したいOSをサポートしていない場合
第二世代でサポートしているOS:
1) Windows 64bit(Windows Server 2012 無印/R2、Windows10/8.1/8)
2) CentOS/RHEL(7.xシリーズ)
3) Oracle Linux(7.xシリーズ)
4) SUSE (SUSE Linux Enterprise Server 12)
5) Ubuntu (Ubuntu 14.04 and later versions)
・第二世代が起動したい方式をサポートしていない場合
第二世代でサポートしている起動方式:
1) 標準ネットワークアダプタによる PXE ブート
2) SCSI仮想ディスク(.VHDX) または仮想DVD(.ISO) からの起動
※Legacy network adapterを用いたPXE Boot、IDEのDISK/DVD、Floppyは非対応
###第2世代の機能の優位性
Secure Bootが使える
…(著者注:VMにSecure Bootが必要なシチュエーションって…。しかも無効にできるしな…)
大きなブートボリュームを使える
第2世代では、起動ディスクのサイズとして64TBまで使用できる。
第一世代のBoot領域の最大サイズは2TB。
(VHDX形式で2TB、.VHD形式で2040GBの記載があるが意味不明)
#おまけ
ネットワークアダプタのレガシーと、標準の何が違うのか?
レガシーネットワークアダプタは「DEC DC21140A」をソフトウェアエミュレートするため、負荷が大きい。対して、標準ネットワークアダプタはVMBusを介して、直接コマンドをデバイスに流すため負荷が軽い。