image: Add mbr-raw-image-type and use by default.
* gnu/system/image.scm (mbr-disk-image, mbr-raw-image-type): New variables. (qcow2-image-type): Inherit mbr-disk-image. * guix/scripts/system.scm (%default-options): Use mbr-raw-image-type by default. * gnu/tests/install.scm (run-install): Use mbr-raw in the tests. * doc/guix-cookbook.texi (Guix System Image API): Update the list of image types. * doc/guix.texi (Invoking guix system, System Images, image-type Reference): Add mbr-raw and switch documented default to it.master
parent
519c3b7803
commit
d57cab7641
|
@ -2019,17 +2019,23 @@ One can run:
|
||||||
mathieu@@cervin:~$ guix system --list-image-types
|
mathieu@@cervin:~$ guix system --list-image-types
|
||||||
The available image types are:
|
The available image types are:
|
||||||
|
|
||||||
|
- unmatched-raw
|
||||||
|
- rock64-raw
|
||||||
- pinebook-pro-raw
|
- pinebook-pro-raw
|
||||||
- pine64-raw
|
- pine64-raw
|
||||||
- novena-raw
|
- novena-raw
|
||||||
- hurd-raw
|
- hurd-raw
|
||||||
- hurd-qcow2
|
- hurd-qcow2
|
||||||
- qcow2
|
- qcow2
|
||||||
- uncompressed-iso9660
|
|
||||||
- efi-raw
|
|
||||||
- arm64-raw
|
|
||||||
- arm32-raw
|
|
||||||
- iso9660
|
- iso9660
|
||||||
|
- uncompressed-iso9660
|
||||||
|
- tarball
|
||||||
|
- efi-raw
|
||||||
|
- mbr-raw
|
||||||
|
- docker
|
||||||
|
- wsl2
|
||||||
|
- raw-with-offset
|
||||||
|
- efi32-raw
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
and by writing an @code{operating-system} file based on
|
and by writing an @code{operating-system} file based on
|
||||||
|
|
|
@ -40884,7 +40884,7 @@ QEMU monitor and the VM.
|
||||||
@cindex image, creating disk images
|
@cindex image, creating disk images
|
||||||
The @code{image} command can produce various image types. The image
|
The @code{image} command can produce various image types. The image
|
||||||
type can be selected using the @option{--image-type} option. It
|
type can be selected using the @option{--image-type} option. It
|
||||||
defaults to @code{efi-raw}. When its value is @code{iso9660}, the
|
defaults to @code{mbr-raw}. When its value is @code{iso9660}, the
|
||||||
@option{--label} option can be used to specify a volume ID with
|
@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
|
@code{image}. By default, the root file system of a disk image is
|
||||||
mounted non-volatile; the @option{--volatile} option can be provided to
|
mounted non-volatile; the @option{--volatile} option can be provided to
|
||||||
|
@ -40903,7 +40903,7 @@ qemu-system-x86_64 -enable-kvm -hda /tmp/my-image.qcow2 -m 1000 \
|
||||||
-bios $(guix build ovmf)/share/firmware/ovmf_x64.bin
|
-bios $(guix build ovmf)/share/firmware/ovmf_x64.bin
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
When using the @code{efi-raw} image type, a raw disk image is produced;
|
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
|
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
|
@code{/dev/sdc} is the device corresponding to a USB stick, one can copy
|
||||||
the image to it using the following command:
|
the image to it using the following command:
|
||||||
|
@ -41041,7 +41041,7 @@ of the image.
|
||||||
For the @code{image} action, create an image with given @var{type}.
|
For the @code{image} action, create an image with given @var{type}.
|
||||||
|
|
||||||
When this option is omitted, @command{guix system} uses the
|
When this option is omitted, @command{guix system} uses the
|
||||||
@code{efi-raw} image type.
|
@code{mbr-raw} image type.
|
||||||
|
|
||||||
@cindex ISO-9660 format
|
@cindex ISO-9660 format
|
||||||
@cindex CD image format
|
@cindex CD image format
|
||||||
|
@ -45193,7 +45193,7 @@ then directly boot from it, without any kind of installation procedure.
|
||||||
|
|
||||||
The @command{guix system image} command is able to turn an operating
|
The @command{guix system image} command is able to turn an operating
|
||||||
system definition into a bootable image. This command supports
|
system definition into a bootable image. This command supports
|
||||||
different image types, such as @code{efi-raw}, @code{iso9660} and
|
different image types, such as @code{mbr-raw}, @code{iso9660} and
|
||||||
@code{docker}. Any modern @code{x86_64} machine will probably be able
|
@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
|
to boot from an @code{iso9660} image. However, there are a few machines
|
||||||
out there that require specific image types. Those machines, in general
|
out there that require specific image types. Those machines, in general
|
||||||
|
@ -45545,6 +45545,10 @@ record.
|
||||||
There are several @code{image-type} records provided by the @code{(gnu
|
There are several @code{image-type} records provided by the @code{(gnu
|
||||||
system image)} and the @code{(gnu system images @dots{})} modules.
|
system image)} and the @code{(gnu system images @dots{})} modules.
|
||||||
|
|
||||||
|
@defvar mbr-raw-image-type
|
||||||
|
Build an image based on the @code{mbr-disk-image} image.
|
||||||
|
@end defvar
|
||||||
|
|
||||||
@defvar efi-raw-image-type
|
@defvar efi-raw-image-type
|
||||||
Build an image based on the @code{efi-disk-image} image.
|
Build an image based on the @code{efi-disk-image} image.
|
||||||
@end defvar
|
@end defvar
|
||||||
|
@ -45554,7 +45558,7 @@ Build an image based on the @code{efi32-disk-image} image.
|
||||||
@end defvar
|
@end defvar
|
||||||
|
|
||||||
@defvar qcow2-image-type
|
@defvar qcow2-image-type
|
||||||
Build an image based on the @code{efi-disk-image} image but with the
|
Build an image based on the @code{mbr-disk-image} image but with the
|
||||||
@code{compressed-qcow2} image format.
|
@code{compressed-qcow2} image format.
|
||||||
@end defvar
|
@end defvar
|
||||||
|
|
||||||
|
@ -45625,7 +45629,7 @@ wsl -d Guix
|
||||||
|
|
||||||
So, if we get back to the @code{guix system image} command taking an
|
So, if we get back to the @code{guix system image} command taking an
|
||||||
@code{operating-system} declaration as argument. By default, the
|
@code{operating-system} declaration as argument. By default, the
|
||||||
@code{efi-raw-image-type} is used to turn the provided
|
@code{mbr-raw-image-type} is used to turn the provided
|
||||||
@code{operating-system} into an actual bootable image.
|
@code{operating-system} into an actual bootable image.
|
||||||
|
|
||||||
To use a different @code{image-type}, the @code{--image-type} option can
|
To use a different @code{image-type}, the @code{--image-type} option can
|
||||||
|
|
|
@ -76,6 +76,7 @@
|
||||||
esp32-partition
|
esp32-partition
|
||||||
root-partition
|
root-partition
|
||||||
|
|
||||||
|
mbr-disk-image
|
||||||
efi-disk-image
|
efi-disk-image
|
||||||
iso9660-image
|
iso9660-image
|
||||||
docker-image
|
docker-image
|
||||||
|
@ -84,6 +85,7 @@
|
||||||
raw-with-offset-disk-image
|
raw-with-offset-disk-image
|
||||||
|
|
||||||
image-with-os
|
image-with-os
|
||||||
|
mbr-raw-image-type
|
||||||
efi-raw-image-type
|
efi-raw-image-type
|
||||||
efi32-raw-image-type
|
efi32-raw-image-type
|
||||||
qcow2-image-type
|
qcow2-image-type
|
||||||
|
@ -145,6 +147,15 @@ parent image record."
|
||||||
(flags '(boot))
|
(flags '(boot))
|
||||||
(initializer (gexp initialize-root-partition))))
|
(initializer (gexp initialize-root-partition))))
|
||||||
|
|
||||||
|
(define mbr-disk-image
|
||||||
|
(image-without-os
|
||||||
|
(format 'disk-image)
|
||||||
|
(partition-table-type 'mbr)
|
||||||
|
(partitions
|
||||||
|
(list (partition
|
||||||
|
(inherit root-partition)
|
||||||
|
(offset root-offset))))))
|
||||||
|
|
||||||
(define efi-disk-image
|
(define efi-disk-image
|
||||||
(image-without-os
|
(image-without-os
|
||||||
(format 'disk-image)
|
(format 'disk-image)
|
||||||
|
@ -201,6 +212,11 @@ set to the given OS."
|
||||||
(inherit base-image)
|
(inherit base-image)
|
||||||
(operating-system os)))
|
(operating-system os)))
|
||||||
|
|
||||||
|
(define mbr-raw-image-type
|
||||||
|
(image-type
|
||||||
|
(name 'mbr-raw)
|
||||||
|
(constructor (cut image-with-os mbr-disk-image <>))))
|
||||||
|
|
||||||
(define efi-raw-image-type
|
(define efi-raw-image-type
|
||||||
(image-type
|
(image-type
|
||||||
(name 'efi-raw)
|
(name 'efi-raw)
|
||||||
|
@ -216,8 +232,7 @@ set to the given OS."
|
||||||
(name 'qcow2)
|
(name 'qcow2)
|
||||||
(constructor (cut image-with-os
|
(constructor (cut image-with-os
|
||||||
(image
|
(image
|
||||||
(inherit efi-disk-image)
|
(inherit mbr-disk-image)
|
||||||
(partition-table-type 'mbr)
|
|
||||||
(name 'image.qcow2)
|
(name 'image.qcow2)
|
||||||
(format 'compressed-qcow2))
|
(format 'compressed-qcow2))
|
||||||
<>))))
|
<>))))
|
||||||
|
|
|
@ -229,7 +229,7 @@ reboot\n")
|
||||||
(gnu installer tests)
|
(gnu installer tests)
|
||||||
(guix combinators))))
|
(guix combinators))))
|
||||||
(uefi-support? #f)
|
(uefi-support? #f)
|
||||||
(installation-image-type 'efi-raw)
|
(installation-image-type 'mbr-raw)
|
||||||
(install-size 'guess)
|
(install-size 'guess)
|
||||||
(target-size (* 2200 MiB))
|
(target-size (* 2200 MiB))
|
||||||
(number-of-disks 1))
|
(number-of-disks 1))
|
||||||
|
@ -291,7 +291,7 @@ such as for RAID systems."
|
||||||
'("-bios" #$uefi-firmware)
|
'("-bios" #$uefi-firmware)
|
||||||
'())
|
'())
|
||||||
#$@(cond
|
#$@(cond
|
||||||
((eq? 'efi-raw installation-image-type)
|
((eq? 'mbr-raw installation-image-type)
|
||||||
#~("-drive"
|
#~("-drive"
|
||||||
,(string-append "file=" #$image
|
,(string-append "file=" #$image
|
||||||
",if=virtio,readonly")))
|
",if=virtio,readonly")))
|
||||||
|
|
|
@ -1169,7 +1169,7 @@ Some ACTIONS support additional ARGS.\n"))
|
||||||
(debug . 0)
|
(debug . 0)
|
||||||
(verbosity . #f) ;default
|
(verbosity . #f) ;default
|
||||||
(validate-reconfigure . ,ensure-forward-reconfigure)
|
(validate-reconfigure . ,ensure-forward-reconfigure)
|
||||||
(image-type . efi-raw)
|
(image-type . mbr-raw)
|
||||||
(image-size . guess)
|
(image-size . guess)
|
||||||
(install-bootloader? . #t)
|
(install-bootloader? . #t)
|
||||||
(label . #f)
|
(label . #f)
|
||||||
|
|
Reference in New Issue