imported>Vix |
imported>Vix |
Строка 1: |
Строка 1: |
| При выполнении:
| |
| /sbin/vboxconfig
| |
|
| |
|
| vboxdrv.sh: Stopping VirtualBox services.
| | Posted on May 29, 2017 by Andreas Dafert |
| vboxdrv.sh: Building VirtualBox kernel modules.
| | System is booting up. See pam_nologin(8) |
| vboxdrv.sh: Starting VirtualBox services.
| |
| 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.
| |
|
| |
|
| <h1> VirtualBox + Безопасная загрузка + Ubuntu = сбой </h1>
| | red hat 7 vm running pam-1.1.8-18.el7.x86_64 |
|
| | login over ssh was not possible and resulted in the following error message: |
| <p> Проблема заключается в том, что все модули ядра должны быть подписаны
| | |
| ключом, которому доверяет система UEFI, иначе загрузка не удастся.
| | ssh login: System is booting up. See pam_nologin(8) |
| Ubuntu не подписывает сторонние модули vbox * kernel, а скорее
| |
| дает пользователю возможность отключить Безопасную загрузку после установки
| |
| пакет виртуальных боксов. Я мог бы это сделать, но тогда я увижу
| |
| раздражающее сообщение «Загрузка в небезопасном режиме» каждый раз, когда машина
| |
| запускается, а также установка с двойной загрузкой Windows 10 у меня будет
| |
| не функция. </p>
| |
|
| |
| <p> Ubuntu 16.04 на Dell Latitude E7440 с BIOS A18 и с двойной загрузкой Windows 10. </p>
| |
|
| |
| <h1> Шаги, чтобы заставить его работать, в частности, для Ubuntu /Debian </h1>
| |
|
| |
| <ol>
| |
| <li> <p> Установите пакет виртуальных боксов. Если установка обнаруживает, что безопасная загрузка включена, вам будет предоставлена проблема
| |
| и предоставляется возможность отключить безопасную загрузку. Выберите «Нет». </p> </li>
| |
| <li>
| |
| <p> Создайте персональную общедоступную /приватную пару ключей RSA, которая будет использоваться для подписи модулей ядра. Я решил использовать учетную запись root и каталог
| |
| /root /module-signature /для хранения всех вещей, связанных с подписью ядра
| |
| модули. </p>
| |
|
| |
|
| $ sudo -i
| | man pam_nologin shows: |
| # mkdir /root/module-signing
| |
| # cd /root/module-signing
| |
| # openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=YOUR_NAME/"
| |
| [...]
| |
| # chmod 600 MOK.priv
| |
| </li>
| |
| <li>
| |
| <p> Используйте служебную программу MOK («Ключ владельца машины») для импорта открытого ключа, чтобы система могла доверять ей. Это двухэтапный процесс
| |
| где ключ сначала импортируется, а затем должен быть зарегистрирован, когда
| |
| машина загрузится в следующий раз. Простой пароль достаточно хорош,
| |
| поскольку он предназначен только для временного использования. </p>
| |
|
| |
|
| # mokutil --import /root/module-signing/MOK.der | | pam_nologin is a PAM module that prevents users from logging into the system when /var/run/nologin or /etc/nologin exists. |
| input password:
| |
| input password again:
| |
|
| |
|
| </li>
| | so I checked for /etc/nologin and /var/run/nologin – last one existed – deleted – login possible |
| <li> <p> Перезагрузите компьютер. Когда запускается загрузчик, утилита MOK manager EFI должна автоматически запускаться. Он попросит части
| |
| пароль, предоставленный на шаге 3. Выберите «Записаться MOK», затем вы должны
| |
| см. ключ, импортированный на шаге 3. Заполните шаги регистрации, затем
| |
| продолжить загрузку. Ядро Linux будет записывать ключи, которые
| |
| и вы сможете увидеть свой собственный ключ с помощью команды:
| |
| dmesg|grep 'EFI: Loaded cert'</li> | |
| <li>
| |
| <p> Используя утилиту подписи, поставляемую с файлами сборки ядра, подпишите все модули VirtualBox, используя закрытый ключ MOK, сгенерированный на шаге 2.
| |
| Я помещал это в маленький скрипт <code>/root/module-signing/sign-vbox-modules</code>, поэтому его можно легко запустить, когда новые ядра установлены как часть регулярных обновлений: </p>
| |
|
| |
|
| echo > /root/module-signing/sign-vbox-modules
| | note: the login for user root still works |
| mcedit /root/module-signing/sign-vbox-modules
| |
|
| |
|
| * Текст скрипта: | | * [https://blog.dafert.org/system-is-booting-up-see-pam_nologin/ Sysadmin Weblog] |
| | |
| #!/bin/bash
| |
|
| |
| for modfile in $(dirname $(modinfo -n vboxdrv))/*.ko; do
| |
| echo "Signing $modfile"
| |
| /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 \
| |
| /root/module-signing/MOK.priv \
| |
| /root/module-signing/MOK.der "$modfile"
| |
| done
| |
|
| |
| <p> И затем: </p>
| |
| | |
| # chmod 700 /root/module-signing/sign-vbox-modules
| |
|
| |
| </li>
| |
| <li> Запустите скрипт с шага 5 с правами root. Вам нужно будет запустить скрипт подписи каждый раз, когда будет установлено новое обновление ядра, поскольку это
| |
| приведет к восстановлению сторонних модулей VirtualBox. Использовать
| |
| скрипт только после загрузки нового ядра, поскольку он полагается на
| |
| modinfo -n
| |
| и
| |
| uname -r
| |
| , чтобы указать версию ядра для подписания. </li>
| |
| <li>
| |
| <p> Загрузите модуль vboxdrv и запустите VirtualBox: </p>
| |
| | |
| # modprobe vboxdrv
| |
| | |
| </li>
| |
| </ol>
| |
| <p> Процедура также может использоваться для подписи другого стороннего ядра
| |
| модули, такие как графические драйверы nvidia, если это необходимо. (Я имею
| |
| не испытал это сам.) </p>
| |
| </blockquote>
| |
| | |
| '''ИСТОЧНИК:'''
| |
| <hr>
| |
| * [https://sprosi.pro/questions/80322/vboxdrvsh-failed-ne-udalos-vyipolnit-modprobe-vboxdrv-ispolzuyte-dmesg-chtobyi-uznat-pochemu VirtualBox + Безопасная загрузка + Ubuntu = сбой]
| |