From 65339286fe9d0c4758c04cfcaa177334577741cc Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Sun, 25 Apr 2021 19:06:31 +0200 Subject: [PATCH] wip esp --- gnu/installer/newt/partition.scm | 16 +++++++----- gnu/installer/parted.scm | 45 ++++++++++++++------------------ 2 files changed, 28 insertions(+), 33 deletions(-) diff --git a/gnu/installer/newt/partition.scm b/gnu/installer/newt/partition.scm index 81cf68d782..2dcb10bbdb 100644 --- a/gnu/installer/newt/partition.scm +++ b/gnu/installer/newt/partition.scm @@ -95,14 +95,16 @@ DEVICES list." (define (run-label-page button-text button-callback) "Run a page asking the user to select a partition table label." - (run-listbox-selection-page - #:info-text (G_ "Select a new partition table type. \ + (if (efi-installation?) + "gpt" + (run-listbox-selection-page + #:info-text (G_ "Select a new partition table type. \ Be careful, all data on the disk will be lost.") - #:title (G_ "Partition table") - #:listbox-items '("msdos" "gpt") - #:listbox-item->text identity - #:button-text button-text - #:button-callback-procedure button-callback)) + #:title (G_ "Partition table") + #:listbox-items '("msdos" "gpt") + #:listbox-item->text identity + #:button-text button-text + #:button-callback-procedure button-callback))) (define (run-type-page partition) "Run a page asking the user to select a partition type." diff --git a/gnu/installer/parted.scm b/gnu/installer/parted.scm index 9ef263d1f9..6d6e500d71 100644 --- a/gnu/installer/parted.scm +++ b/gnu/installer/parted.scm @@ -70,6 +70,7 @@ small-freespace-partition? esp-partition? boot-partition? + efi-installation? default-esp-mount-point with-delay-device-in-use? @@ -193,12 +194,8 @@ inferior to MAX-SIZE, #f otherwise." (define (esp-partition? partition) "Return #t if partition has the ESP flag, return #f otherwise." (let* ((disk (partition-disk partition)) - (disk-type (disk-disk-type disk)) - (has-extended? (disk-type-check-feature - disk-type - DISK-TYPE-FEATURE-EXTENDED))) + (disk-type (disk-disk-type disk))) (and (data-partition? partition) - (not has-extended?) (partition-is-flag-available? partition PARTITION-FLAG-ESP) (partition-get-flag partition PARTITION-FLAG-ESP)))) @@ -918,30 +915,26 @@ exists." ;; disk space. Otherwise, set the swap size to 5% of the disk space. (swap-size (min default-swap-size five-percent-disk))) - (if has-extended? - ;; msdos - remove everything. - (disk-remove-all-partitions disk) - ;; gpt - remove everything but esp if it exists. - (for-each - (lambda (partition) - (and (data-partition? partition) - (disk-remove-partition* disk partition))) - non-boot-partitions)) + ;; Remove everything but esp if it exists. + (for-each + (lambda (partition) + (and (data-partition? partition) + (disk-remove-partition* disk partition))) + non-boot-partitions) (let* ((start-partition - (and (not has-extended?) - (if (efi-installation?) - (and (not esp-partition) - (user-partition - (fs-type 'fat32) - (esp? #t) - (size new-esp-size) - (mount-point (default-esp-mount-point)))) + (if (efi-installation?) + (and (not esp-partition) (user-partition - (fs-type 'ext4) - (bootable? #t) - (bios-grub? #t) - (size bios-grub-size))))) + (fs-type 'fat32) + (esp? #t) + (size new-esp-size) + (mount-point (default-esp-mount-point)))) + (user-partition + (fs-type 'ext4) + (bootable? #t) + (bios-grub? #t) + (size bios-grub-size)))) (new-partitions (cond ((or (eq? scheme 'entire-root) -- 2.31.1