При настройке VirtualBox под Debian 11 столкнулся с загадочной проблемой. По заветам официального сайта скачал и развернул дистрибутив, всё выглядит привычно и работоспособно, виртуальная машина создалась, но вот запускаться категорически не захотела:
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.
Оказывается, теперь есть механизмы защиты от загрузки всяких нежелательных компонентов, поэтому системе надо как-то сообщить, что подсовываемые ей модули - не злодейские. Делается это путем их подписания.
С учетом этого требуются следующие дополнительные шаги:
1. генерируем модули, требующиеся VirtualBox-у (впрочем, пока у меня дело дошло до вышеописанной ошибки, модули уже были созданы)
sudo /sbin/vboxconfig
2. создаём так называемый ключ владельца (machine owner key)
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -days 36500 -subj "/CN=huhmuh/" -nodes
3. подсовываем созданный ключ в систему:
sudo mokutil --import MOK.der
4. перезагружаем компьютер. Тут потребуется пароль, заданный на этапе 2.
5. подписываем ключом владельца модули, сгенерированные VirtualBox-ом:
sudo /usr/src/linux-kbuild-5.10/scripts/sign-file sha256 ./MOK.priv ./MOK.der /lib/modules/$(uname -r)/misc/vboxdrv.ko sudo /usr/src/linux-kbuild-5.10/scripts/sign-file sha256 ./MOK.priv ./MOK.der /lib/modules/$(uname -r)/misc/vboxnetadp.ko sudo /usr/src/linux-kbuild-5.10/scripts/sign-file sha256 ./MOK.priv ./MOK.der /lib/modules/$(uname -r)/misc/vboxnetflt.ko
6. наконец, добавляем модули в ядро:
sudo modprobe vboxdrv sudo modprobe vboxnetadp sudo modprobe vboxnetflt
По завершении этой процедуры VirtualBox запустилась без ошибок.
Литература: