This document describes the different mechanisms and config file options that are available for Xen.
The following diagram shows the first steps of the Linux boot and startup sequence to provide a baseline to allow explaining the differences
HVM Guest Boot Process
From a user's perspective the HVM Boot and install process is identical to the process on a native PC or server.
However, behind the scenes
- The hvmloader is copied into guest memory by Xen (under the control of the Toolstack). The hvmloader sets up all necessary information for the Device Emulator which emulates a HW environment that appears exactly like a physical machine.
- The correct firmware is automatically loaded as a binary blob (usually located in /usr/lib64/xen/boot) and copied into guest memory based on config settings, but can be overridden via the firmware config file option. See the various firmware options in the man page.
Direct Kernel Boot
When installing a new guest OS it is often useful to boot directly from a kernel and initrd stored in the host OS' file system, allowing command line arguments to be passed directly to the installer. This capability is usually available for PV, PVH and HVM guests.
In this case, the bootloader and firmware are bypassed. Direct Kernel Boot is often an easy way to start the installation process and create a disk image. To install VMs this way, you need to be a host administrator (aka you need to have access to Dom0). Direct Kernel Boot is also useful for netboot. Note that most distros have kernel and initrd file systems available for download. In some cases, you will need to download an ISO, mount it and use the kernel and initrd from the ISO.
PVGrub is originally was a boot manager for Xen PV VMs. In 2015, support for Xen PV guests was included into GRUB2.
Unlike for HVM guests, the boot proceess
Non standard way of installing/booting,�with a standard bootloader UI.
Allows host admins to configure what guests and kernel versions a guest admin can install.
Also used for PXE booting
Requires a PV capable GRUB2 (you may need to build from source or install an appropriate distro package)