Archives For November 30, 1999

Oracle finally announced the release of new major VirtualBox 7.1.0 after almost 2 years since the last feature release.

The release introduced a new logo icon with flat design, and re-fined the UI with modern look and feel. The Preferences and VM Settings dialog now include Basic and Expert tabs that will show/hide some extra settings.

It improved the font in Settings/Preferences to make the text more easy to read, as well it provides a “Search Box” in the dialog for searching settings. And, each VM now has new splash screen at very beginning of startup.

VirtualBox VM startup splash

Continue Reading…

This tutorial shows how to install the guest additions for Debian, Ubuntu, Linux Mint based systems that are running as Virtualbox virtual machine.

Guest Additions is an external package designed to be installed inside a VirtualBox guest OS. It enables closer integration between the host and guest OSes, including features such as shared folder, custom video drivers, seamless window mode, and more.

Guest Additions is not installed by default after installed your system as virtual machine. It’s however easy to install through the official CD image.

Ubuntu 24.04 Guest OS in VirtualBox

Continue Reading…

Oracle Virtualbox announced a new point release for the 7.0 series this Tuesday.

It’s VirtualBox 7.0.14, which add initial host and guest support for Red Hat Enterprise Linux 9.4, though it’s still in development stage. As well, there’s a kernel panic fix for RHEL 8.9 running as guest OS.

For Solaris Linux, the guest additions can be installed into an alternate root path, and it no longer requires to reboot after uninstalling guest additions.

For macOS as host, the release added support for newer USB storage devices, and fixed memory Leak in the VBoxIntNetSwitch process when VM was configured to use ‘Internal Networking’.

The release also include OVF import/export improvements. They include import & export virtual machines containing NVMe storage controllers, and, export a VM which contains a medium inserted into a virtual CD/DVD drive which is attached to a Virtio-SCSI controller.

Continue Reading…

This tutorial shows how to install Oracle VirtualBox in Ubuntu 22.04 and/or Ubuntu 24.04

VirtualBox is a popular free open-source tool for running different operating systems in virtual machines.

The tool is available in Ubuntu system repositories, but old. So, here’s the step by step how to install guide for latest version for beginners.

VirtualBox VM Manager

NOTE: VirtualBox so far only support x86_64 (amd64) CPU architecture type. Meaning for modern Intel & AMD CPUs.

Step 1: Download & Install the .deb package (Optional)

Oracle provides official .deb & .rpm packages for installing the software in Debian/Ubuntu & Fedora based systems.

User can select download the package by going to its website via the link below:

Next, open the Downloads folder, then either double click on the package or use right-click menu “Open With Other Application” and select open the .deb package you just downloaded via Software Install (or App Center). Finally, click install button to install it.

NOTE: The installing process may fail sometimes due to old package in your system, in the case, just uninstall the old one (go to bottom for how) then try to re-install again.

Once installed, search for and launch it either from start menu or ‘Activities’ overview depends on your desktop environment.

Step 2: Add VirtualBox repository to keep it up-to-date

The .deb package you installed via ‘Step 1’ used to automatically add the repository. However, it does NO longer do the trick in recent versions.

So, here’s how to do it step by step via the new Ubuntu PPA policy.

1. Download & install the key

First, press Ctrl+Alt+T on keyboard to open up a terminal window.

When it opens, run command to make sure “/etc/apt/keyrings” directory exist:

sudo mkdir -p /etc/apt/keyrings

Then, run command to use wget to download key, dearmor it (so unreadable), and finally save it to that directory:

wget -q -O- https://www.virtualbox.org/download/oracle_vbox_2016.asc | sudo gpg --dearmor --yes --output /etc/apt/keyrings/oracle-virtualbox-2016.gpg

You can finally verify the key file, by running command:

cat /etc/apt/keyrings/oracle-virtualbox-2016.gpg

As the screenshot above shows you, it should outputs unreadable text.

2. Add VirtualBox repository

Before adding the source repository, first run command to get system code name:

cat /etc/os-release

The apt repository so far only support Debian Stable (& old stable), Ubuntu 22.04 & 20.04 LTS (focal, jammy). For all their based systems, use the code-name you got via this command.

Then, in terminal window, run command to create & edit a sources file:

sudo nano /etc/apt/sources.list.d/virtualbox.sources

Then in the terminal window, paste following lines:

Types: deb
URIs: https://download.virtualbox.org/virtualbox/debian
Suites: jammy
Components: contrib
Architectures: amd64
Signed-By: /etc/apt/keyrings/oracle-virtualbox-2016.gpg

Replace jammy (for 22.04, Mint 21.x) according to last command output, such as noble for 24.04/Mint 22, focal for 20.04/mint20.

When done, press either Ctrl+S or Ctrl+O and hit Enter to save file, then press Ctrl+X to exit.

Finally, verify the sources file by running command:

cat /etc/apt/sources.list.d/virtualbox.sources

It should outputs the content you just added into that file.

3. Update system package cache

After setup the source repository, run command to refresh your system package cache:

sudo apt update

The terminal output should print a line looks like:

“Hit:5 https://download.virtualbox.org/virtualbox/debian jammy InRelease”

4. Install or Update Virtualbox

If you skipped the “Step 1”, then you can install it (7.0.x series at the moment) by running command in terminal:

sudo apt install virtualbox-7.1

Finally, when a newer release is out, you’ll be able to update it through Software Updater (Update Manager) tool.

Uninstall

To remove VirtualBox, open terminal (Ctrl+Alt+T) window and run command:

sudo apt remove --autoremove virtualbox virtualbox-7.1

And, remove the source repository by simply deleting the key & sources files:

sudo rm /etc/apt/keyrings/oracle-virtualbox-2016.gpg /etc/apt/sources.list.d/virtualbox.sources

Also, run sudo apt update to refresh package cache.

I’m using Virtualbox to try out different Linux Distributions in virtual machines. It always has 2 logo icons on Ubuntu dock: one for the manager, and another for VMs.

The VM and VM manager icons on the dock are totally same, causing me to make mis-clicks frequently. And, all the opened VMs are grouped into single icon on the dock.

If you don’t like this default behavior, then it’s easy to make Virtual Virtual Machines to have separate icon per instance.

As the screenshot below shows you, after following this tutorial, every VM will have its own system logo on Ubuntu Dock:

UPDATE: This tutorial ONLY works for Virtualbox installed from virtualbox.org/wiki/Linux_Downloads.

Method 1: Disable virtualboxvm.desktop

The VM icons for Linux are handled by virtualboxvm.desktop file under “/usr/share/applications” directory. Simply disable that file will make Virtualbox VM (7.0.12 in my test) fall back to separate icon with system/distro logo.

To do so, just create an empty file with same filename under “.local/share/applications”. It will be taken in use instead of the one in ‘/usr/share/applications’ for current user only.

Option 1: Single command to create empty virtualboxvm.desktop

Ubuntu user can press Ctrl+Alt+T on keyboard to open terminal, then run the single command below to create the empty file:

touch ~/.local/share/applications/virtualboxvm.desktop

This command should work in most Linux, though running command mkdir -p ~/.local/share/applications may be required first to create the directory.

Option 2: Use text editor to create empty virtualboxvm.desktop

For those who hate Linux commands, simply search for and launch a text editor window.

Then, it should by default open an empty file (if not create one). There open menu and select “Save as”.

In next dialog, name the empty file to virtualboxvm.desktop and save it into “Home > .local > share > applications”.

The change will be applied next time you launch a VirtualBox VirtualBox.

Method 2: Edit virtualboxvm.desktop

In case the first method does not work for you, you can configure the file to make it start VM as separate process.

1. First, open 2 “Files” windows. Then drag’n’drop virtualboxvm.desktop to local folder.

  • In “Files” (aka nautilus), navigate to Other Locations -> Computer -> usr -> share -> applications, then, find out the virtualboxvm.desktop file.
  • In another “Files” window, press Ctrl+H, then navigate to .local -> share -> applications. Finally, drag’n’drop the file to this folder.

2. Right-click on the virtualboxvm.desktop file in .local/share/applications folder and click “Open with Text Editor”.

When the file opens, add --separate flag to ‘Exec’ line. So it will be ‘Exec=VirtualBoxVM --separate %U‘.

For choice, you can change the icon to Icon=virtualbox-vbox, or replace with /path/to/whatever-icon that your want. However, all VMs will use the same icon on Ubuntu Dock.

How to Restore

To restore the change, simply delete the empty file either in your file manager or by running command in terminal:

rm ~/.local/share/applications/virtualboxvm.desktop

That’s it. Enjoy!

Shared Folders feature does not work for your OS in VirtualBox Virtual Machine? Here’s a quick workaround to transfer files between host and VMs.

VirtualBox has port forwarding feature that allows to access a service or an app running in VM from the host or even the internet. With it, you can setup a quick http or ftp server in VM, then access the files outside. Or, use scp command to transfer files.

Step 1: Configure Port forwarding

Firstly, shutdown your virtual machine. Then, open its ‘Settings‘. In pop-up dialog, navigate to ‘Network’ -> Adapter 1 -> Advanced -> Port Forwarding.

In next “Port Forwarding Rules” dialog, click the right-corner icons to add/remove rules. Then, set host port and corresponding guest port.

  • For example, if you want to SSH or SCP to VM, then add a rule and set guest port to 22 (if default SSH port in use) and set host port to whatever that’s not in use.
  • In my case, I want to set up a temporary Python http server, then access from the host, so I added a rule and set both host and guest ports to 8000.

Step 2: Setup a temporary http server to transfer files

Python is pre-installed in most Linux. It has a built-in script, allows to quickly setup a http server via a single command.

Just, boot your Linux Virtual Machine. Then, right-click on your desired folder and select “Open in Terminal” or “Open Terminal Here”. Finally, run command to setup a simple http server on VM:

python3 -m http.server

Finally, in host machine, open up a web browser and go to localhost:8000. Then, you can access (download) all files under that folder in the VM.

If you want to create a temporary http server with upload support, then install uploadserver module in your VM via command:

pip install uploadserver

In some Linux, you may add --break-system-packages flag. So the command will be:

pip install uploadserver --break-system-packages

Then start the http server with upload feature by running command:

python3 -m uploadserver

Finally, in host go to localhost:8000/upload to upload files to VM.

Step 3: (Optional) Use SSH/SCP

For choice, you can also use secure shell (SSH) protocol to access your VM. In the case, you need to map port 22 in guest to any unused port (8088 in my case) in host.

SSH is available in most Linux repository, and Windows can install it from Settings -> Apps -> Optional Features -> Add a feature -> OpenSSH Server.

By running SSH server in VM, host machine can run the command below to access it:

ssh -p 8088 jim@localhost

Replace port number 8088, and VM’s username jim to yours.

Or, use scp command to transfer files between host and VM. For example, send ‘Sigil-2.0.1.tar.gz’ package in host’s Downloads folder to VM user jim’s home directory:

scp -P 8088 /home/ji/Downloads/Sigil-2.0.1.tar.gz jim@localhost:

Or send ‘Sigil-2.0.1.tar.gz’ from VM user jim’s home directory to current directory in host machine:

scp -P 8088 jim@localhost:~/Sigil-2.0.1.tar.gz ./

This simple tutorial shows how to install Virtualbox Guest Additions in Ubuntu based systems, e.g., Linux Mint, Zorin OS and Elementary OS, with fix or workaround for common issues.

Guest Additions is a set of device drivers and system applications to install in Guest OS. It’s useful when you try to share folder and/or clipboard between guest and host, enable USB support etc. Installing the software suite is easy via a menu option. However, it might not function in some cases.

Install Guest Additions in the Normal Way

Firstly, start and login the Guest OS. Then go to VM menu “Devices -> Insert Guest Additions CD image“.

Usually, a pop-up dialog will open and prompt whether to run autorun script or not. Just click “Run” and it starts to install the guest additions after you typing user password in authentication dialog.

After installation, the additions will function in next boot of the Guest OS.

[Workaround] Unable to insert the virtual optical disk:

Sometimes it outputs an error “Unable to insert the virtual optical disk … into the machine …” when you click on the menu option in VM (VirtualBox Machine).

It happens in my case when trying to install the additions in Elementary OS 6. And it will pop-up an error dialog:

Don’t know why but do following steps will fix the issue in next Guest boot:

1.) Power off the Guest OS, then go to its Settings page. Under the Storage settings, remove the attached iso under Controller:IDE.

2.) Next add new optical drive, and click “Leave Empty” in the select dialog.

After saving the changes, start the Guest OS and try to install the additions again.

Manually Download & Install Guest Additions:

Nothing happens when clicking ‘Insert Guest Additions CD image’ option? You can download the iso, mount it, and install the Guest Additions manually.

1.) Firstly start the VirtualBox Machine, download the iso image for your VirtualBox edition, usually “VBoxGuestAdditions_x.x.xx.iso”, from the link button below:

2.) Next open the Downloads folder, right-click or (double-click) on the file and select to mount the iso image.

The dialog should pop-up allows you to select “Run” to install the additions. If not, go to the mounted folder from the left pane in file manager. Right-click on blank area and select ‘Open in Terminal‘ to open a terminal window and navigate to the directory automatically.

When terminal opens, run the .run installer manually via command:

sudo ./VBoxLinuxAdditions.run

That’s all. Enjoy!

This tutorial shows how to mount the VirtualBox virtual disk image in Ubuntu, so you can access the Guest OS file system with read and write permission, if it does not boot.

After misconfigured my VirtualBox Guest OS, it does not longer work. I know how to correct the issue to make it boot again, but firstly accessing to the file system is required!

Since the VBox user manual does not work, here’s what I did in Ubuntu 20.04 host with VirtualBox 6.1.x:

1.) Firstly open terminal from system application launcher. When it opens, run command:

vboximg-mount --list

vboximg-mount is a utility to make VBox disk images available to the host. With --list, it list all Disk Images as well as the UUID.

In the case, I have all Guest OSes on single Disk Image (.vdi). And the uuid is: “3db5fd91-fd56-46af-a2d2-98cd62b05ea3”

2.) Next perform a FUSE mount of the virtual disk image:

  • First create a folder as mount point, vbox_sysdisk for instance:
    mkdir vbox_sysdisk
  • Then mount it via command (remember to change the UUID to yours):
    vboximg-mount -i 3db5fd91-fd56-46af-a2d2-98cd62b05ea3 -o allow_root vbox_sysdisk

NOTE: You may need to edit the “/etc/fuse.conf” to make the -o allow_root flag work. To do so, run command sudo gedit /etc/fuse.conf and enable (remove # at its beginning) “user_allow_other” line.

3.) As the previous picture shows, I have 5 disk partitions: vol0, vol1, …, vol4. Now mount either partition (vol4 for instance) to /mnt via command:

sudo mount vbox_sysdis/vol4 /mnt

Finally go to /mnt directory and there you are.

Unmount:

To un-mount the guest os file system, run command:

sudo umount /mnt

To un-mount the VBox disk image, run command:

umount ~/vbox_sysdisk

And you may finally remove that folder either from file manager or by running command in terminal:

rm -r ~/vbox_sysdisk

Running Ubuntu as virtual machine via VirtualBox? You may encounter permission issue to access the shared folder between host and guest.

Shared Folders is an useful feature for file sync between Virtualbox host and guest OSes. However, after you created one, the shared folder is marked with cross and lock icons. And it pops up an error dialog when you trying to open it:

Unhandled error message:
GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: Unix process subject does not have uid set.

Or it prompts permission issue while accessing from the left pane in file manager:

You do not have permissions necessary to view the contents of “xxx”

Fix shared folder permission issue:

The shared folder belongs to vboxsf group in the guest. All you need to do is add your user into this group.

There are a few ways to add an user to a group. Here I’m going to do it via a single command:

  1. Firstly, start the virtual machine and login.
  2. Open a terminal window from system app launcher.
  3. When terminal opens, run command to check your username in case you don’t remember:
    whoami
  4. Finally add user to vboxsf group (replace USER_NAME with what printed in last command.):
    sudo adduser USER_NAME vboxsf

Restart VM to apply change and enjoy!

Oracle Virtualbox 6.0.12 was released a few days ago as new maintenance release for the 6.0 series. Here’s how to install it in Ubuntu 16.04, Ubuntu 18.04, and higher.

Virtualbox 6.0.12 release highlights:

  • OCI export: handle empty disk image correctly
  • API: fix potential crash when using the medium I/O functionality
  • VBoxManage: fixed documentation of VBoxManage modifyvm uarttype documentation
  • Network: scrub inbound TCP URG pointer, working around incorrect OOB handling
  • USB: Improved identification of power-saved devices on Windows hosts
  • Audio: in the AC97 work around buggy guest drivers which reprogram the sampling rate, breaking audio in and/or audio out
  • Windows host: fixed crashes on startup with software trying to inject code into a VM process
  • Linux host and guest: fix kernel module build for SLES 12 SP4 kernel
  • 3D: fixed state saving and loading when the VBoxVGA graphics adapter is used with 3D enabled
  • Windows guests: fixed mouse cursor visibility updating
  • Windows guests: fixed graphics corruption in Windows 10 search menu with VBoxSVGA adapter
  • Windows guests: fixed dwm.exe crashes related to the WDDM driver for VBoxSVGA adapter when the VM has lots of RAM
  • MacOS Guest Additions fail to start in 6.0.10
  • Windows guests: fixed crashes when using shared folders
  • Linux guests: unprivileged users unable to create files inside shared folders
  • Linux guests: improve compatibility of vboxvideo.ko kernel module build logic

How to Install Virtualbox 6.0.12 in Ubuntu:

For all current Ubuntu releases, you can either download the official .deb binary from the link below:

or install VBox from its official apt repository by running following steps:

1. Open terminal (Ctrl+Alt+T), paste below command and run to add the repository:

sudo sh -c 'echo "deb [arch=amd64] http://download.virtualbox.org/virtualbox/debian $(lsb_release -sc) contrib" >> /etc/apt/sources.list.d/virtualbox.list'

For Linux Mint, you HAVE to replace $(lsb_release -sc) in the command with bionic for Mint 19.x, or xenial for Mint 18.x.

2. Then download and install the repository key via command:

wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -

3. Refresh system package cache via command:

sudo apt update

4. Finally install Virtualbox 6.0.12:

sudo apt install virtualbox-6.0

Uninstall:

To remove it, simply run command in terminal:

sudo apt remove --autoremove virtualbox-6.0

And go to Software & Updates -> Other Software to remove apt repositories.