Thank you for the reply. I had read a number of articles on this which put me off trying that option and implied rather clumsy solutions which was why I raised the request. However, I have now tried it and barring one problem it works and I can boot off either disk. The problem occurred when I ran grub-install. It failed at the efibootmgr stage. Here is the end of the log when installing to a non-raid ESP. grub-install: info: copying `/boot/grub/x86_64-efi/core.efi' -> `/boot/efi/EFI/ubuntu/grubx64.efi'. grub-install: info: Registering with EFI: distributor = `ubuntu', path = `\EFI\ubuntu\grubx64.efi', ESP at hostdisk//dev/sda,gpt1. grub-install: info: executing efibootmgr --version /dev/null. grub-install: info: executing modprobe -q efivars. grub-install: info: executing efibootmgr -b 0000 -B. BootCurrent: 0000 Timeout: 1 seconds BootOrder: 0005,0006,0002,0003,0004 Boot0002* Hard Drive Boot0003* CD/DVD Drive Boot0004* Removable Drive Boot0005* UEFI: SanDisk Cruzer Edge 1.26 Boot0006* UEFI: ST31500341AS grub-install: info: executing efibootmgr -c -d /dev/sda -p 1 -w -L ubuntu -l \EFI\ubuntu\grubx64.efi. BootCurrent: 0000 Timeout: 1 seconds BootOrder: 0000,0005,0006,0002,0003,0004 Boot0002* Hard Drive Boot0003* CD/DVD Drive Boot0004* Removable Drive Boot0005* UEFI: SanDisk Cruzer Edge 1.26 Boot0006* UEFI: ST31500341AS Boot0000* ubuntu Installation finished. No error reported. And here is the log for a raid1 ESP grub-install: info: copying `/boot/grub/x86_64-efi/core.efi' -> `/boot/efi/EFI/ubuntu/grubx64.efi'. grub-install: info: Registering with EFI: distributor = `ubuntu', path = `\EFI\ubuntu\grubx64.efi', ESP at mduuid/f1f50fa9a6d7d446dddc9c93a8fc41a3. grub-install: info: executing efibootmgr --version /dev/null. grub-install: info: executing modprobe -q efivars. grub-install: info: executing efibootmgr -c -d. efibootmgr: option requires an argument -- 'd' efibootmgr version 0.11.0 usage: efibootmgr [options] -a | --active sets bootnum active -A | --inactive sets bootnum inactive -b | --bootnum XXXX modify BootXXXX (hex) -B | --delete-bootnum delete bootnum (hex) -c | --create create new variable bootnum and add to bootorder -D | --remove-dups remove duplicate values from BootOrder -d | --disk disk (defaults to /dev/sda) containing loader -e | --edd [1|3|-1] force EDD 1.0 or 3.0 creation variables, or guess -E | --device num EDD 1.0 device number (defaults to 0x80) -g | --gpt force disk with invalid PMBR to be treated as GPT -H | --acpi_hid XXXX set the ACPI HID (used with -i) -i | --iface name create a netboot entry for the named interface -l | --loader name (defaults to \EFI\redhat\grub.efi) -L | --label label Boot manager display label (defaults to "Linux") -n | --bootnext XXXX set BootNext to XXXX (hex) -N | --delete-bootnext delete BootNext -o | --bootorder XXXX,YYYY,ZZZZ,... explicitly set BootOrder (hex) -O | --delete-bootorder delete BootOrder -p | --part part (defaults to 1) containing loader -q | --quiet be quiet -t | --timeout seconds set boot manager timeout waiting for user input. -T | --delete-timeout delete Timeout. -u | --unicode | --UCS-2 pass extra args as UCS-2 (default is ASCII) -U | --acpi_uid XXXX set the ACPI UID (used with -i) -v | --verbose print additional information -V | --version return version and exit -w | --write-signature write unique sig to MBR if needed -@ | --append-binary-args file append extra args from file (use "-" for stdin) -h | --help show help/usage Installation finished. No error reported. It had installed grubx64.efi to the ESP but not set up the efibootmgr entries. Once I set those up manually everything worked OK. I assume I should raise this as a bug and will do so shortly unless anyone thinks otherwise.