summary refs log tree commit diff
diff options
context:
space:
mode:
authorMathieu Othacehe <othacehe@gnu.org>2020-05-29 09:05:53 +0200
committerMathieu Othacehe <othacehe@gnu.org>2020-05-29 09:10:27 +0200
commitb7b45372e713a53ffa852aec1d3bfb743bb79124 (patch)
tree31c4f17f1c09473fc22afd2ed793217ddcf40ac4
parent749381051d9b43fd4944b44e734c6fd9fced9030 (diff)
downloadguix-b7b45372e713a53ffa852aec1d3bfb743bb79124.tar.gz
image: Add a post-MBR gap to the default image.
The generic 'efi-disk-image' needs to be bootable on systems without EFI. To
do that, GRUB is installed in the post-MBR gap. Make sure that the first
partition starts with an offset, to make this gap large enough for GRUB.

* gnu/system/image.scm (root-offset, root-label): New variables,
(esp-partition): use 'root-offset' as the partition offset,
(root-partition): use 'root-label' as the partition label.
-rw-r--r--gnu/system/image.scm10
1 files changed, 9 insertions, 1 deletions
diff --git a/gnu/system/image.scm b/gnu/system/image.scm
index 53f68c097d..02c026b88c 100644
--- a/gnu/system/image.scm
+++ b/gnu/system/image.scm
@@ -65,9 +65,17 @@
 ;;; Images definitions.
 ;;;
 
+;; This is the offset before the first partition. GRUB will install itself in
+;; this post-MBR gap.
+(define root-offset (* 512 2048))
+
+;; Generic root partition label.
+(define root-label "Guix_image")
+
 (define esp-partition
   (partition
    (size (* 40 (expt 2 20)))
+   (offset root-offset)
    (label "GNU-ESP") ;cosmetic only
    ;; Use "vfat" here since this property is used when mounting.  The actual
    ;; FAT-ness is based on file system size (16 in this case).
@@ -78,7 +86,7 @@
 (define root-partition
   (partition
    (size 'guess)
-   (label "Guix_image")
+   (label root-label)
    (file-system "ext4")
    (flags '(boot))
    (initializer (gexp initialize-root-partition))))