summary refs log tree commit diff
diff options
context:
space:
mode:
authorMathieu Othacehe <m.othacehe@gmail.com>2020-05-20 16:09:53 +0200
committerMathieu Othacehe <othacehe@gnu.org>2020-05-26 09:57:06 +0200
commit1b4fa7851b39f087a6433e8b5e22c479ca1da289 (patch)
treebdc6d4e96df8a0d7598f023f8dbf2eb32ffb1479
parentedb0366c16fee4767a1d007b6c38f11080910b50 (diff)
downloadguix-1b4fa7851b39f087a6433e8b5e22c479ca1da289.tar.gz
image: Add partition offset support.
* gnu/image.scm (partition-offset): New procedure,
(<partition>)[offset]: new field.
* gnu/system/image.scm (system-disk-image): Apply the partition offset.
-rw-r--r--gnu/image.scm2
-rw-r--r--gnu/system/image.scm10
2 files changed, 10 insertions, 2 deletions
diff --git a/gnu/image.scm b/gnu/image.scm
index b05fc69dc5..3a02692950 100644
--- a/gnu/image.scm
+++ b/gnu/image.scm
@@ -22,6 +22,7 @@
             partition?
             partition-device
             partition-size
+            partition-offset
             partition-file-system
             partition-label
             partition-uuid
@@ -47,6 +48,7 @@
   partition?
   (device      partition-device (default #f))
   (size        partition-size)
+  (offset      partition-offset (default #f))
   (file-system partition-file-system (default "ext4"))
   (label       partition-label (default #f))
   (uuid        partition-uuid (default #f))
diff --git a/gnu/system/image.scm b/gnu/system/image.scm
index 571b7af5f3..adc2b3c221 100644
--- a/gnu/system/image.scm
+++ b/gnu/system/image.scm
@@ -243,11 +243,17 @@ used in the image."
       ;; Return the genimage partition configuration for PARTITION.
       (let ((label (partition-label partition))
             (dos-type (partition->dos-type partition))
-            (image (partition-image partition)))
+            (image (partition-image partition))
+            (offset (partition-offset partition)))
         #~(format #f "~/partition ~a {
                                       ~/~/partition-type = ~a
                                       ~/~/image = \"~a\"
-                                      ~/}"  #$label #$dos-type #$image)))
+                                      ~/~/offset = \"~a\"
+                                      ~/}"
+                  #$label
+                  #$dos-type
+                  #$image
+                  #$(or offset 0))))
 
     (let* ((format (image-format image))
            (image-type (format->image-type format))