Использование Ubuntu 16.04 и установка VirtualBox 5 в соответствии с предписанным здесь методом для «дистрибутивов Linux на основе Debian»:
https://www.virtualbox.org/wiki/Linux_Downloads
Это сталкивается с проблемой с ядром в этой версии, которая решается следующим образом:
https://askubuntu.com/a/768310/254069
Попытка создать адаптер только для хоста выглядит так:
$ VBoxManage hostonlyif create
0%...
Progress state: NS_ERROR_FAILURE
VBoxManage: error: Failed to create the host-only adapter
VBoxManage: error: VBoxNetAdpCtl: Error while adding new interface: failed to open /dev/vboxnetctl: No such file or directory
VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component HostNetworkInterfaceWrap, interface IHostNetworkInterface
VBoxManage: error: Context: "RTEXITCODE handleCreate(HandlerArg*)" at line 71 of file VBoxManageHostonly.cpp
Оказывается, что решением сетевой проблемы является отдельный модуль, который должен быть подписан для разрешения этой определенной функции. Как указано в решении для подписания здесь: https://askubuntu.com/a/768310/254069
VBoxManage hostonlyif create
нужны следующие модули, чтобы также быть доступным (modprobe):
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=MOK Signing/"
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vboxdrv)
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vboxnetflt)
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vboxnetadp)
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vboxpci)
sudo mokutil --import MOK.der
Перезапуск и "Регистрируют MOK"
$ VBoxManage hostonlyif create
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Interface 'vboxnet1' was successfully created
В Ubuntu 17 пикантная, новая установка, новый VirtualBox, не работает сеть только для хоста.
# ip a
4: vboxnet0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff
5: vboxnet1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 0a:00:27:00:00:01 brd ff:ff:ff:ff:ff:ff
решение было:
# ip link set vboxnet0 up
# ip link set vboxnet1 up
и работы!!!
Я нашел, что другое простое решение решило эту проблему, но это касается VirtualBox 6.0 +... это могло бы также работать с 5.x, но я не протестировал его на ту версию.
Проблема - то, потому что модули ядра не подписываются по умолчанию поэтому, чтобы сделать это, необходимо добавить открытые ключи от Oracle.
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
После того как Вы добавляете эти ключи, можно установить VirtualBox нормальным способом, и он будет хорошо работать с большинством функций (за исключением тех, которые требуют собственного расширения, должен был бы все еще установить это для тех функций),
Выполните VirtualBox в использовании Песочницы Firejail как указано ниже:
firejail --noprofile virtualbox