I'm just looking at some clarification about things since my interpretation of things isnt correct in terms of using UEFI in creating virtual machines. I'm using a zfs pool for my VM data.
As I understand with VM creation I create the VM using BIOS OMVF (UEFI) and then either manually add or an Efi Disk gets added. I additionally add another Hard disk type SCSI using the local zfs pool as storage. Correct my understanding however I believe this added hard disk is really just a zvol block device.
I boot the VM with my ISO installation media on the CD-ROM drive. I'm specifically installing arch linux however I believe this could be applicable to about any linux distribution. After being presented a login shell, the installation steps usually include partitioning of the drive. In a traditional setup without any hypervisor or VM, I would traditionally create three partitions: /boot (partition type EFI formatted as vfat), /swap (partition type swap, initialized with mkswp), / (paritition type Linx, formatted as ext4) and label them for example as /dev/sda1, /dev/sda2, /dev/sda3. Usually on the efi partition I'm going to install a boot loader -- like systemd-boot or grub.
My understanding however a little flawed when it comes to working with proxmox in terms of the "added" EFI disk. Traditionally I wouldn't have a EFI disk, just a EFI partition located on the same disc as the root filesystem. In the case of arch linux EFI is usually mounted at /boot/EFI.
Going through the manual installation process, this EFI disk isn't shown with lsblk, only the Hard disk. I don't understand the purpose of the EFI disk as it's not mountable and I don't think I can access during the arch installation process. From looking at documentation it appears this EFI disk holds the EFIVARS -- which among them are boot order and what not). What I don't understand is usually these EFIVARS are located within /sys/firmware/efi/vars however this directory seems to be located on the root partition and not the EFI disk. A utility known as efibootmgr you can set boot order and other varaibles. However if using efibootmgr, I'm guessing you're actually creating a EFI stub directly that gets written directly to the motherboard firmware that contains the kernel paramters within the EFI boot entry. One of the proposed benefits of this is you don't actually need a boot loader (such as grub or systemd-boot) in using EFI stub directly. I'm aware you could use efibootmgr on the command line or use the motherboard firmware GUI as documented here: https://pve.proxmox.com/wiki/OVMF/UEFI_Boot_Entries.
So after all this conjecture and reading, when installing arch via the manual method -- do I need to install a bootloader such as systemd-boot or grub?
In one example using a Arch cloudimage (https://gitlab.archlinux.org/archlinux/arch-boxes/-/packages/1636) which boots using SeaBIOS just great, I added an EFI boot partition to the image, Booted into the OMVF GUI, disabled Secure boot, and then manually added an entry /boot/EFI/BOOT/BOOTx64.EFI, reset, but I kept getting kicked back to the OMVF GUI -- it wasn't like it was taking my manual entry.
Any further explantion would be great. Thanks.
As I understand with VM creation I create the VM using BIOS OMVF (UEFI) and then either manually add or an Efi Disk gets added. I additionally add another Hard disk type SCSI using the local zfs pool as storage. Correct my understanding however I believe this added hard disk is really just a zvol block device.
I boot the VM with my ISO installation media on the CD-ROM drive. I'm specifically installing arch linux however I believe this could be applicable to about any linux distribution. After being presented a login shell, the installation steps usually include partitioning of the drive. In a traditional setup without any hypervisor or VM, I would traditionally create three partitions: /boot (partition type EFI formatted as vfat), /swap (partition type swap, initialized with mkswp), / (paritition type Linx, formatted as ext4) and label them for example as /dev/sda1, /dev/sda2, /dev/sda3. Usually on the efi partition I'm going to install a boot loader -- like systemd-boot or grub.
My understanding however a little flawed when it comes to working with proxmox in terms of the "added" EFI disk. Traditionally I wouldn't have a EFI disk, just a EFI partition located on the same disc as the root filesystem. In the case of arch linux EFI is usually mounted at /boot/EFI.
Going through the manual installation process, this EFI disk isn't shown with lsblk, only the Hard disk. I don't understand the purpose of the EFI disk as it's not mountable and I don't think I can access during the arch installation process. From looking at documentation it appears this EFI disk holds the EFIVARS -- which among them are boot order and what not). What I don't understand is usually these EFIVARS are located within /sys/firmware/efi/vars however this directory seems to be located on the root partition and not the EFI disk. A utility known as efibootmgr you can set boot order and other varaibles. However if using efibootmgr, I'm guessing you're actually creating a EFI stub directly that gets written directly to the motherboard firmware that contains the kernel paramters within the EFI boot entry. One of the proposed benefits of this is you don't actually need a boot loader (such as grub or systemd-boot) in using EFI stub directly. I'm aware you could use efibootmgr on the command line or use the motherboard firmware GUI as documented here: https://pve.proxmox.com/wiki/OVMF/UEFI_Boot_Entries.
So after all this conjecture and reading, when installing arch via the manual method -- do I need to install a bootloader such as systemd-boot or grub?
In one example using a Arch cloudimage (https://gitlab.archlinux.org/archlinux/arch-boxes/-/packages/1636) which boots using SeaBIOS just great, I added an EFI boot partition to the image, Booted into the OMVF GUI, disabled Secure boot, and then manually added an entry /boot/EFI/BOOT/BOOTx64.EFI, reset, but I kept getting kicked back to the OMVF GUI -- it wasn't like it was taking my manual entry.
Any further explantion would be great. Thanks.