Subject: Re: [bug#41011] [PATCH] gnu: grub: Support for network boot via tftp/nfs.

From: Mathieu Othacehe <[email-masked]>
Date: Sat, 23 May 2020 10:10:16 +0200

Hey Stefan,

Thanks for rebasing!

> +    #~(lambda (bootloader target mount-point)
> +        "Install GRUB as e.g. \"bootx64.efi\" or \"bootarm64.efi\" \"into
> +EFI-SUBDIR, which is usually \"efi/boot\" or \"efi/Guix\" below the directory

Is that TARGET or EFI-SUBDIR?

> +TARGET for the system whose root is mounted at MOUNT-POINT."
> +        (let* ((mount-point-list (delete "" (string-split mount-point #\/)))
> +               (target-list (delete "" (string-split target #\/)))
> +               (net-dir
> +                (string-append "/" (string-join (append
> +                                                 mount-point-list
> +                                                 target-list)
> +                                                "/")))

I think you can use something like "(in-vicinity mount-point target)"
to do the same job.

> +          ;; Tell 'grub-install' that there might be a LUKS-encrypted /boot or
> +          ;; root partition.
> +          (setenv "GRUB_ENABLE_CRYPTODISK" "y")
> +          (invoke/quiet (string-append bootloader "/bin/grub-mknetdir")
> +                        (string-append "--net-directory=" net-dir)
> +                        (string-append "--subdir=" subdir))
> +          (false-if-exception
> +            (delete-file efi-bootloader-link))
> +          (symlink #$efi-bootloader
> +                   efi-bootloader-link)
> +          (false-if-exception
> +            (delete-file store-link))
> +          (symlink store
> +                   store-link)))))

What's the purpose of those two symlinks, isn't grub-mknetdir taking
care of all this?

Creating a system test for this may be a bit difficult, but if you could
add a section in the documentation describing how to setup a
'grub-efi-net-bootloader, that would be great!

Thanks,

Mathieu