Super UEFIinSecureBoot Diskを使って、Secure Bootが有効化されたPCでNetBSD/amd64を起動させてみる

これは、NetBSD Advent Calendar 2020の15日目の記事です。

はじめに

UEFIな環境のPCでNetBSD/amd64を起動させる場合には、Secure Bootを無効にするようにBIOS設定画面で設定しておく必要があります。 ですが、Secure Bootを無効にしないで起動する方法はないかと思っていました。 GitHUb.comを見ていると、Super UEFIinSecureBoot Diskというのを 見つけました。 Red Hat社がFedore Linux用に用意しているSecure Bootに対応したブートローダーを利用した仕組みのようです。 既にSecure Boot無効な状態でインストール済みのPCで、Secure Bootを有効にし、起動できることを確認しました。 試したPCは、Dell XPS 13 9300です。

Super UEFIinSecureBoot Diskを入手する

現在のSuper UEFIinSecureBoot Diskのバージョンは3のようです。 https://github.com/ValdikSS/Super-UEFIinSecureBoot-Disk/releases/tag/3から、 Super-UEFIinSecureBoot-Disk_v3.zipファイルをダウンロードしました。 ですが、Super-UEFIinSecureBoot-Disk_minimal_v3.zipファイルでも問題ないかと思います。 以下のようにUSBスティックに書き込んでおきます。

$ unzip Super-UEFIinSecureBoot-Disk_v3.zip
Archive:  Super-UEFIinSecureBoot-Disk_v3.zip
 extracting: Super-UEFIinSecureBoot-Disk.img
# dd if=Super-UEFIinSecureBoot-Disk.img of=/dev/sd0d

ここで再起動し、BIOS設定画面に入り、Secure Bootを有効にしておきました。

このままNetBSD/amd64を起動させると、以下のようなエラーメッセージで起動できませんでした。 Secure Bootが有効になっていることが分かります。

Operating System Loader has no signature. Imcompatible with SecureBoot.

USBスティックから起動させます。 初回は、hashとkeyを登録するように求められますので、促されるようにインストールしておきます。

ブートセレクターが表示されたら、cを入力してコマンド入力画面に切り替えます。 その上で以下のように実行することで、NetBSD/amd64のブートローダーを起動でき、NetBSDを起動できました。

> insmod fat
> chainloader (hd1,gpt1)/efi/boot/bootx64.efi
> boot

0 件のコメント:

コメントを投稿

NetBSDでホスト名にアンダースコア(_)が入っていても不正なホスト名と認識されないようにする

Bloggerのpreviewは、アンダースコア(_)が入っているホスト名を利用している。 NetBSDは、かつてはアンダースコア入りのホスト名は許されていなくて、 libc resolver library does not resolve host names wi...