all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Josselin Poiret via Bug reports for GNU Guix <bug-guix@gnu.org>
To: Mathieu Othacehe <othacehe@gnu.org>, Dan Finlay <dan@danfinlay.com>
Cc: Josselin Poiret <dev@jpoiret.xyz>, 57983@debbugs.gnu.org
Subject: bug#57983: [PATCH 3/4] installer: Ensure luks devices are open when mounting partitions.
Date: Thu, 22 Sep 2022 15:12:46 +0200	[thread overview]
Message-ID: <c501c5e4e558e8a1838e2591e7758319eaa1236f.1663852053.git.dev@jpoiret.xyz> (raw)
In-Reply-To: <cover.1663852053.git.dev@jpoiret.xyz>

* gnu/installer/parted.scm (luks-ensure-open): New procedure.
(unmount-user-partitions): Ensure luks devices are open.
---
 gnu/installer/parted.scm | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/gnu/installer/parted.scm b/gnu/installer/parted.scm
index 51ba2bebd6..fcc936a391 100644
--- a/gnu/installer/parted.scm
+++ b/gnu/installer/parted.scm
@@ -1194,6 +1194,20 @@ (define (luks-format-and-open user-partition)
        ((run-command-in-installer) "cryptsetup" "open" "--type" "luks"
         "--key-file" key-file file-name label)))))
 
+(define (luks-ensure-open user-partition)
+  "Ensure partition pointed by USER-PARTITION is opened."
+  (unless (file-exists? (user-partition-upper-file-name user-partition))
+    (let* ((file-name (user-partition-file-name user-partition))
+           (label (user-partition-crypt-label user-partition))
+           (password (secret-content (user-partition-crypt-password user-partition))))
+      (call-with-luks-key-file
+       password
+       (lambda (key-file)
+         (installer-log-line "opening LUKS entry ~s at ~s"
+                             label file-name)
+         ((run-command-in-installer) "cryptsetup" "open" "--type" "luks"
+          "--key-file" key-file file-name label))))))
+
 (define (luks-close user-partition)
   "Close the encrypted partition pointed by USER-PARTITION."
   (let ((label (user-partition-crypt-label user-partition)))
@@ -1278,6 +1292,8 @@ (define (mount-user-partitions user-partitions)
                         (user-fs-type->mount-type fs-type))
                        (file-name
                         (user-partition-upper-file-name user-partition)))
+                  (when crypt-label
+                    (luks-ensure-open user-partition))
                   (mkdir-p target)
                   (installer-log-line "mounting ~s on ~s" file-name target)
                   (mount file-name target mount-type)))
-- 
2.37.2





  parent reply	other threads:[~2022-09-22 13:53 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-21 15:36 bug#57983: Error installing on a Framework Laptop Dan Finlay
2022-09-22  6:50 ` Mathieu Othacehe
2022-09-22 13:12   ` bug#57983: [PATCH 0/4] Fix luks devices not being re-opened when restarting the final step Josselin Poiret via Bug reports for GNU Guix
2022-09-22 13:12     ` bug#57983: [PATCH 1/4] installer: Move <secret> to utils and use it for crypt passwords Josselin Poiret via Bug reports for GNU Guix
2022-09-22 13:12     ` bug#57983: [PATCH 2/4] installer: Return partitions with crypt password as step result Josselin Poiret via Bug reports for GNU Guix
2022-09-22 13:12     ` Josselin Poiret via Bug reports for GNU Guix [this message]
2022-09-22 13:12     ` bug#57983: [PATCH 4/4] installer: Exit console-services page with abort-to-prompt Josselin Poiret via Bug reports for GNU Guix
2022-09-22 14:34     ` bug#57983: Error installing on a Framework Laptop Mathieu Othacehe
2022-09-22 17:17   ` Dan Finlay

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c501c5e4e558e8a1838e2591e7758319eaa1236f.1663852053.git.dev@jpoiret.xyz \
    --to=bug-guix@gnu.org \
    --cc=57983@debbugs.gnu.org \
    --cc=dan@danfinlay.com \
    --cc=dev@jpoiret.xyz \
    --cc=othacehe@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.