Contents
- About this Howto
- Quick install
- First time installation and USB passthrough
- Sign kernel modules to work with secure boot
- Install VirtualBox_Extension_Pack
- Upgrade VirtualBox version without reboot
- Fedora as a Virtual Machine and VBoxGuestAdditions
- Typical error when building with a kernel-debug
- I had install kernel-debug-devel but I need kernel-devel
- Selinux and VirtualBox
- Uninstall official virtual-guest-additions provide by Oracle and use virtualbox-guest-additions package provide by Fedora
- Install virtual-guest-additions on Centos 9 (stream)
About this Howto
The goal is have a place with all information that is FAQ.
Quick install
Since F22+ we don't have pre-built kmods we need use akmods.
Please do as root:
dnf install VirtualBox akmods systemctl restart vboxdrv lsmod | grep -i vbox
result:
vboxnetadp 28672 0 vboxnetflt 32768 0 vboxdrv 557056 2 vboxnetadp,vboxnetflt
First time installation and USB passthrough
To have access to USB passthrough, you need add the user that run VirtualBox-server to vboxusers group, but just after installation of VirtualBox-server package, because VirtualBox-server creates the "vboxusers" group on installation.
As root you may do :
usermod -a -G vboxusers username ( usermod -a -G vboxusers sergiomb )
or use the GUI Users and Groups tool.
Note: USB passthrough requires read/write access to USB devices. As a result may runs some parts of its code with root privileges. Once a user is in the vboxusers group, it may have ways to get root access. Please do not add anyone who is not trustworthy to the vboxusers group!
Sign kernel modules to work with secure boot
UPDATE
starting in Fedora 36 secureboot is supported by akmods please read /usr/share/doc/akmods/README.secureboot (from akmods package) for more details
also more information on ../Secure Boot
# modprobe vboxdrv modprobe: ERROR: could not insert 'vboxdrv': Key was rejected by service
It happens when secure boot is enable and so far we can run it with secure boot enabled because kernel modules still not signed
To sign kernel modules to make work with secure boot, this 2 posts are a good reference, I haven't test my self:
https://askbot.fedoraproject.org/en/question/34470/virtual-box-on-fedora-19-fails-to-start-a-vm/
or google for "virtualbox fedora secure boot", we have some progresses here [3]
[3] https://bugzilla.redhat.com/show_bug.cgi?id=1454824
Install VirtualBox_Extension_Pack
1- If you don't need usb or just for testing , go to setting usb and disable usb , for that you have to have vm machine off .
2 - With firefox download Oracle_VM_VirtualBox_Extension_Pack-5.1.30.vbox-extpack for example click here : http://download.virtualbox.org/virtualbox/5.0.14/Oracle_VM_VirtualBox_Extension_Pack-5.0.14.vbox-extpack firefox should ask if you want install with vbox something , say yes
3 - After on updates check, ask to download automatically over the internet, after update VirtualBox please try file -> check for updates and should install the correct extension package
if this doesn't do nothing because you install a superior version
rm -rf /usr/lib64/virtualbox/ExtensionPacks/Oracle_VM_VirtualBox_Extension_Pack as root , and repeat items 2 and 3
anyway , you should use file -> check for updates to update extension pack
Upgrade VirtualBox version without reboot
On upgrade VirtualBox for a new release, we need remove kernel modules loaded and load new ones (for the new release).
dnf update VirtualBox kernel-devel-$(uname -r) akmod-VirtualBox akmods-shutdown systemctl restart vboxdrv dmesg | grep -i vbox
if you run an upgrade version don't forget update also VirtualBox_Extension_Pack (if you have it installed) http://rpmfusion.org/Howto/VirtualBox#Install_VirtualBox_Extension_Pack
Fedora as a Virtual Machine and VBoxGuestAdditions
Since Fedora 28 you got virtualBox-guest-additions working out of the box on Fedora proper and is no need akmods anymore (in the vm), package is virtualBox-guest-additions all with lowercase, so just do dnf install virtualBox-guest-additions in a vm (guest system). For epel 7 and 8 we still have VirtualBox-guest-additions on RPM Fusion.
If you want run Fedora in a vm, you may/should install !virtualBox-guest-additions. this replaces VBoxGuestAdditions provide by Oracle
RPM Fusion doesn't provide VBoxGuestAdditions for others OS , you have to download it , you have a button for that in VirtualBox, vm manager menu.
dnf install VirtualBox-guest-additions kernel-devel-matched systemctl restart vboxservice dmesg
In the last lines should see something like :
[ 1907.370440] VBoxService 5.0.17_ r105877 (verbosity: 0) linux.amd64 (Apr 1 2016 05:26:22) release log 00:00:00.000103 main Log opened 2016-04-02T01:32:31.428335000Z [ 1907.370508] 00:00:00.000250 main OS Product: Linux [ 1907.370550] 00:00:00.000291 main OS Release: 4.5.0-0.rc7.git0.2.fc24.x86_64 [ 1907.370849] 00:00:00.000575 main OS Version: #1 SMP Tue Mar 8 02:20:08 UTC 2016 [ 1907.371947] 00:00:00.000708 main Executable: /usr/bin/VBoxService 00:00:00.000711 main Process ID: 3002 00:00:00.001639 main Package type: LINUX_64BITS_GENERIC (OSE) [ 1907.374751] 00:00:00.004436 main 5.0.17_ r105877 started. Verbose level = 0
Typical error when building with a kernel-debug
ERROR: modpost: GPL-incompatible module nvidia-drm.ko uses GPL-only symbol 'mutex_lock_nested'
Looks like the kernel is trying harder to hide GPL-only symbols.
Is this a known problem? Is there a solution
yes, GPL-only symbol error only happens only when you use a debug kernel
debug kernel isn't compatible with nvidia or VirtualBox drivers, please see https://rpmfusion.org/Howto/VirtualBox#I_had_install_kernel-debug-devel_but_I_need_kernel-devel
I had install kernel-debug-devel but I need kernel-devel
When we install only VirtualBox dnf install VirtualBox it require one kmod so it pulls akmod-VirtualBox (we, at this moment, don't have binary kmods) and also may pulls in kernel-debug-devel instead of kernel-devel (of the running kernel) [1]. We need the kernel-devel of kernel that is running on the system but we can't workaround this problem. So we need make sure that install proper kernel-devel (usually the kernel-devel).
So
dnf install kernel-devel-$(uname -r) dnf remove kernel-debug-devel
[1] https://bugzilla.redhat.com/show_bug.cgi?id=1228897
UPDATE
it seems the "kernel-devel-matched" package which is available, at least, since Fedora 35 and Centos 9 fix this issue
mock -r fedora+rpmfusion_free-40-x86_64 install kernel VirtualBox
installs the correct kernel-devel
Selinux and VirtualBox
ATM, we don't support running VirtualBox with selinux enabled, solution is disable selinux, if selinux prevents VirtualBox to run, last time that I checked it was working ...
Uninstall official virtual-guest-additions provide by Oracle and use virtualbox-guest-additions package provide by Fedora
navigate to /run/media/<my user name>/VBoxGAs_6.0.4 issue command './VBoxLinuxAdditions.run uninstall'
issue command 'sudo dnf remove virtualbox-linux-additions akmod-VirtualBox'
issue command 'sudo dnf install VirtualBox-linux-additions akmod-VirtualBox'
issue command 'sudo akmods-shutdown'
This command built kmods for 5.0.3, 5.0.4, 5.0.5, taking a couple of minutes.
shut down the Fedora 29 Virtual Machine. (Use GUI or issue command 'sudo shutdown -h now') (I could use the -r flag, but I generally prefer when shutting down to have the machine completely shut down for 15-30 seconds before restarting.)
start the Fedora 29 Virtual Machine.
At this point, the shared folders were visible!
Install virtual-guest-additions on Centos 9 (stream)
dnf install centos-release-kmods dnf install virtualbox-guest-additions systemctl enable vboxservice
this next maybe need , keep in mind this still in a very early stage
systemctl start vboxservice systemctl restart vboxclient
How to use kmods in EL 9: https://lists.centos.org/pipermail/centos/2022-September/715699.html
Troubleshoot :
(Fixed https://gitlab.com/CentOS/kmods/src/kmod-vbox-guest-additions/-/issues/1 ) if you got messages like: INFO depmod: `ERROR: fstatat(6, vboxsf.ko.xz): No such file or directory
to fix just remove the broken symlink, for example: rm /usr/lib/modules/5.14.0-109.el9.x86_64/weak-updates/fs/vboxsf/vboxsf.ko.xz