はじめに
この記事では、記事: Ubuntu VM の移行 (VMware から Hyper-V へ)
で説明した以下の移行手順の ステップ 4 について説明します。
- VMDK 形式の仮想ディスクを VHD/VHDX 形式への変換
- 新しい仮想マシンを作成 (変換した仮想ディスクをアタッチする)
- open-vm-tools のアンインストール
- (オプション) 第2世代 Hyper-V 仮想マシン用の仮想ディスクへ変換
- (オプション) Secure Boot の有効化
- Hyper-V 統合サービスのインストール
セキュアブートの有効化
第 2 世代 Hyper-V 仮想マシンの Ubuntu Linux でセキュアブートを有効にするには、
セキュアブートに対応したカーネルと Grub ブートローダーをインストールする必要があります。
EFIブート対応済みの仮想マシンで起動して、以下の手順を実行します。
1) Grub EFI パッケージの取得
以下のコマンドを実行し、Grub EFI パッケージをネットワーク経由でダウンロードしインストールします。
VMware 仮想マシンから移行した場合、ネットワーク接続が可能となるように構成変更するのを忘れないでください。
sudo apt update
sudo apt install grub-efi-amd64 grub-efi-amd64-signed shim-signed -y
2) Grub EFI のインストール
以下のコマンドを実行し、起動ディスクに Grub EFI をインストールします。
[更新:2023/03/25]
Grub EFI パッケージのインストーラーにより、
自動的に Grub ブートローダーの更新が実行されるため、以下のコマンドの実行は不要です。
sudo grub-install --target=x86_64-efi --uefi-secure-boot /dev/sda
sudo grub-install --recheck --uefi-secure-boot /dev/sda
sudo update-grub2
3) セキュアブートの有効化
セキュアブート対応の Grub EFI ブートローダーのインストールが完了したら、
ライブサーバーをシャットダウンして、仮想マシンの設定を変更します。
仮想マシンの設定から、[セキュリティ] -> [セキュアブートを有効にする] のチェックボックスを有効にし、
テンプレートに [Microsoft UEFI 証明機関] を選択します。
また、仮想マシンの設定の**[ファームウェア]**の項目で
grubx64.efi
の代わりに shimx64.efi
ファイルがブートローダーとして設定されていることを確認します。
正常に起動しない場合
bad shim signature
というメッセージが表示される場合、kernel が最新でないケースが考えられます。
以下のコマンドを実行して、kernel を含む更新を最新の状態にアップグレードすると正常に起動するでしょう。
apt upgrade -y
セキュアブートが有効になっているかどうかの確認方法
以下のコマンドを実行して、セキュアブートが有効になっているかどうかを確認できます。
sudo dmesg | grep secureboot
"Secure boot enabled" というログが表示されていれば、セキュアブートが有効になっています。
最後に
この記事では、第 2 世代の Hyper-V 仮想マシンで Ubuntu Linux のセキュアブートを有効にする方法を説明しました。
Ubuntu Linux 上のサービスでセキュアブートを有効にすると、署名のないドライバーなどを使うことができなくなります。
セキュアな環境を構築できる一方で、セキュリティの考慮がないドライバーなどの利用の際に思わぬ問題に遭遇する場合もあります。
その際には、セキュアブートを無効にして動作を確認することで、問題の切り分けができます。