diff options
Diffstat (limited to 'gnu/system/image.scm')
-rw-r--r-- | gnu/system/image.scm | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/gnu/system/image.scm b/gnu/system/image.scm index 5b8da2f896..a990c4f861 100644 --- a/gnu/system/image.scm +++ b/gnu/system/image.scm @@ -77,6 +77,7 @@ root-partition mbr-disk-image + mbr-hybrid-disk-image efi-disk-image iso9660-image docker-image @@ -86,6 +87,7 @@ image-with-os mbr-raw-image-type + mbr-hybrid-raw-image-type efi-raw-image-type efi32-raw-image-type qcow2-image-type @@ -156,6 +158,13 @@ parent image record." (inherit root-partition) (offset root-offset)))))) +(define mbr-hybrid-disk-image + (image-without-os + (format 'disk-image) + (partition-table-type 'mbr) + (partitions + (list esp-partition root-partition)))) + (define efi-disk-image (image-without-os (format 'disk-image) @@ -217,6 +226,11 @@ set to the given OS." (name 'mbr-raw) (constructor (cut image-with-os mbr-disk-image <>)))) +(define mbr-hybrid-raw-image-type + (image-type + (name 'mbr-hybrid-raw) + (constructor (cut image-with-os mbr-hybrid-disk-image <>)))) + (define efi-raw-image-type (image-type (name 'efi-raw) @@ -232,7 +246,7 @@ set to the given OS." (name 'qcow2) (constructor (cut image-with-os (image - (inherit mbr-disk-image) + (inherit mbr-hybrid-disk-image) (name 'image.qcow2) (format 'compressed-qcow2)) <>)))) @@ -516,6 +530,13 @@ used in the image." (image-partition-table-type image))) (else ""))) + (when (and (gpt-image? image) + (not + (memq (bootloader-name bootloader) '(grub-efi grub-efi32)))) + (raise + (formatted-message + (G_ "EFI bootloader required with GPT partitioning")))) + (let* ((format (image-format image)) (image-type (format->image-type format)) (image-type-options (genimage-type-options image-type image)) |