diff options
author | Mathieu Othacehe <othacehe@gnu.org> | 2020-08-06 11:24:58 +0200 |
---|---|---|
committer | Mathieu Othacehe <othacehe@gnu.org> | 2020-08-06 11:31:38 +0200 |
commit | 5697a524a75efae6144fcfaad730115910a34171 (patch) | |
tree | c6776a019a2cb91ef60813e680a8cba734243b07 | |
parent | 738c0d96215325419872dea92042c9106bddb03a (diff) | |
download | guix-5697a524a75efae6144fcfaad730115910a34171.tar guix-5697a524a75efae6144fcfaad730115910a34171.tar.gz |
installer: Remove logical devices.
If a device contains an active logical volume, BLKRRPART will report that the
device is busy. This will cause this device to be filtered by
"non-install-devices" procedure, which is not desired.
Make sure to deactivate all logical volumes before device probing.
Fixes <https://issues.guix.gnu.org/42683>.
* gnu/installer.scm (installer-program): Add lvm2-static to the inputs.
* gnu/installer/parted.scm (remove-logical-devices): New procedure,
(init-parted): call it.
-rw-r--r-- | gnu/installer.scm | 1 | ||||
-rw-r--r-- | gnu/installer/parted.scm | 8 |
2 files changed, 9 insertions, 0 deletions
diff --git a/gnu/installer.scm b/gnu/installer.scm index cb2f5ad2ca..5c3192d7a6 100644 --- a/gnu/installer.scm +++ b/gnu/installer.scm @@ -318,6 +318,7 @@ selected keymap." cryptsetup dosfstools ;mkfs.fat e2fsprogs ;mkfs.ext4 + lvm2-static ;dmsetup btrfs-progs jfsutils ;jfs_mkfs ntfs-3g ;mkfs.ntfs diff --git a/gnu/installer/parted.scm b/gnu/installer/parted.scm index 47e0a9e78d..ff5f6afd19 100644 --- a/gnu/installer/parted.scm +++ b/gnu/installer/parted.scm @@ -330,6 +330,11 @@ fail. See rereadpt function in wipefs.c of util-linux for an explanation." (device-sync device) (device-close device)) +(define (remove-logical-devices) + "Remove all active logical devices." + (with-null-output-ports + (invoke "dmsetup" "remove_all"))) + (define (non-install-devices) "Return all the available devices, except the busy one, allegedly the install device. DEVICE-IS-BUSY? is a parted call, checking if the device is @@ -1340,6 +1345,9 @@ USER-PARTITIONS, or return nothing." (define (init-parted) "Initialize libparted support." (probe-all-devices!) + ;; Remove all logical devices, otherwise "device-is-busy?" will report true + ;; on all devices containaing active logical volumes. + (remove-logical-devices) (exception-set-handler (lambda (exception) EXCEPTION-OPTION-UNHANDLED))) |