summaryrefslogtreecommitdiff
path: root/gnu/build
diff options
context:
space:
mode:
authorDanny Milosavljevic <dannym@scratchpost.org>2017-07-12 09:03:46 +0200
committerDanny Milosavljevic <dannym@scratchpost.org>2017-07-12 16:15:30 +0200
commit911a53a53f4898c386cbb7347daf928fae592fa3 (patch)
tree31ecfdb684d647ab728182bfb055f9776fdb87e5 /gnu/build
parent0bc6fe323d34aabc7f51fa80b8872a2c1770d32a (diff)
build: Make ISO-9660 image bootable from USB flash drive.
* gnu/build/vm.scm (make-iso9660-image): Make image bootable from USB flash drive.
Diffstat (limited to 'gnu/build')
-rw-r--r--gnu/build/vm.scm13
1 files changed, 13 insertions, 0 deletions
diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm
index 2d41c5756b..d8c53ef37f 100644
--- a/gnu/build/vm.scm
+++ b/gnu/build/vm.scm
@@ -367,6 +367,19 @@ Grub configuration and OS-DRV as the stuff in it."
"var=/tmp/root/var"
"run=/tmp/root/run"
"--"
+ ;; Store two copies of the headers.
+ ;; The resulting ISO-9660 image has a DOS MBR and
+ ;; one protective partition (with type 0xCD).
+ ;; Because GuixSD only uses actual partitions
+ ;; rather than what /proc/partitions returns, work
+ ;; around it by storing the primary volume
+ ;; descriptor twice, once where it should be and
+ ;; once in the partition.
+ ;; Allegedly, otherwise, many other GNU tools
+ ;; (automounters etc) would also be confused by
+ ;; the extra partition so it makes sense to
+ ;; store two copies in any case.
+ "-boot_image" "any" "partition_offset=16"
"-volid" ,(string-upcase volume-id)
,@(if volume-uuid
`("-volume_date" "uuid"