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

No comments:

Post a Comment

ローカルで大容量・多数のファイルをバックアップしたい場合

ネットワーク経由ではなく、ローカルのハードディスクドライブ間で多数・大容量のファイルをバックアップしたい場合にも、私は rsync を使っている。 途中経過を表示してくれるし、途中で止まってしまった場合にもリカバリーが簡単だろうという意図である。 幸運にも途中で止ま...