Subject: Re: bug#35783: Guile-Parted crashes the installer on i686-linux

From: Ludovic Courtès <[email-masked]>
Date: Sat, 18 May 2019 13:50:33 +0200

Hi Mathieu,

Mathieu Othacehe <[email-masked]> skribis:

> With this almost indentical patch, disk partitioning seems fine with and
> without existing esp partition on x64. I'll try to run more tests.

I was fiddling with this and had arrived to a similar patch, we’re in
perfect symbiosis.  :-)

I’ve done some testing both in an EFI and a non-EFI setup with QEMU, and
it seems to work well; I’ll do some more testing as well.

>>>From 1e0734c4829725cdee6cab3cb05332ffd2a36a57 Mon Sep 17 00:00:00 2001
> From: Mathieu Othacehe <[email-masked]>
> Date: Sat, 18 May 2019 11:25:09 +0200
> Subject: [PATCH] draft: Fix esp user-partition creation.

[...]

> --- a/gnu/installer/parted.scm
> +++ b/gnu/installer/parted.scm
> @@ -1001,10 +1001,14 @@ swap partition, a root partition and a home partition."
>                      (mount-point "/home")))))))
>             (new-partitions* (force-user-partitions-formatting
>                               new-partitions)))
> -      (create-adjacent-partitions! disk
> -                                   new-partitions*
> -                                   #:last-partition-end
> -                                   (or end-esp-partition 0)))))
> +      (append
> +       (if esp-partition
> +           (list (partition->user-partition esp-partition))
> +           '())
> +       (create-adjacent-partitions! disk
> +                                    new-partitions*
> +                                    #:last-partition-end
> +                                    (or end-esp-partition 0))))))

Perhaps add something like this to the docstring of ‘auto-partition!’:

  Return the complete list of partitions on DISK, including the ESP when it
  exists.

Longer-term it would be good to audit Guile-Parted: it probably
shouldn’t be possible for Guile-Parted to refer to “defunct” Parted
objects.

Thank you for the quick response!

Ludo’.