title: "ivan-hc/VirtualBox-appimage: Unofficial VirtualBox KVM AppImage"
source: https://github.com/ivan-hc/VirtualBox-appimage/
author:
- "[[GitHub]]"
published:
created: 2025-03-13
description: Unofficial VirtualBox KVM AppImage. Contribute to ivan-hc/VirtualBox-appimage development by creating an account on GitHub.
tags:
- Software
- Virtualbox
Unofficial AppImage of VirtualBox built on top of "JuNest" and formerly on "Conty", the portable Arch Linux containers that runs everywhere.
This AppImage includes Guest Additions ISO and the Extension Pack.
NOTE, Oracle VM VirtualBox Extension Pack is released with PUEL license https://www.virtualbox.org/wiki/VirtualBox_PUEL
chmod a+x ./*.AppImage
./*.AppImage
NOTE, if you use the Conty-based release, run the first time from terminal, since the internal "Conty" script may detect if you need Nvidia drivers for your GPU (this may need seconds before you can use VirtualBox). If you are an Nvidia user, for the JuNest-based build, hardware accelleration is provided by Conty. At first start it will install Nvidia drivers locally to allow the builtin Arch Linux container the use of hardware accelleration.
This AppImage does NOT require libfuse2, being it a new generation one.
Also, this VirtualBox AppImage does not require "vboxdrv", being it based on VirtualBox KVM.
According with this guide, to enable the USB support we need to handle some files using root permissions:
I have resumed all these steps into one function available in the AppRun script of the AppImage, name of the function is "VBoxUSB_enable".
To enable the USB support you must run the following command:
./*.AppImage --vbox-usb-enable
Alternativelly you can follow the guide at https://github.com/cyberus-technology/virtualbox-kvm#usb-pass-through and enable the USB support manually.
NOTE: the function above extracts the "VBoxCreateUSBNode.sh" from the internal Arch Linux container, if you want to do it manually, you can download any VirtualBox package and check for "VBoxCreateUSBNode.sh" and made it executable. You can also extract it from the AppImage when it is mounted, in /tmp, and from builds based on JuNest its enough to extract the AppImage with --appimage-extract
and get the script from squashfs-root/.junest/usr/share/virtualbox.
See also #7
The latest releases are based on JuNest, it is enough tu follow the instructions on the README of the "Archimage" project, at https://github.com/ivan-hc/ArchImage and run the script https://github.com/ivan-hc/VirtualBox-appimage/blob/main/virtualbox-kvm-junest.sh into a dedicated new directory. No root permissions are needed.
The Conty-based AppImage contains the following structure:
|---- AppRun
|---- virtualbox.desktop
|---- virtualbox.svg
|---- conty.sh
Points 1, 2 and 3 are the essential elements of any AppImage.
The script "conty.sh" (4) is the big one among the elements of this AppImage.
This is what each file of my workflow is ment for:
Files 1, 2, 3 and 4 come from my fork of https://github.com/Kron4ek/Conty
Files 1, 2 and 3 are a mod of the original ones to made them smaller and with only what its needed to made VirtualBox work.
To learn more about "Conty", to download more complete builds or to learn more on how to create your own, visit the official repository of the project:
If you right-click on the VM to createa launcher, open the .desktop file and change the "Exec=" entry from
Exec=/usr/lib/virtualbox/VirtualBoxVM --comment ...
to
Exec=/path/to/VirtualBox-{VERSION}-x86_64.AppImage VirtualBoxVM --comment ...
or if you use "AM" or "AppMan" (see below)
Exec=virtualbox VirtualBoxVM --comment ...
"AM"/"AppMan" is a set of scripts and modules for installing, updating, and managing AppImage packages and other portable formats, in the same way that APT manages DEBs packages, DNF the RPMs, and so on... using a large database of Shell scripts inspired by the Arch User Repository, each dedicated to an app or set of applications.
The engine of "AM"/"AppMan" is the "APP-MANAGER" script which, depending on how you install or rename it, allows you to install apps system-wide (for a single system administrator) or locally (for each user).
"AM"/"AppMan" aims to be the default package manager for all AppImage packages, giving them a home to stay.
You can consult the entire list of managed apps at portable-linux-apps.github.io/apps.