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.master
parent
39250fc622
commit
cd55aa9801
|
@ -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
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
;;; Copyright © 2022 Pavel Shlyak <p.shlyak@pantherx.org>
|
||||
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
||||
;;; Copyright © 2022 Alex Griffin <a@ajgrf.com>
|
||||
;;; Copyright © 2023 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -390,6 +391,9 @@ used in the image."
|
|||
((or (string=? file-system "vfat")
|
||||
(string=? file-system "fat16")
|
||||
(string=? file-system "fat32")) "F")
|
||||
((and (string=? file-system "unformatted")
|
||||
(partition-uuid partition))
|
||||
(uuid->string (partition-uuid partition)))
|
||||
(else
|
||||
(raise (condition
|
||||
(&message
|
||||
|
|
Reference in New Issue