Archives For November 30, 1999

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 23.10.

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:

For Ubuntu 22.04, 23.04, 23.10, and their based systems, such as Linux Mint 21, just select download the package for ‘Ubuntu 22.04’.

Then, either double click or use right-click menu “Open With Other Application“, to select open the .deb package you downloaded via Software Install.

Double-click install .deb via Software Install

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

Ubuntu 23.10 so far does NOT have “Software Install”. In the case, press Ctrl+Alt+T on keyboard to open terminal, and run command to install the downloaded package:

sudo apt install ~/Downloads/virtualbox-*amd64.deb

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. The repository does not support for Ubuntu 23.10 (mantic), 23.04 (lunar), so just use jammy for them.

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.0

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.0

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:

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!

Virtualbox

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:

Before getting started, make sure Guest OS is shutdown. And the disk image is not in use. Also UN-MOUNT the disk once the job done.

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

Virtualbox

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 5.1.12

Oracle VirtualBox released version 6.1.20 as the tenth update for the 6.1 release series of the open-source virtualization software.

For Linux host and guest, the release added support for both Kernel 5.11 and Kernel 5.12. And the maximum MTU size has been increased to 16110 for host-only adapters on Linux kernels 4.10+.

There are also bug-fixes for Linux guest additions, including vboxvideo module compilation fix for kernel version 5.10.x, and kernel module build fix for RHEL 8.4 beta and CentOS Stream.

Other changes in VirtualBox 6.1.20 include:

  • Fixed extremely poor VM performance depending on the timing of various actions.
  • Fixed guest OS hanging under certain circumstances when Hyper-V is present.
  • Fixed Guru Meditation error when using a nested hypervisor under certain circumstances.
  • Fixed a SMAP related host panic affecting Solaris 11.4 systems with Intel Haswell CPUs or later.
  • Add cloud-init support for export to OCI and for OCI instance creation.
  • Fixed “Delete all files” leaving behind Logs/VBoxUI.log.
  • Multiple audio fixes and enhancements.
  • Fixed detection of duplex audio devices on macOS.
  • Fixed link status reporting for “not attached” adapters.
  • Fixed connectivity issues with e1000 in OS/2 guests.
  • Fixed VxWorks e1000 driver compatibility issue.
  • Fixed GUI checks for port forwarding rules rejecting IPv6 with “Nat Network”.
  • Fixed possible VM hang when using the a serial port in disconnected mode.
  • Fixed interoperability with v4l2loopback and fixed a webcam crash under certain circumstances.
  • Fixed sporadic Windows VM hang or reboot on high CPU load.
  • Allow changing network adapter attachment of a saved VM with “modifyvm”.
  • Fix for argument processing to honor the ‘–root’ option.

How to Install VirtualBox 6.1.20 in Ubuntu:

The official .deb packages are available for download at the link below:

If you’ve already added the Oracle apt repository for Linux, install the updates simply via Software Updater.

Or add the apt repository by running following commands one by one:

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

sudo sh -c 'echo "deb [arch=amd64] https://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, or focal for Linux Mint 20.

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.1:

sudo apt install virtualbox-6.1

Uninstall:

To remove it, simply run command in terminal:

sudo apt remove --autoremove virtualbox-6.1

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

Virtualbox

Oracle VirtualBox 6.1.16 was released as a new maintenance release with Kernel 5.9 support for Linux host and guest.

Virtualbox 6.1.16 changelog:

  • Fixed random memory corruption and XMM register state corruption inside the VM when Hyper-V is used
  • Fixed VMSVGA 3D support with Linux guests when Hyper-V is used
  • Fixed some Qt related crashes on macOS Big Sur
  • Fixed network integration not working behind some proxies
  • Mask out remote wake capability to avoid unresponsive devices
  • Fixed issues with audio playback after host goes to sleep
  • Keep transferring data if the status line monitoring fails
  • Fixed blocking a re-connect when TCP mode is used
  • Fixed inability of guests to use the last timer
  • Fixed detection of system locale when running ‘VBoxManage unattended install’ without –locale
  • macOS host: Installer on Big Sur is now reminding user that system has to be rebooted to load the installed KEXTs
  • Support kernel version 5.9
  • Linux guest: Workaround to improve resizing of 32-bit VMs with VMSVGA graphics controller, and do not try to use RandR version 1.3 due to bugs causing the X server to hang
  • Linux guest: Fixed VBoxService crashing in the CPU hot-plug service under certain circumstances during a CPU hot-unplug event.
  • Fixed Guest additions build for RHEL 8.3 beta

How to Install VirtualBox 6.1.16 in Ubuntu:

The official .deb packages are available for download at the link below:

Download VirtualBox

If you’ve already added the Oracle apt repository for Linux, install the updates simply via Software Updater.

Or add the apt repository by running following commands one by one:

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

sudo sh -c 'echo "deb [arch=amd64] https://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, or focal for Linux Mint 20.

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.1:

sudo apt install virtualbox-6.1

Uninstall:

To remove it, simply run command in terminal:

sudo apt remove --autoremove virtualbox-6.1

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

Oracle virtualbox 5.0

Oracle Virtualbox 6.1.10 was released as the fifth maintenance release for the 6.1 series.

Virtualbox 6.1.10 features Kernel 5.7 support on Linux host and guest. Other changes include:

  • Fixed crash when using Qt on Xwayland sessions
  • Fixed mouse pointer doesn’t work properly in Windows guests when scaling is on.
  • Fixed crash of ‘VBoxManage internalcommands repairhd’ when processing invalid input
  • Disable audio input and audio output by default for new VMs
  • Fixed resizing and multi monitor handling for Wayland guests.
  • Fixed VBoxClient error: The parent session seems to be non-X11.

How to Install VirtualBox 6.1.10 in Ubuntu:

The official .deb packages are available for download at the link below:

Download VirtualBox

If you’ve already added the Oracle apt repository for Linux, install the updates simply via Software Updater.

Or add the apt repository by running following commands one by one:

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

sudo sh -c 'echo "deb [arch=amd64] https://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.1:

sudo apt install virtualbox-6.1

Uninstall:

To remove it, simply run command in terminal:

sudo apt remove --autoremove virtualbox-6.1

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