Mostly a reminder to myself, but feel free to use the instructions.
- Download Ubuntu server edition from here.
- My virtual machine isn’t going to be heavily used, I only intend to install a few applications probably just pi-hole and a few smaller applications. So, the following minimum specification are probably fine for my user case.
I’m going to create a 5 gigabyte zvol partition to install the OS, select Storage and navigate to “Create zvol”
Select VM’s from the top bar and click on “Add VM” and add the following.
Select Ubuntu16_04 and click on the devices button.
Click on Add Device and navigate to the zvol you created earlier. Ensure that you select VirtIO as the Mode.
Click on Add Device and select CDROM, then browse to the location of your Ubuntu 16.04 installation ISO.
You may want to change the NIC to a VirtIO as mine is below, the Virtual Machine will work with either options selected.
When done your Ubuntu 16.0.4 install should look like this.
Enable Web VNC access, this will allow you to run thorough the install when you start the VM.
Start the VM
Connect to “Vnc via Web” and install Debian.
Follow the GUI and install Ubuntu, remember not to reboot at the end as you’ll be left at the install screen again. At the end of the installation just press the stop button. At this stage, I usually remove the CDROM device, see graphic below. This is how my VM looks.
When you reboot your VM, connect and disconnect using the “Vnc via Web” button a couple of time. You will be presented with the graphic below. Follow the instructions below to fix the bug, it’s an known issue and hopefully I’ll be able to remove the instructions below when fixed.
If you find yourself left at the UEFI Interactive shell (see below).
- Select Boot Maintenance Manager
- Select Boot From File
- Select <EFI>
- Select <debian>
- Select grubx64.efi
This will boot the VM and get you to the login prompt, you may have to follow the steps titled “Fix UEFI boot loader” and make the fix permanent.
Fix UEFI boot loader
Login and type the following.
cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/BOOT/bootx64.efi