[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#47889: [installer image] grub-install efi fails getting canonical pa
From: |
Mathieu Othacehe |
Subject: |
bug#47889: [installer image] grub-install efi fails getting canonical path to /boot/efi on dos-formatted disk |
Date: |
Sun, 25 Apr 2021 19:12:39 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) |
Hello Florian,
> Can you force GPT also in 2.? All disk partitions get removed anyway.
> Arch wiki says MSDOS layout does not work on all EFI systems
> <https://wiki.archlinux.org/index.php/EFI_system_partition#Create_the_partition>.
Well I'm not sure, if someone has an MSDOS partition table with an ESP
partition it wouldn't be a good idea to wipe it.
The attached patch forces GPT if there's no partition table, and will
preserve/create an ESP partition on an MSDOS/EFI setup. I'm testing it
on various machines, seems to work fine.
WDYT?
Thanks,
Mathieu
>From 65339286fe9d0c4758c04cfcaa177334577741cc Mon Sep 17 00:00:00 2001
From: Mathieu Othacehe <othacehe@gnu.org>
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
- bug#47889: [installer image] grub-install efi fails getting canonical path to /boot/efi on dos-formatted disk, (continued)
- bug#47889: [installer image] grub-install efi fails getting canonical path to /boot/efi on dos-formatted disk, Leo Famulari, 2021/04/19
- bug#47889: [installer image] grub-install efi fails getting canonical path to /boot/efi on dos-formatted disk, Ludovic Courtès, 2021/04/22
- bug#47889: [installer image] grub-install efi fails getting canonical path to /boot/efi on dos-formatted disk, pelzflorian (Florian Pelz), 2021/04/22
- bug#47889: [installer image] grub-install efi fails getting canonical path to /boot/efi on dos-formatted disk, Mathieu Othacehe, 2021/04/25
- bug#47889: [installer image] grub-install efi fails getting canonical path to /boot/efi on dos-formatted disk, pelzflorian (Florian Pelz), 2021/04/25
- bug#47889: [installer image] grub-install efi fails getting canonical path to /boot/efi on dos-formatted disk,
Mathieu Othacehe <=
- bug#47889: [installer image] grub-install efi fails getting canonical path to /boot/efi on dos-formatted disk, pelzflorian (Florian Pelz), 2021/04/26
- bug#47889: [installer image] grub-install efi fails getting canonical path to /boot/efi on dos-formatted disk, Ludovic Courtès, 2021/04/26
- bug#47889: [installer image] grub-install efi fails getting canonical path to /boot/efi on dos-formatted disk, Mathieu Othacehe, 2021/04/26
- bug#47889: [installer image] grub-install efi fails getting canonical path to /boot/efi on dos-formatted disk, Mathieu Othacehe, 2021/04/27
- bug#47889: [installer image] grub-install efi fails getting canonical path to /boot/efi on dos-formatted disk, Mathieu Othacehe, 2021/04/28
- bug#47889: [installer image] grub-install efi fails getting canonical path to /boot/efi on dos-formatted disk, Ludovic Courtès, 2021/04/29