Skip to content

Commit 95ccb3d

Browse files
committed
build: compress modules together in a tar and mount that as loopback
1 parent 8b60c57 commit 95ccb3d

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

build

+4-2
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,9 @@ export MODULES="$ENV_GRUB_MODULES_BASE $ENV_GRUB_MODULES_FS $ENV_GRUB_MODULES_CR
2727
&& cd memdisk \
2828
&& envsubst '$ENV_GRUB_CRYPTODISK_UUID $ENV_GRUB_FS_UUID $ENV_GRUB_HINT $ENV_GRUB_CHAINLOAD_PREFIX $ENV_GRUB_CHAINLOAD_EFI $ENV_GRUB_LOG_LEVEL $ENV_GRUB_RETRY_TIMEOUT $MODULES' \
2929
< ../grub.cfg.template | $ENV_GRUB_COMPRESS_COMMAND > boot/grub/grub.cfg \
30-
&& for mod in $MODULES; do $ENV_GRUB_COMPRESS_COMMAND -kc $ENV_GRUB_MODULES_DIR$mod.mod > boot/grub/x86_64-efi/$mod.mod; done \
31-
&& for mod in normal fshelp extcmd net priority_queue bufio datetime boot terminal gettext echo sleep test configfile part_gpt fat search_label search_fs_file efinet diskfilter procfs afsplitter pbkdf2; do $ENV_GRUB_COMPRESS_COMMAND -kc $ENV_GRUB_MODULES_DIR$mod.mod > boot/grub/x86_64-efi/$mod.mod; done \
30+
&& for mod in $MODULES; do cat $ENV_GRUB_MODULES_DIR$mod.mod > boot/grub/x86_64-efi/$mod.mod; done \
31+
&& for mod in normal fshelp extcmd net priority_queue bufio datetime boot terminal gettext echo sleep test configfile part_gpt fat search_label search_fs_file efinet diskfilter procfs afsplitter pbkdf2; do cat $ENV_GRUB_MODULES_DIR$mod.mod > boot/grub/x86_64-efi/$mod.mod; done \
32+
&& (cd boot/grub && tar -c x86_64-efi | $ENV_GRUB_COMPRESS_COMMAND > ../x86_64-efi.tar.xz && rm -rf x86_64-efi) \
3233
&& tar -cf ../memdisk.tar boot)
3334

3435
## create a efi grub boot image
@@ -38,6 +39,7 @@ export MODULES="$ENV_GRUB_MODULES_BASE $ENV_GRUB_MODULES_FS $ENV_GRUB_MODULES_CR
3839
grub-mkimage --config "initial.cfg" --compression auto --output "$output" \
3940
--format x86_64-efi --memdisk="$dir/memdisk.tar" \
4041
memdisk tar \
42+
loopback \
4143
`#gzio` \
4244
xzio \
4345
`#zstd`

initial.cfg

+3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
loopback --decompress mods (memdisk)/boot/x86_64-efi.tar.xz
2+
set prefix=(mods)
3+
ls -l (mods)/x86_64-efi/
14
insmod fat
25
insmod configfile
36
insmod echo

0 commit comments

Comments
 (0)