Running another operating system on the same Fedora machine is still one of the easiest ways to test software, build disposable lab environments, or keep a second desktop around for one Windows-only task. If you need to install VirtualBox on Fedora, RPM Fusion Free is the host package source to use because Fedora’s default repositories ship guest additions only, not the VirtualBox host application.
The package installs from a terminal on Workstation, Server, and minimal Fedora systems, but the VirtualBox Manager still needs an active graphical session when you want to open the GUI. This workflow configures Fedora as the VirtualBox host, builds the matching kernel modules, adds your account to vboxusers, and covers the optional Extension Pack plus guest additions for Fedora guests.
Install VirtualBox on Fedora
Fedora’s default repositories do not ship the VirtualBox host package. They do ship virtualbox-guest-additions for Fedora guest systems, which is a different package role covered later. Keep the host workflow on one source: use RPM Fusion Free for these commands, and do not mix it with Oracle repository packages unless you deliberately remove one source before switching to the other.
Update Fedora Before You Install VirtualBox
Refresh Fedora packages first so the kernel, the matching build files, and the later RPM Fusion module build start from a current baseline.
sudo dnf upgrade --refresh
These commands use
sudofor package and module changes. If your account is not in the sudoers file yet, follow the guide to add a user to sudoers on Fedora before continuing.
If the upgrade installs a new kernel, reboot before continuing so the running kernel, the matching kernel-devel package, and the VirtualBox module build all line up.
Enable RPM Fusion for VirtualBox on Fedora
RPM Fusion Free carries the Fedora RPM package plus the akmod-VirtualBox module source. On Fedora 44, this package set resolves to VirtualBox 7.2.8 and builds against the active Fedora kernel when the matching kernel-devel package is installed. The rpm -E %fedora command prints your installed Fedora release so the release package matches your system.
FEDORA_VERSION=$(rpm -E %fedora)
sudo dnf install "https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-${FEDORA_VERSION}.noarch.rpm"
Confirm that the RPM Fusion Free repositories are enabled before you install the package.
dnf repo list --enabled | grep -i '^rpmfusion'
Relevant output includes the Free and Free Updates repositories for your Fedora release.
rpmfusion-free RPM Fusion for Fedora 44 - Free rpmfusion-free-updates RPM Fusion for Fedora 44 - Free - Updates
If you want the broader repository background as well, see how to install RPM Fusion on Fedora.
Install VirtualBox and Build Fedora Kernel Modules
Install the host package and its akmod companion together. The akmod-VirtualBox package pulls in akmods, which in turn requires gcc, make, and the matching kernel-devel package for the running kernel.
sudo dnf install VirtualBox akmod-VirtualBox
The first module build can take a minute or two on a slower VM. Running the build once right away keeps the first launch from racing the background akmods job.
sudo akmods --kernels "$(uname -r)"
sudo systemctl restart vboxdrv
Finish by checking that the loader service brought in the host modules cleanly.
sudo systemctl status vboxdrv --no-pager
Relevant output includes:
* vboxdrv.service - Linux kernel module init script
Loaded: loaded (/usr/lib/systemd/system/vboxdrv.service; enabled; preset: enabled)
Active: active (exited)
RPM Fusion appends its own suffix to the version string, which matters later when you build the Extension Pack download URL.
vboxmanage --version
Relevant output includes the base VirtualBox version followed by the RPM Fusion suffix.
7.2.8_RPMFUSIONr173730
Add Your User to the vboxusers Group on Fedora
VirtualBox uses the vboxusers group for USB access and similar passthrough features. The -aG flags append your account to the new group instead of replacing every supplementary group you already have.
sudo usermod -aG vboxusers "$USER"
Start a new login session after that change, then confirm that vboxusers appears in your group list.
groups "$USER"
Your username and other groups will differ. The important check is that vboxusers appears somewhere in the output.
Launch VirtualBox on Fedora
RPM Fusion installs both the GUI launchers (VirtualBox and virtualbox) and the CLI helpers (VBoxManage and vboxmanage). Search for VirtualBox in Activities, or start the Manager from a graphical terminal session:
VirtualBox
If you are connected over plain SSH or working on a Server/minimal Fedora install without a desktop session, the package can still be installed and updated there, but the Manager window will not open until a graphical session is available.

Install the VirtualBox Extension Pack on Fedora
The Oracle Extension Pack is optional, but it adds USB 2.0 and 3.0 passthrough, PXE ROM support, and a few host integrations the base RPM does not ship. The Extension Pack version must match the base VirtualBox version exactly, so strip the RPM Fusion suffix before you build the download URL.
Keep the same terminal open for the next commands so the VERSION, FILE, and URL variables stay available.
RAW_VERSION=$(vboxmanage --version)
VERSION=${RAW_VERSION%%_*}
VERSION=${VERSION%%r*}
FILE=Oracle_VirtualBox_Extension_Pack-${VERSION}.vbox-extpack
URL=https://download.virtualbox.org/virtualbox/${VERSION}/${FILE}
printf "Version: %s\nURL: %s\n" "$VERSION" "$URL"
Expected output:
Version: 7.2.8 URL: https://download.virtualbox.org/virtualbox/7.2.8/Oracle_VirtualBox_Extension_Pack-7.2.8.vbox-extpack
Download the matching Extension Pack and confirm that the file landed where you expect.
curl -fsSLO "$URL"
ls -lh "$FILE"
Relevant output includes the matching Extension Pack filename and a size around 20M. Your username and timestamp will differ.
-rw-r--r--. 1 joshua joshua 20M May 17 10:09 Oracle_VirtualBox_Extension_Pack-7.2.8.vbox-extpack
VBoxManage can accept the license non-interactively if you feed it the SHA-256 of the extracted license text. That keeps the install copy-and-pasteable in a standard shell session.
LICENSE_HASH=$(tar -xOf "$FILE" ./ExtPack-license.txt | sha256sum | awk '{print $1}')
sudo vboxmanage extpack install --replace --accept-license="$LICENSE_HASH" "$FILE"
Expected output includes:
License accepted. Successfully installed "Oracle VirtualBox Extension Pack".
Verify the system-wide Extension Pack state with sudo vboxmanage, not the unprivileged wrapper, so you do not read stale per-user cache data.
sudo vboxmanage list extpacks
Expected output:
Extension Packs: 1 Pack no. 0: Oracle VirtualBox Extension Pack Version: 7.2.8 Revision: 173730 Edition: Description: Oracle Cloud Infrastructure integration, PXE ROM. VRDE Module: Crypto Module: Usable: true Why unusable:
Remove the downloaded archive once the Extension Pack is in place.
rm -f "$FILE"
Install VirtualBox Guest Additions in Your VMs
Guest Additions are installed inside the guest operating system, not on the Fedora host. Use the guest’s native package when it exists, and fall back to the ISO installer when the guest distro does not package its own additions.
Install VirtualBox Guest Additions in Fedora Guests
Fedora guests can install the packaged additions directly with DNF, which is cleaner than mounting the ISO every time.
sudo dnf install virtualbox-guest-additions
sudo reboot
After the guest comes back, confirm that the additions package is present.
rpm -q virtualbox-guest-additions
Expected output:
virtualbox-guest-additions-7.2.8-1.fc44.x86_64
Install VirtualBox Guest Additions in Other Linux Guests
If the guest distro does not ship its own additions package, install that guest’s compiler toolchain and matching kernel headers first, then mount the Guest Additions ISO from the VirtualBox menu and run the installer.
sudo mkdir -p /mnt/cdrom
sudo mount /dev/cdrom /mnt/cdrom
sudo /mnt/cdrom/VBoxLinuxAdditions.run
sudo reboot
Install VirtualBox Guest Additions in Windows Guests
For Windows guests, choose Devices > Insert Guest Additions CD Image from the VirtualBox menu, then run VBoxWindowsAdditions.exe from the mounted drive if the installer does not start automatically. Reboot the Windows guest after the wizard finishes so display resizing, clipboard sync, and shared-folder support all pick up the new drivers.
Fix VirtualBox Problems on Fedora
Most Fedora VirtualBox failures fall into three buckets: the host modules did not finish building, Secure Boot blocked the modules, or a kernel update landed before akmods rebuilt the current tree. Start with the module build first, because it fixes the common rc=-1908 and missing-vboxdrv errors.
Fix VirtualBox Driver Build Failures on Fedora
If VirtualBox or vboxmanage reports Kernel driver not installed (rc=-1908), rebuild the host modules for the running kernel and reload the service.
Some upstream error text mentions virtualbox-dkms, but this Fedora RPM Fusion workflow uses akmod-VirtualBox to rebuild the host modules.
sudo akmods --kernels "$(uname -r)"
sudo systemctl restart vboxdrv
If the rebuild complains about missing kernel build files, check the exact kernel-devel package for the running kernel. For the broader background on Fedora’s split between userspace headers and module build trees, see how to install Linux kernel headers on Fedora.
rpm -q "kernel-devel-$(uname -r)"
Expected output:
kernel-devel-7.0.8-200.fc44.x86_64
Finish by checking the loader service again. If it still is not active, the build log usually tells you whether the problem is a missing kernel package or a Secure Boot signature rejection.
sudo systemctl status vboxdrv --no-pager
Relevant output includes:
* vboxdrv.service - Linux kernel module init script
Loaded: loaded (/usr/lib/systemd/system/vboxdrv.service; enabled; preset: enabled)
Active: active (exited)
Fix Secure Boot Errors with VirtualBox on Fedora
On UEFI systems, a successful akmods build can still leave vboxdrv unloaded if Secure Boot rejects the module signature. Install mokutil if you do not already have it, then check the current Secure Boot state.
sudo dnf install mokutil
mokutil --sb-state
Relevant output usually looks like one of these lines:
SecureBoot enabled SecureBoot disabled EFI variables are not supported on this system
The third line means the machine was not booted with UEFI support, so Secure Boot is not active there. If the command reports SecureBoot disabled or the EFI-variables message above, go back to the module rebuild steps instead.
If the command reports SecureBoot enabled, check the kernel log for a module-signing rejection before enrolling a key.
sudo journalctl -k --no-pager | grep -E 'vboxdrv|Key was rejected'
If the log mentions Key was rejected by service, enroll the akmods public key with MOK, reboot, complete the firmware enrollment prompts, then rebuild and reload the VirtualBox modules.
sudo /usr/sbin/kmodgenca -a
sudo mokutil --import /etc/pki/akmods/certs/public_key.der
mokutil asks you to create a one-time enrollment password. After the reboot, choose Enroll MOK, continue through the prompts, enter that password, and reboot again. Then rebuild the failed module and restart the loader service.
sudo akmods --force --kernels "$(uname -r)"
sudo systemctl restart vboxdrv
Update or Remove VirtualBox on Fedora
Update VirtualBox on Fedora
VirtualBox and its akmod package update through standard DNF maintenance. After a package update, return to the driver rebuild section if Fedora also pulled in a new kernel and the modules are still rebuilding in the background.
sudo dnf upgrade --refresh
Remove VirtualBox on Fedora
Remove the Extension Pack first if you installed it, because the pack is managed outside DNF.
sudo vboxmanage extpack uninstall "Oracle VirtualBox Extension Pack"
Verify the system-wide Extension Pack state with the same elevated wrapper.
sudo vboxmanage list extpacks
Expected output:
Extension Packs: 0
Then remove the host package and the akmod source package together.
sudo dnf remove VirtualBox akmod-VirtualBox
Confirm that DNF removed both packages.
rpm -q VirtualBox akmod-VirtualBox
Expected output:
package VirtualBox is not installed package akmod-VirtualBox is not installed
VirtualBox removal does not delete the optional vboxusers group. If no account on this Fedora system still needs USB passthrough through VirtualBox, remove your membership and then delete the unused group.
sudo gpasswd -d "$USER" vboxusers
sudo groupdel vboxusers
getent group vboxusers || echo none
Expected output after cleanup:
none
Package removal leaves per-user data behind. Check which VirtualBox paths exist in your home directory before deleting anything, then remove only the paths you no longer need.
find "$HOME" -maxdepth 3 \( -path "$HOME/.config/VirtualBox" -o -path "$HOME/VirtualBox VMs" \)
If that command prints nothing, there is no per-user VirtualBox data left for that account. The default configuration path is usually ~/.config/VirtualBox, and the default machine folder stays ~/VirtualBox VMs if you created VMs. Delete the VM directory only after you confirm that you no longer need those disk images.
If RPM Fusion was only there for VirtualBox and you do not use it for codecs, drivers, Steam, or any other package, remove the release package and check the effective repository state.
sudo dnf remove rpmfusion-free-release
if rpm -q rpmfusion-free-release >/dev/null 2>&1; then
rpm -q rpmfusion-free-release
else
echo "rpmfusion-free-release is not installed"
fi
dnf repo list --enabled | grep -i '^rpmfusion' || echo "RPM Fusion repositories are not enabled"
find /etc/yum.repos.d -maxdepth 1 \( -name 'rpmfusion-free*.repo' -o -name 'rpmfusion-nonfree*.repo' \) -print
The package check should report that rpmfusion-free-release is not installed, and DNF should report no enabled RPM Fusion repositories. The find command can still show repo files from other RPM Fusion branches you enabled earlier on the system, so review those separately instead of assuming the VirtualBox workflow created them.
Conclusion
VirtualBox is running on Fedora through RPM Fusion, with the host modules built for the current kernel and a clean path to the Extension Pack or Fedora guest additions when you need them. If full desktop VMs feel heavier than the job at hand, install Docker on Fedora for container workloads instead.


Formatting tips for your comment
You can use basic HTML to format your comment. Useful tags currently allowed in published comments:
<code>command</code>command<strong>bold</strong><em>italic</em><a href="https://example.com">link</a><blockquote>quote</blockquote>