@@ -40912,8 +40912,8 @@ Invoking guix system
@cindex image, creating disk images
The @code{image} command can produce various image types. The image
type can be selected using the @option{--image-type} option. It
-defaults to @code{mbr-raw}. When its value is @code{iso9660}, the
-@option{--label} option can be used to specify a volume ID with
+defaults to @code{mbr-hybrid-raw}. When its value is @code{iso9660},
+the @option{--label} option can be used to specify a volume ID with
@code{image}. By default, the root file system of a disk image is
mounted non-volatile; the @option{--volatile} option can be provided to
make it volatile instead. When using @code{image}, the bootloader
@@ -40931,8 +40931,8 @@ Invoking guix system
-bios $(guix build ovmf)/share/firmware/ovmf_x64.bin
@end example
-When using the @code{mbr-raw} image type, a raw disk image is produced;
-it can be copied as is to a USB stick, for instance. Assuming
+When using the @code{mbr-hybrid-raw} image type, a raw disk image is
+produced; it can be copied as is to a USB stick, for instance. Assuming
@code{/dev/sdc} is the device corresponding to a USB stick, one can copy
the image to it using the following command:
@@ -41069,7 +41069,7 @@ Invoking guix system
For the @code{image} action, create an image with given @var{type}.
When this option is omitted, @command{guix system} uses the
-@code{mbr-raw} image type.
+@code{mbr-hybrid-raw} image type.
@cindex ISO-9660 format
@cindex CD image format
@@ -45277,7 +45277,7 @@ System Images
The @command{guix system image} command is able to turn an operating
system definition into a bootable image. This command supports
-different image types, such as @code{mbr-raw}, @code{iso9660} and
+different image types, such as @code{mbr-hybrid-raw}, @code{iso9660} and
@code{docker}. Any modern @code{x86_64} machine will probably be able
to boot from an @code{iso9660} image. However, there are a few machines
out there that require specific image types. Those machines, in general
@@ -45541,8 +45541,24 @@ Instantiate an Image
system image)} module provides the following @code{image} definition
variables.
+@defvar mbr-disk-image
+An MBR disk-image composed of a single ROOT partition. The ROOT
+partition starts at a 1@tie{}MiB offset so that the bootloader can
+install itself in the post-MBR gap.
+@end defvar
+
+@defvar mbr-hybrid-disk-image
+An MBR disk-image composed of two partitions: a 64 bits ESP partition
+and a ROOT boot partition. The ESP partition starts at a 1@tie{}MiB
+offset so that a BIOS compatible bootloader can install itself in the
+post-MBR gap. The image can be used by @code{x86_64} and @code{i686}
+machines supporting only legacy BIOS booting. The ESP partition ensures
+that it can also be used by newer machines relying on UEFI booting,
+hence the @emph{hybrid} denomination.
+@end defvar
+
@defvar efi-disk-image
-A MBR disk-image composed of two partitions: a 64 bits ESP partition and
+A GPT disk-image composed of two partitions: a 64 bits ESP partition and
a ROOT boot partition. This image can be used on most @code{x86_64} and
@code{i686} machines, supporting BIOS or UEFI booting.
@end defvar
@@ -45633,6 +45649,10 @@ image-type Reference
Build an image based on the @code{mbr-disk-image} image.
@end defvar
+@defvar mbr-hybrid-raw-image-type
+Build an image based on the @code{mbr-hybrid-disk-image} image.
+@end defvar
+
@defvar efi-raw-image-type
Build an image based on the @code{efi-disk-image} image.
@end defvar
@@ -268,7 +268,7 @@ (define* (image-jobs store system
(if (member system %guix-system-supported-systems)
`(,(image->job store
(image
- (inherit efi-disk-image)
+ (inherit mbr-hybrid-disk-image)
(operating-system installation-os))
#:name "usb-image"
#:system system)
@@ -77,6 +77,7 @@ (define-module (gnu system image)
root-partition
mbr-disk-image
+ mbr-hybrid-disk-image
efi-disk-image
iso9660-image
docker-image
@@ -86,6 +87,7 @@ (define-module (gnu system image)
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 @@ (define mbr-disk-image
(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 @@ (define mbr-raw-image-type
(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)
@@ -1169,7 +1169,7 @@ (define %default-options
(debug . 0)
(verbosity . #f) ;default
(validate-reconfigure . ,ensure-forward-reconfigure)
- (image-type . mbr-raw)
+ (image-type . mbr-hybrid-raw)
(image-size . guess)
(install-bootloader? . #t)
(label . #f)