From 911a53a53f4898c386cbb7347daf928fae592fa3 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 12 Jul 2017 09:03:46 +0200 Subject: build: Make ISO-9660 image bootable from USB flash drive. * gnu/build/vm.scm (make-iso9660-image): Make image bootable from USB flash drive. --- gnu/build/vm.scm | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'gnu/build') 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 @@ (define* (make-iso9660-image grub config-file os-drv target "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" -- cgit v1.2.3