diff options
author | Tobias Geerinckx-Rice <me@tobias.gr> | 2020-04-06 17:48:21 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2020-04-10 16:05:19 +0200 |
commit | e830c2a8de0a4b6fbc334c648d976872034b5997 (patch) | |
tree | ef19aee2d695f94c77d9304be340460a3a0f2f0c | |
parent | 08b14ab20ebe181690df6210a0b3f95bad494af5 (diff) | |
download | guix-e830c2a8de0a4b6fbc334c648d976872034b5997.tar.gz |
vm: Transparently compress iso9660 images.
* gnu/build/vm.scm (make-iso9660-image): Use the ‘--zisofs’ xorriso filter at the highest compression settings for supported directories.
-rw-r--r-- | gnu/build/vm.scm | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm index 79eed48c1f..9caa110463 100644 --- a/gnu/build/vm.scm +++ b/gnu/build/vm.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com> +;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -533,6 +534,24 @@ GRUB configuration and OS-DRV as the stuff in it." ;; Set all timestamps to 1. "-volume_date" "all_file_dates" "=1" + ;; ‘zisofs’ compression reduces the total image size by ~60%. + "-zisofs" "level=9:block_size=128k" ; highest compression + ;; It's transparent to our Linux-Libre kernel but not to GRUB. + ;; Don't compress the kernel, initrd, and other files read by + ;; grub.cfg, as well as common already-compressed file names. + "-find" "/" "-type" "f" + ;; XXX Even after "--" above, and despite documentation claiming + ;; otherwise, "-or" is stolen by grub-mkrescue which then chokes + ;; on it (as ‘-o …’) and dies. Don't use "-or". + "-not" "-wholename" "/boot/*" + "-not" "-wholename" "/System/*" + "-not" "-name" "unicode.pf2" + "-not" "-name" "bzImage" + "-not" "-name" "*.gz" ; initrd & all man pages + "-not" "-name" "*.png" ; includes grub-image.png + "-exec" "set_filter" "--zisofs" + "--" + "-volid" (string-upcase volume-id) (if volume-uuid `("-volume_date" "uuid" |