aboutsummaryrefslogtreecommitdiff
path: root/gnu/build
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2023-05-28 11:03:17 +0300
committerEfraim Flashner <efraim@flashner.co.il>2023-06-14 14:52:21 +0300
commitcd55aa98011c42b8e97561f4eea024be751bcceb (patch)
tree4ee8d7f5838205762843312d4fc4ce19c87eaa7f /gnu/build
parent39250fc6229d60b7ae397749caf1e4c99e49b419 (diff)
downloadguix-cd55aa98011c42b8e97561f4eea024be751bcceb.tar
guix-cd55aa98011c42b8e97561f4eea024be751bcceb.tar.gz
gnu: image: Add support for unformatted partitions.
* gnu/build/image.scm (make-unformatted-image): New procedure. (make-partition-image): Add support for unformatted partition. * gnu/system/image.scm (system-disk-image)[partition->gpt-type]: Add case for using unformatted partition uuid.
Diffstat (limited to 'gnu/build')
-rw-r--r--gnu/build/image.scm11
1 files changed, 11 insertions, 0 deletions
diff --git a/gnu/build/image.scm b/gnu/build/image.scm
index 65a0373980..49dc01c0d1 100644
--- a/gnu/build/image.scm
+++ b/gnu/build/image.scm
@@ -7,6 +7,7 @@
;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2022 Pavel Shlyak <p.shlyak@pantherx.org>
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
+;;; Copyright © 2023 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -122,6 +123,14 @@ turn doesn't take any constant overhead into account, force a 1-MiB minimum."
(string-append "::" file))))
(scandir root))))
+(define* (make-unformatted-image partition target)
+ "Make an unformatted partition of a certain size."
+ (let ((size (partition-size partition)))
+ ;; Create the file and then truncate it to the desired size.
+ (with-output-to-file target
+ (lambda _ (display "")))
+ (truncate-file target size)))
+
(define* (make-partition-image partition-sexp target root)
"Create and return the image of PARTITION-SEXP as TARGET. Use the given
ROOT directory to populate the image."
@@ -134,6 +143,8 @@ ROOT directory to populate the image."
(make-vfat-image partition target root 16))
((string=? type "fat32")
(make-vfat-image partition target root 32))
+ ((string=? type "unformatted")
+ (make-unformatted-image partition target))
(else
(raise (condition
(&message