Ubuntu – Custom install onto UEFI-only machine

bootuefi

I am trying to install Ubuntu 14.04 via USB onto a Dell 7060, which only allows EFI boot when booting from HD. I am passing -isohybrid-mbr to xorriso CLARIFYING EDIT: and installing from legacy-mode, and things seem to install ok, but after removing the USB and rebooting, I get the error, "No bootable devices found." My current xorriso arguments are:

Source: http://askubuntu.com/questions/625286/how-to-create-uefi-bootable-iso

remaster_iso() {

    cd "${BASEDIR}/extract-cd"

    sudo xorriso -as mkisofs \
                 -iso-level 3 \
                 -isohybrid-mbr /usr/lib/syslinux/isohdpfx.bin \
                 -c isolinux/boot.cat \
                 -b isolinux/isolinux.bin \
                 -no-emul-boot \
                 -boot-load-size 4 \
                 -boot-info-table \
                 -eltorito-alt-boot \
                 -e boot/grub/efi.img \
                 -no-emul-boot \
                 -isohybrid-gpt-basdat \
                 -D -r -J -l -V "${ISO_LABEL}" \
                 -o ../staging/"$ISO_COMMON_NAME-$ISO_VERSION-$ISO_BUILDNUM.iso" .

Any ideas how to troubleshoot this?

EDIT: One thing which helped was figuring out which cfg file was getting called. In legacy boot mode, we were using an edited version of txt.cfg. But in EFI mode, the menu appearing was boot/grub/grub.cfg, which seems to be called by the boot/grub/efi.img we are passing in the command above. Editing the boot.cfg file to include an option which uses our preseed allows the installation to proceed mostly as planned.

Best Answer

xorriso turned out to be a bad guess. My guess which seemed to work was to install using EFI. Installing in legacy boot mode for the install USB resulted in an HD without an EFIboot partition. The problem was, I could only see my custom install menu when booting from legacy mode.

So, I needed a way to do an EFI install using my preseed file. I looked through the grub files on the USB installer and compared them to the GRUB menu I was seeing in EFI boot, and found that the boot/grub/grub.cfg file matched. So I added the following entry:

menuentry "Install My Custom Thingy" {
    set gfxpayload=keep
    linux   /install/vmlinuz  file=/cdrom/preseed/my_custom.seed quiet --
    initrd  /install/initrd.gz
}

This got everything working.