UEFI and Q35 machine type support
The CERN Cloud Infrastructure supports UEFI boot for new instances. UEFI requires that the instance uses the Q35 machine type. By default, the CERN cloud image "CS8" (CentOS 8 Stream) uses UEFI and the Q35. This differs from the "CC7" (CERN CentOS 7) and the "C8" (CentOS 8) images that by default use BIOS and the PC machine type.
How to boot instances using UEFI from a personal image
If your personal image is compatible with UEFI and you would like that your instances are booted using UEFI the following properties need to be added into the image:
hw_firmware_type='uefi'
hw_machine_type='q35'
architecture='x86_64'
For existing personal images:
$ openstack image set --property hw_firmware_type='uefi' --property hw_machine_type='q35' --property architecture='x86_64' <MY_IMAGE_NAME>
For new images:
$ openstack image create --disk-format qcow2 --container-format bare --file MY_IMAGE_FILE --property hw_firmware_type='uefi' --property hw_machine_type='q35' --property architecture='x86_64' <MY_IMAGE_NAME>
How to boot instances using UEFI from the CC7 (CERN CentOS 7) or the C8 (CentOS 8) image
The CERN cloud images "CC7" and "C8" support UEFI. However, for compatibility reasons they use BIOS and the PC machine type. In order to use these images with UEFI, you will need to download the image file and create a new image in your OpenStack project with the following properties:
hw_firmware_type='uefi'
hw_machine_type='q35'
architecture='x86_64'
First download the image file:
$ openstack image save --file MY_IMAGE_FILE IMAGE_NAME
Then upload a new image based in the previous downloaded file and with required properties:
$ openstack image create --disk-format qcow2 --container-format bare --file MY_IMAGE_FILE --property hw_firmware_type='uefi' --property hw_machine_type='q35' --property architecture='x86_64' <MY_IMAGE_NAME>
How to boot instances using BIOS from the CS8 (CentOS Stream 8) image and keep the PC machine type for compatibility
In the rare cases that you may need to boot CS8 instances using BIOS or keep the PC machine type architecture, you will need to create a new image in your OpenStack project with the following properties:
hw_firmware_type='bios'
hw_machine_type='pc'
architecture='x86_64'
First download the image file:
$ openstack image save --file MY_IMAGE_FILE IMAGE_NAME
Then upload a new image based in the previous downloaded file and with required properties:
$ openstack image create --disk-format qcow2 --container-format bare --file MY_IMAGE_FILE --property hw_firmware_type='bios' --property hw_machine_type='pc' --property architecture='x86_64' <MY_IMAGE_NAME>