The last time I installed VirtualBox, I did it on Mint 13.
$ sudo bash
$ cd /etc/apt/sources.list.d/
$ vim oracle_vbox.list
Insert "deb http://download.virtualbox.org/virtualbox/debian precise contrib" in this file!
Download contents of
http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc to ~/Downloads .
$ apt-key add /home/russ/Downloads/oracle_vbox.asc
$ apt-get update
$ apt-get install virtualbox-4.2
Experience setting up VirtualBox for a Windows VM
It's been about three years since I wrote an article on using Sun VirtualBox
and I thought I'd update it here. I had trouble installing Windows 7 Professional
64-bit and also Windows XP (which I was trying to install as a last resort).
For the trouble pictures, not exhaustive, see the set of four at the end of
this page.
I had trouble with...
Getting Windows 7 install to admit I did have virtualization enabled in
my BIOS; see the first image in the second set below.
Getting VirtualBox to find my CD-ROM drive; see first image of first
set below.
Found CD drive...
Here's the layout summary for the new VM...
Here we are beginning the Windows 7 Installation...
...the installation continuing successfully.
Starting to launch the Windows installation: let's tell
a lie and say that virtualization isn't enabled...
Installation starting, though doomed to failure...
What did I do differently when Windows installation
actually started? Not sure, however, I carefully scrutinized
the images above and ensure the settings were identical to
the last time this worked.
The nastygram coming as a shock...
Window XP installation: my last-ditch effort. This
may still be a CD problem...
Attempt to install Windows XP
This fails even after doing the CD as shown above (and
below, which also describes what I did for Windows 7,
but in greater detail):
Here's a Windows XP VM set up...
Having clicked on Storage in the last
image, I click on the first little disk icon...
...which confirms I'm going to configure a CD; I
choose to leave it empty...
...then I select it...
...click on the disk icon and choose my CD drive...
...and make it passthrough...
But, the final result is identical to the original one,
i.e.: FATAL: No bootable medium found! System halted.
Getting Guest Additions to install
This is way more frustrating than it was a few years ago when I
had so much success with VB.
The problem is that my Windows guest VM comes up with no outside
window around it. It's in this window (see
Conquering Sun VirtualBox for Dummies like Me ) that
the Devices menu appears to let you install the guest
additions.
The moral of this story is not to go horsing around optimizing
your guest OS window at least until you've at least installed
the Guest Additions. The second time I installed, I was careful
and did not have to do anything other than grab the menu at the
top of the guest window
Devices -> Install Guest Additions...
.
Instead, I had to download the guest additions ISO (see
here )
and then go through my (unlaunched) VM's Settings ->
Storage > Controller: IDE , etc. to mount the ISO (that
I downloaded) as a CD.
Then, I launched the Windows VM and opened the (now showing
CD) in Windows File Explorer. It would not AUTORUN. Duh. And
double-clicking AUTORUN only opend the file in NotePad.
Double duh. So, to get it to install, I double-clicked
VBoxWindowAdditions-amd64 . It took a while to launch.
What's the mess here? Somewhere along the way, I either
naively got rid of the outside VB window around my launched
Windows guest VM or VM just sucks. I googled heavily, found
others complaining also and no one offered a solution except
to repeat "install guest additions by pressing HOST + D".
One respondant even said, "...read the documentation. I can't
improve on it." I was never able to get the VirtualBox window
(parent) of my Windows 7 guest VM back which would have made
installing guest additions easier.
Shared-folder joy
As soon as I got the guest additions installed on Windows,
however, I immediately saw what I was looking for: a working,
shared-folder relationship with my Lucid host. The first
illustration is the VM settings for my Windows guest showing
where I thought I'd be sharing a mount point. The second is
what I see in Windows File Explorer, i.e.: an ISO I had
intended to share (for purposes unrelated to this discussion).
The third shows you where this is on my Lucid host.
Supplementary notes
I tried installing Ubuntu Precise Server on Linux Mint 13 under VirtualBox. A sore problem with
getting help on this topic is understanding when respondees are talking about something to do
or happening on the guest OS as compared to the OS hosting VirtualBox.
This went well, but I could not:
Install Guest Additions.
Use Ctrl key on guest.
More installing Guest Additions
Per https://forums.virtualbox.org/viewtopic.php?f=3&t=15679, I did this:
apt-get install dkms build-essential linux-headers-generic
thinking that this would allow the (Guest window) Devices ->
Install Guest Additions... to work. It did not.
Ultimately, I was able to install the Guest Additions, but I did not note how.
As I remember, I used the advanced packaging tool.
The best way to avoid trouble is not to jack with any of the settings, but
just dismiss the alerts each time you start up.
Mounting host's optical drive (CD, DVD, etc.) in VM
How to mount what's in the host's CD, DVD, Bluray, etc. drive in the running
virtual machine (VM):
Open VirtualBox manager dialog (main window that lists all the VMs) if
not open.
Select the running VM.
Click Settings (will be for this VM), then Storage .
Click Controller: IDE → Empty ; you should see something like this:
Click to mark Live CD/DVD if not checked.
Click disk icon (choose a virtual disk... ) and choose the
drive in the host running VirtualBox you wish to mount in the VM.
Click OK .
At this point, you should hear the drive begin to whir, then see it mount on the
VM's desktop.
I hid the VirtualBox menu in the VM and can't get it back
To save screen real estate, I hide menu bars, but now I don't know how to get
it back.
Open VirtualBox (main) dialog box.
Select (running) virtual machine (VM) whose menu you want back.
Click on Settings → User Interface .
Click the Enable Menu Bar checkbox.
Look at the VM in the host; the menu should have reappeared.
Installing VM from ISO: no bootable medium found
Be sure that, under Settings → System for the VM, you do not
mindlessly uncheck Optical thinking you don't need it because you
will need it in support of the ISO during installation.
Installing guest additions on a headless-server VM
On a headless, Linux-server VM, installing VirtualBox Guest Additions isn't
too straightforward. These commands are all run as root .
In the top menu of the guest VM window, click
Devices → Insert Guest Additions CD Image . This puts the
(virtual) CD at your VM's disposal.
Mount this CD. Before you can do that, you'll need to create a mount point
if it's not already there (see first three commands). If you've done this
before, it will still be there, but you'll have to (re)mount it—it
doesn't survive reboots:
# cd /media
# mkdir cdrom
# chmod 770 cdrom (or chmod u+rwx,g+rwx cdrom)
# mount /dev/cdrom /media/cdrom
mount: /media/cdrom: WARNING: device write-protected, mounted read-only.
Install dependencies via the advanced packaging tool:
# apt-get install -y dkms build-essential linux-headers-generic linux-headers-$(uname -r)
If you've got trouble with your package manager (maybe a PPA that's
hiding), you might get errors doing this, but they should not be fatal to
the overall objective.
Next, install the Guest Additions package:
# cd /media/cdrom
# ./VBoxLinuxAdditions.run
Mounting a shared folder on a headless-server VM
To mount the host's (shared) folder (VirtualBox Guest Additions must be
present, installed and mounted ). The mounted
folder was designated in the VirtualBox GUI Settings → Shared Folders
configuration. For instance, maybe you're running VirtualBox on Windows
and sharing your Documents folder. Here's how to mount that on a
headless, Linux server. These commands are all run as root .
Create a mount point under /media .
# cd /media
# mkdir sf_Documents
# chmod 770 Documents
Fix up the vboxadd user to belong to group vboxsf :
# adduser vboxadd vboxsf
# groups vboxadd
vboxadd : daemon vboxsf
Mount the shared volume:
# mount -t vboxsf Documents /media/sf_Documents
/sbin/mount.vboxsf: mounting failed with the error: Protocol error
This seems always to happen when the guest is headless. Fighting it for
hours results in it working, but there appears no rhyme or reason for it
to have failed in the first place and to begin working in the second. The
last time I got it to work, this was the configuration:
VirtualBox → Settings → Shared Folders → Name/Folder:
dev/C:\Users\rbateman\dev
# mount -t vboxsf dev /media/sf_dev
What a shared folder on a Windows guest looks like
Enabling Intel VT-X on HP EliteDesk 800 American Megatrends, Inc. BIOS
Without Intell VT-X (or AMD-V), VirtualBox (nor VMware Workstation) can support
64-bit guest OSes.
I once got an HP EliteDesk 800 with i7 that came with VT-X disabled which
I did not know until I ran VirtualBox to install a new VM
("ERROR: VT-X is not available"). I went into the BIOS, but could not find
where to enable it and thought that this wasn't an available feature. Later,
I found on an HP support site how to do this:
Press Esc as the computer boots up to gain entry to the BIOS.
Choose Computer Setup .
Use the right-arrow key to reach the Security menu (!).
Use the down-arrow to reach System Security .
Enable VT-X.
VirtualBox VM networking options matrix
It's relevant to understand what one's networking options are in a VM depending
upon the network type chosen in
Settings → Network → Attached to: . See
6.2. Introduction to networking modes .
network type →
direction ↓
NAT
NAT Network
Bridged
Internal
Host-only
VM ⇆ Host
-
-
✗
-
✗
VM ⇆ VM
-
✗
✗
✗
✗
VM → Internet
✗
✗
✗
-
-
VM ← Internet
port-forwarding
port-forwarding
✗
-
-
static-address support
-
-
-
-
✗
To read what's in the table's left column, take VM ⇆ Host ;
this means, "from VM to host or host to VM." VM → Internet
means, "from VM to Internet (but not from Internet to VM)."
Bridged networking in a VirtualBox guest means more or less that the VM
behaves on the network as if a computer host separate from the one on
which it's a guest. The other types come with various limitations that
make them not behave as an independent, separate host.
Disable the screensaver of a Linux/headless server VM
...because, really, any screen-saving should be a function of the host OS
unless you're just trying to be clever.
Edit /etc/default/grub .
Add consoleblank=0 to (probably the end of) what's already there
for GRUB_CMDLINE_LINUX_DEFAULT .
Run update-grub .
Reboot the server.
modprobe vboxdrv error: "Could not insert..."
The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a
permission problem with /dev/vboxdrv . Please install
virtualbox-dkms package and load the kernel module by executing
# modprobe vboxdrv
as root . If it is available in your distribution, you should install
the DKMS package first. This package keeps track of Linux kernel changes and
recompiles the vboxdrv kernel module if necessary. Note that
modprobe should be found on the path /sbin/modprobe or
/usr/sbin/modprobe .
Here are some particulars you might need as you work through this. Note that
you might benefit from updating your Linux kernel or uninstalling then
reinstalling virtualbox-dkms .
# apt-get remove virtualbox-dkms
# apt-get remove --purge virtualbox-dkms
# apt-get install -y linux-headers-amd64 linux-image-amd64
# apt install --reinstall linux-headers-$(uname -r) virtualbox-dkms dkms
# apt-get install -y virtualbox-dkms
If [/usr ]/sbin/modprobe itself is missing, try this for Ubuntu, at least:
# apt-get install kmod
modprobe module signing...
When attempting to bring a working Virtual Box up on a base OS to which you
don't have root access, there arises the need to sign the modules.
When you run the command:
# modprobe vboxdrv
...and get some kind of error, you may discover that the solution requires
signing the vbox modules before Virtual Box will work error-free.
What's worse, you won't discover which vbox modules you need to sign
except as you discover them one by one trying to set up a VM.
Here's how to perform this signing, but first, consider that...
...you must register these modules for Secure Boot (which component
is what's causing you this nightmare in the first place). Since Linux kernel
version 4.4.0-20, it's enforced that unsigned kernel modules will not be
allowed to run with Secure Boot enabled, so you must sign all modules
you wish to use. Start by installing the mokutil module:
# apt-get update && apt-get upgrade && apt-get install mokutil
Next, create signing keys:
# openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=VirtualBox/"
Note that in whatever current working directory from which you issue
these signing commands, there is created—and therefore appended
to—files MOK.priv and MOK.der . Don't try to issue the
signing command while your current working directory is other.
Sign the modules in question (I would do at least these two up front):
# /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vboxdrv )
# /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vboxnetflt )
If you feel like it, you can confirm that the module is signed:
# tail $(modinfo -n vboxdrv) | grep "Module signature appended"
Then, register the keys to Secure Boot :
# mokutil --import MOK.der
This forces you to enter a password. Make it simple and remember it. Then,
restart your base OS (i.e.: bounce your computer). A blue screen will appear
and you'll see an option, Enroll MOK . You should take this option
(pressing Enter ), then Continue , then input the password.
(Likely, you will not need this password again, but hang onto it just in case.)
And, once you've rebooted, if you feel like it, you can confirm that the key
was enrolled (and should work). Remember to be in that same current working
directory as when you signed the modules:
# mokutil --test-key MOK.der
Important note
The solution to the problem that sent you to this note doesn't exactly have
anything to do with Virtual Box, but with the fact that Secure Boot has
been imposed upon your hardware. This also has nothing to do with the version
of Virtual Box. (When I wrote this note, I was working with Virtual Box 6.1.)
Building a Linux VM using an ISO
We're going to install a VM running Linux Mint 21.2 Cinnamon 64-bit as an
example.
Create a new VM in Virtual Box thus:
Click New .
Fill in (VM- and host) Name .
Choose where this VM will reside in your local filesystem. (Pick default.)
Choose the Type (Linux)...
...and the Version (Ubuntu 64-bit)
Click Next .
Dial in the amount of memory you want (16384), click Next .
Click Create a virtual hard disk now , click Create .
Choose whether to create the disk immediately or only virtually. If you're
going to be using the VM in a serious way (e.g.: for development), you
may wish to go with an "up-front" solution, VHD .
Click Next .
Pursuant to the previous instruction, choose a Fixed size disk
and click Next .
Choose the File location and size , that is, what to call and
where to put the diskspace as well as how big. (The default is
/home/username/VirtualBox VMs/hostname/hostname.vhd .)
I'm going to size my disk as 1 Tb (1000 Gb).
Click Create .
Once you've created the VM, configure it by clicking Settings .
General
System
Display
Storage
Audio
Network
Serial Ports
USB
Shared Folders
User Interface
The new VM is created and configured, however, before launching, you must
consider how the OS will be sourced. The purpose of this note is to demonstrate
a particular installation, that of Linux Mint 21.2 Cinnamon 64-bit. We have an
ISO.
Click Settings .
Click Storage .
Click under Controller: IDE , Empty .
Click Live CD/DVD .
Click icon, "Choose optical disk..."
Click Chooose a disk file .
Navigate to the ISO you downloaded
(something like ~/Downloads/linuxmint-21.2-cinnamon-64bit.iso ).
Click Open .
Click OK to dismiss Settings dialog.
Click Start .
Click Start Linux Mint 21.2 Cinnamon 64-bit to install.
Press Enter to launch the ISO.
Double-click the desktop icon, Install Linux Mint .
Walk the installation just as if you were installing from a DVD ISO
in the optical drive of a piece of hardware.