~ruther/guix-local

209204e23b39af09e0ea92540b6fa00a60e6a0ae — Sergey Trofimov 3 years ago 4722496
image: Prefer gpt partition table for efi images

* gnu/system/image.scm (efi-disk-image): Use gpt partition-table-type.
(efi32-disk-image): Use gpt partition-table-type.
(qcow2-image-type): Use mbr partition-table-type explicitly.
* gnu/tests/image.scm: Assert partition table type of efi-disk-image.

Signed-off-by: Josselin Poiret <dev@jpoiret.xyz>
2 files changed, 21 insertions(+), 5 deletions(-)

M gnu/system/image.scm
M gnu/tests/image.scm
M gnu/system/image.scm => gnu/system/image.scm +3 -0
@@ 148,11 148,13 @@ parent image record."
(define efi-disk-image
  (image-without-os
   (format 'disk-image)
   (partition-table-type 'gpt)
   (partitions (list esp-partition root-partition))))

(define efi32-disk-image
  (image-without-os
   (format 'disk-image)
   (partition-table-type 'gpt)
   (partitions (list esp32-partition root-partition))))

(define iso9660-image


@@ 215,6 217,7 @@ set to the given OS."
   (constructor (cut image-with-os
                 (image
                  (inherit efi-disk-image)
                  (partition-table-type 'mbr)
                  (name 'image.qcow2)
                  (format 'compressed-qcow2))
                 <>))))

M gnu/tests/image.scm => gnu/tests/image.scm +18 -5
@@ 20,7 20,7 @@
  #:use-module (gnu)
  #:use-module (gnu image)
  #:use-module (gnu tests)
  #:autoload   (gnu system image) (system-image root-offset)
  #:autoload   (gnu system image) (system-image root-offset image-with-os efi-disk-image)
  #:use-module (gnu system uuid)
  #:use-module (gnu system vm)
  #:use-module (gnu packages guile)


@@ 153,6 153,10 @@
      (flags '(boot))
      (initializer dummy-initializer))))))

;; A efi disk image with default partitions
(define i6
  (image-with-os efi-disk-image %simple-efi-os))

(define (run-images-test)
  (define test
    (with-imported-modules '((srfi srfi-64)


@@ 202,10 206,10 @@
              (disk-get-primary-partition-count (disk-new d2-device)))

            (test-equal "test"
                (let* ((disk (disk-new d2-device))
                       (partitions (disk-partitions disk))
                       (boot-partition (find normal-partition? partitions)))
                  (partition-get-name boot-partition)))
              (let* ((disk (disk-new d2-device))
                     (partitions (disk-partitions disk))
                     (boot-partition (find normal-partition? partitions)))
                (partition-get-name boot-partition)))

            ;; Image i3.
            (define i3-image


@@ 259,6 263,15 @@
                   (filter data-partition?
                           (disk-partitions (disk-new d5-device)))))

            ;; Image i6.
            (define i6-image
              #$(system-image i6))
            (define d6-device
              (get-device i6-image))

            (test-equal "gpt"
              (disk-type-name (disk-probe d6-device)))

            (test-end)))))

  (gexp->derivation "images-test" test))