DebianテストとSecureBootを有効にした後:
vboxconfig
コマンド出力に示すように、VirtualBoxモジュールに署名する必要があります。
vboxdrv.sh: Stopping VirtualBox services.
vboxdrv.sh: Starting VirtualBox services.
vboxdrv.sh: You must sign these kernel modules before using VirtualBox:
vboxdrv vboxnetflt vboxnetadp
See the documenatation for your Linux distribution..
vboxdrv.sh: Building VirtualBox kernel modules.
vboxdrv.sh: failed: modprobe vboxdrv failed. Please use 'dmesg' to find out why.
There were problems setting up VirtualBox. To re-start the set-up process, run
/sbin/vboxconfig
as root. If your system is using EFI Secure Boot you may need to sign the
kernel modules (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) before you can load
them. Please see your Linux system's documentation for more information.
フォローするSecureBootに関するDebian Wiki私はそうしました:
# openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -days 36500 -subj "/CN=My Name/" -nodes
# mokutil --import MOK.der // prompts for one-time password
# mokutil --list-new // recheck your key will be prompted on next boot
<rebooting machine then enters MOK manager EFI utility: enroll MOK, continue, confirm, enter password, reboot>
# dmesg | grep cert // verify your key is loaded
モジュールに署名します。
# /usr/src/linux-headers-5.7.0-1-amd64/scripts/sign-file sha256 /root/MOK.priv /root/MOK.der /lib/modules/5.7.0-1-amd64/misc/vboxdrv.ko
# /usr/src/linux-headers-5.7.0-1-amd64/scripts/sign-file sha256 /root/MOK.priv /root/MOK.der /lib/modules/5.7.0-1-amd64/misc/vboxnetflt.ko
# /usr/src/linux-headers-5.7.0-1-amd64/scripts/sign-file sha256 /root/MOK.priv /root/MOK.der /lib/modules/5.7.0-1-amd64/misc/vboxnetadp.ko
注:モジュールが見つからないvboxpci
ため、モジュールに署名しませんでした。sudo modinfo -n vboxpci
modinfo: ERROR: Module vboxpci not found.
vboxconfig
後でrootとして再実行しようとすると、モジュールをロードできないため、同じ結果が得られます。
vboxdrv.sh: Stopping VirtualBox services.
vboxdrv.sh: Starting VirtualBox services.
vboxdrv.sh: You must sign these kernel modules before using VirtualBox:
vboxdrv vboxnetflt vboxnetadp
See the documenatation for your Linux distribution..
vboxdrv.sh: Building VirtualBox kernel modules.
vboxdrv.sh: failed: modprobe vboxdrv failed. Please use 'dmesg' to find out why.
There were problems setting up VirtualBox. To re-start the set-up process, run
/sbin/vboxconfig
as root. If your system is using EFI Secure Boot you may need to sign the
kernel modules (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) before you can load
them. Please see your Linux system's documentation for more information.
注:モジュールを直接ロードしようとすると、sudo modprobe vboxdrv
次のエラーも発生します。
modprobe: ERROR: could not insert 'vboxdrv': Operation not permitted
このコマンドは、dmesg
モジュールが署名されていないことを示します。
[ 35.668028] Lockdown: modprobe: unsigned module loading is restricted; see https://wiki.debian.org/SecureBoot
[ 59.965757] Lockdown: modprobe: unsigned module loading is restricted; see https://wiki.debian.org/SecureBoot
[ 247.249605] Lockdown: modprobe: unsigned module loading is restricted; see https://wiki.debian.org/SecureBoot
どうですか? ? ? SecureBootを無効にしませんか?
答え1
同じ手順に従い、同じ問題が発生しましたが、なぜ動作しないのかわかりませんでした。その後、カーネルモジュールの再構築をトリガーしながらモジュールに署名した後、vboxconfigを再実行するのに問題があることに気づきました。 "vboxdrv.sh: Building VirtualBox カーネルモジュール。"
この時点で私はモジュールに署名し、modprobeを使ってロードしましたが、問題なくロードされました。
心配しないでください。 vboxconfigを初めて実行した後、毎回手動でモジュールをロードする必要はありません。 vboxconfigはすでに設定を完了して再起動するだけです(少なくとも私にはうまくいきました)。
答え2
Fedora 34 および VirtualBox 6.1.22 の場合、手順は次のとおりです。
VirtualBoxモジュールの構築
sudo /sbin/vboxconfig
opensslのインストール
sudo dnf install openssl
鍵の生成と登録
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -days 36500 -subj "/CN=My Name/" -nodes
sudo mokutil --import MOK.der
echo "Please reboot the machine"
再起動し、キーがBIOSに登録されていることを確認してください。 (3)段階で選択したパスワードが必要です。
VirtualBox カーネルモジュールの署名
sudo /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der /lib/modules/$(uname -r)/misc/vboxdrv.ko
sudo /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der /lib/modules/$(uname -r)/misc/vboxnetadp.ko
sudo /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der /lib/modules/$(uname -r)/misc/vboxnetflt.ko
- VirtualBox カーネルモジュールのロード
sudo modprobe vboxdrv
sudo modprobe vboxnetadp
sudo modprobe vboxnetflt
VirtualBoxを起動すると動作します。