I’m sure I’m missing something, but this is what I had to do to get it bootable.
* UEFI boot cannot handle front-end metadata, so mdadm meta 0.9 or 1.0 is required.
* grub-install cannot handle mirrored EFI boot partition.
### Make the boot RAID
Make 100-1000M EFI Boot filesystem on each NVMe disk
Change these to RAID
Make RAID 1 out of the devices
Set the new md0 as EFI boot
This will mount up as /boot/efi when the system is online.
### Manually change it to a bootable metadata (0.9 or 1.0):
Alt-F2
mdadm –stop /dev/md0
mdadm –zero-superblock /dev/nvme?n1p1
mdadm –create /dev/md0 -l 1 -n 2 –metadata=1.0 /dev/nvme?n1p1
mkfs.fat /md0
### Make the rest of your disk layout
Alt-F1
Make your other RAIDs, VGs, LVs, partitions, etc. I did all the rest as rootvg, and vaguely AIX-like LV naming.
You can skip /boot because efi grub can see LVM and partitions and mdraid.
Finish all the rest of the installer.
Grub will fail because mirrored
### Make the NVME bootable
Alt-F2
chroot /target
mount -t devtmpfs devtmpfs /dev
grub-install /dev/md0
efibootmgr -c -g -d /dev/nvme0n1 -p 1 -L “Ubuntu NVMe 0” -l ‘\EFI\ubuntu\grubx64.efi’
efibootmgr -c -g -d /dev/nvme1n1 -p 1 -L “Ubuntu NVMe 1” -l ‘\EFI\ubuntu\grubx64.efi’
update-grub
grub-install –force /dev/md0
This will give you errors about efibootmgr
### Finish / exit the installer
Alt-F1
do all the rest
It will reboot to the grub> shell
ls
pick where your root or boot filesystem is
set root=(lvm/rootvg-hd4–root)
ls (lvm/rootvg-hd4–root)/boot
set your boot parameters
linux /boot/vmlinuz-5.4.0-72-generic root=/dev/rootvg/hd4-root
initrd /boot/initrd.img-5.4.0-72-generic
boot
### Once you are at the login prompt, get in as root.
update-grub
grub-install
It still throws errors about efibootmgr
reboot
### It should come up normally