Subject: bug#26815: [PATCH 3/3] vm: Support EFI boot in base image.

From: Danny Milosavljevic <[email-masked]>
Date: Sun, 7 May 2017 17:18:14 +0200

Hi Marius,

> +      (system* "grub-mkstandalone" "-O" "x86_64-efi" "-o"
> +               (string-append efi-directory "/EFI/BOOT/BOOTX64.EFI")
> +               ;; Embed the contents of grubdisk.cfg.
> +               (string-append "boot/grub/grub.cfg=" target
> +                              "/tmp/grubdisk.cfg"))

Check return value of system* ?

>                    (partitions (list (partition
>                                       (size #$(- disk-image-size
> -                                                (* 10 (expt 2 20))))
> +                                                (* 50 (expt 2 20))))

<https://wiki.archlinux.org/index.php/EFI_System_Partition> says:

>According to a Microsoft note[2], the minimum size for the EFI System Partition (ESP) would be 100 MB, though this is not stated in the UEFI Specification. Note that for Advanced Format 4K Native drives (4-KB-per-sector) drives, the size is at least 256 MiB, because it is the minimum partition size of FAT32 drives (calculated as sector size (4KB) x 65527 = 256 MiB), due to a limitation of the FAT32 file format. 

Is this relevant for us?

Also, <https://gist.github.com/Apsu/4108795> says that F32 is not required for most UEFI firmwares. FAT12, FAT32 usually work.  But better be safe than sorry, I guess.

> +                                     (size (* 40 (expt 2 20)))
> +                                     (label "gnu-esp")
> +                                     (file-system "vfat")

Is it really vfat with long file names and everything? Or only FAT32 (with short file names)?

I ask because a lot of UEFT file names look as if they are for FAT32 with their short all-uppercase names.