DEV Community

Shige Fukushima
Shige Fukushima

Posted on

Ubuntu VM のセキュアブートの有効化

はじめに

この記事では、記事: Ubuntu VM の移行 (VMware から Hyper-V へ)
で説明した以下の移行手順の ステップ 4 について説明します。

  1. VMDK 形式の仮想ディスクを VHD/VHDX 形式への変換
  2. 新しい仮想マシンを作成 (変換した仮想ディスクをアタッチする)
  3. open-vm-tools のアンインストール
  4. (オプション) 第2世代 Hyper-V 仮想マシン用の仮想ディスクへ変換
  5. (オプション) Secure Boot の有効化
  6. 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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

3) セキュアブートの有効化

セキュアブート対応の Grub EFI ブートローダーのインストールが完了したら、
ライブサーバーをシャットダウンして、仮想マシンの設定を変更します。

仮想マシンの設定から、[セキュリティ] -> [セキュアブートを有効にする] のチェックボックスを有効にし、
テンプレートに [Microsoft UEFI 証明機関] を選択します。

また、仮想マシンの設定の[ファームウェア]の項目で
grubx64.efi の代わりに shimx64.efi ファイルがブートローダーとして設定されていることを確認します。

正常に起動しない場合

bad shim signature というメッセージが表示される場合、kernel が最新でないケースが考えられます。

以下のコマンドを実行して、kernel を含む更新を最新の状態にアップグレードすると正常に起動するでしょう。

apt upgrade -y
Enter fullscreen mode Exit fullscreen mode

セキュアブートが有効になっているかどうかの確認方法

以下のコマンドを実行して、セキュアブートが有効になっているかどうかを確認できます。

sudo dmesg | grep secureboot
Enter fullscreen mode Exit fullscreen mode

"Secure boot enabled" というログが表示されていれば、セキュアブートが有効になっています。

最後に

この記事では、第 2 世代の Hyper-V 仮想マシンで Ubuntu Linux のセキュアブートを有効にする方法を説明しました。

Ubuntu Linux 上のサービスでセキュアブートを有効にすると、署名のないドライバーなどを使うことができなくなります。
セキュアな環境を構築できる一方で、セキュリティの考慮がないドライバーなどの利用の際に思わぬ問題に遭遇する場合もあります。
その際には、セキュアブートを無効にして動作を確認することで、問題の切り分けができます。

Reinvent your career. Join DEV.

It takes one minute and is worth it for your career.

Get started

Top comments (0)

👋 Kindness is contagious

Discover a treasure trove of wisdom within this insightful piece, highly respected in the nurturing DEV Community enviroment. Developers, whether novice or expert, are encouraged to participate and add to our shared knowledge basin.

A simple "thank you" can illuminate someone's day. Express your appreciation in the comments section!

On DEV, sharing ideas smoothens our journey and strengthens our community ties. Learn something useful? Offering a quick thanks to the author is deeply appreciated.

Okay