This patch describes two containers, Debian and Fedora, with most required packages to build and test/check GRUB. The Containerfile is actually a template which is populated dinamically based on the podman (or docker) commands provided on the INSTALL file so to create the container images, you actually have to copy&paste these commands just one time.
To test the container with latest upstrem, I have executed the following command $ podman run fedora-grub /grub/check.sh removing all output log except the test-suite.log, I got the following (you should get exactly the same results as this is a container) ================================= GRUB 2.13: ./test-suite.log ================================= # TOTAL: 88 # PASS: 65 # SKIP: 3 # XFAIL: 0 # FAIL: 1 # XPASS: 0 # ERROR: 19 System information (uname -a): Linux 6.15.9-101.fc41.x86_64 #1 SMP PREEMPT_DYNAMIC Sat Aug 2 12:38:24 UTC 2025 x86_64 Distribution information (/etc/os-release): NAME="Fedora Linux" VERSION="42 (Container Image)" RELEASE_TYPE=stable ID=fedora VERSION_ID=42 VERSION_CODENAME="" PLATFORM_ID="platform:f42" PRETTY_NAME="Fedora Linux 42 (Container Image)" .. contents:: :depth: 2 FAIL: erofs_test ================ 1024+0 records in 1024+0 records out 1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.00322471 s, 325 MB/s mkfs.erofs -L "g;/éт 莭😁" -Eforce-inode-compact /tmp/grub-fs-tester.20250919231809691969935.erofs_compact.a8z/erofs_compact_512_4096_1_0.img /tmp/grub-fs-tester.20250919231809691969935.erofs_compact.a8z/master <E> erofs: invalid volume label Try 'mkfs.erofs --help' for more information. mkfs.erofs 1.8.10 FAIL erofs_test (exit status: 1) ERROR: ext234_test ================== losetup: /tmp/grub-fs-tester.20250919231809819969810.ext2_old.fUk/ext2_old_256_1024_1_0.img: failed to set up loop device: No such file or directory losetup: device node /dev/loop0 (7:0) is lost. You may use mknod(1) to recover it. ERROR ext234_test (exit status: 99) ERROR: hfsplus_test =================== losetup: /tmp/grub-fs-tester.20250919232118317496315.hfsplus.eL6/hfsplus_512_512_1_0.img: failed to set up loop device: No such file or directory losetup: device node /dev/loop0 (7:0) is lost. You may use mknod(1) to recover it. ERROR hfsplus_test (exit status: 99) ERROR: ntfs_test ================ losetup: /tmp/grub-fs-tester.20250919232118341556194.ntfs.wju/ntfs_256_512_1_0.img: failed to set up loop device: No such file or directory losetup: device node /dev/loop0 (7:0) is lost. You may use mknod(1) to recover it. ERROR ntfs_test (exit status: 99) ERROR: reiserfs_test ==================== mkfs.reiserfs not installed; cannot test reiserfs. ERROR reiserfs_test (exit status: 99) ERROR: fat_test =============== losetup: /tmp/grub-fs-tester.20250919232118371811059.vfat16a.LsP/vfat16a_512_512_1_0.img: failed to set up loop device: No such file or directory losetup: device node /dev/loop0 (7:0) is lost. You may use mknod(1) to recover it. ERROR fat_test (exit status: 99) ERROR: minixfs_test =================== losetup: /tmp/grub-fs-tester.20250919232118398197479.minix.oFp/minix_512_512_1_0.img: failed to set up loop device: No such file or directory losetup: device node /dev/loop0 (7:0) is lost. You may use mknod(1) to recover it. ERROR minixfs_test (exit status: 99) ERROR: xfs_test =============== losetup: /tmp/grub-fs-tester.20250919232118422926195.xfs_crc.jJT/xfs_crc_512_1024_1_0.img: failed to set up loop device: No such file or directory losetup: device node /dev/loop0 (7:0) is lost. You may use mknod(1) to recover it. ERROR xfs_test (exit status: 99) ERROR: f2fs_test ================ losetup: /tmp/grub-fs-tester.20250919232118446273287.f2fs.Pp1/f2fs_512_512_1_0.img: failed to set up loop device: No such file or directory losetup: device node /dev/loop0 (7:0) is lost. You may use mknod(1) to recover it. ERROR f2fs_test (exit status: 99) ERROR: nilfs2_test ================== losetup: /tmp/grub-fs-tester.20250919232118469197123.nilfs2.0YU/nilfs2_512_4096_1_0.img: failed to set up loop device: No such file or directory losetup: device node /dev/loop0 (7:0) is lost. You may use mknod(1) to recover it. ERROR nilfs2_test (exit status: 99) ERROR: exfat_test ================= losetup: /tmp/grub-fs-tester.20250919232121043740620.exfat.yLl/exfat_512_512_1_0.img: failed to set up loop device: No such file or directory losetup: device node /dev/loop0 (7:0) is lost. You may use mknod(1) to recover it. ERROR exfat_test (exit status: 99) ERROR: udf_test =============== losetup: /tmp/grub-fs-tester.20250919232123672240022.udf.Plv/udf_512_1024_1_0.img: failed to set up loop device: No such file or directory losetup: device node /dev/loop0 (7:0) is lost. You may use mknod(1) to recover it. ERROR udf_test (exit status: 99) ERROR: hfs_test =============== mkfs.hfs not installed; cannot test HFS. ERROR hfs_test (exit status: 99) ERROR: jfs_test =============== losetup: /tmp/grub-fs-tester.20250919232123699424716.jfs.k78/jfs_512_512_1_0.img: failed to set up loop device: No such file or directory losetup: device node /dev/loop0 (7:0) is lost. You may use mknod(1) to recover it. ERROR jfs_test (exit status: 99) ERROR: btrfs_test ================= losetup: /tmp/grub-fs-tester.20250919232123725943375.btrfs.WWS/btrfs_4096_512_1_0.img: failed to set up loop device: No such file or directory losetup: device node /dev/loop0 (7:0) is lost. You may use mknod(1) to recover it. ERROR btrfs_test (exit status: 99) ERROR: zfs_test =============== losetup: /tmp/grub-fs-tester.20250919232123750030765.zfs.0zf/zfs_512_512_1_0.img: failed to set up loop device: No such file or directory losetup: device node /dev/loop0 (7:0) is lost. You may use mknod(1) to recover it. ERROR zfs_test (exit status: 99) ERROR: luks1_test ================= losetup: /tmp/grub-fs-tester.20250919232143344935679.luks1.beR/luks1_512_512_1_0.img: failed to set up loop device: No such file or directory losetup: device node /dev/loop0 (7:0) is lost. You may use mknod(1) to recover it. ERROR luks1_test (exit status: 99) ERROR: luks2_test ================= losetup: /tmp/grub-fs-tester.20250919232143400044297.luks2.MDj/luks2_512_512_1_0.img: failed to set up loop device: No such file or directory losetup: device node /dev/loop0 (7:0) is lost. You may use mknod(1) to recover it. ERROR luks2_test (exit status: 99) SKIP: tpm2_key_protector_test ============================= SKIP tpm2_key_protector_test (exit status: 77) ERROR: grub_cmd_cryptomount =========================== Note: Temporary directory cannot be removed: /tmp/1758324145.LUKS1_test_cryptsetup_defaults Please inspect and remove manually. Error[23]: Cannot initialize device-mapper. Is dm_mod kernel module loaded? Cannot use device grub-shell-luks-tester.LpsdRVbEBf, name is invalid or still in use. Cannot initialize device-mapper. Is dm_mod kernel module loaded? Cannot use device grub-shell-luks-tester.LpsdRVbEBf, name is invalid or still in use. LUKS1 test cryptsetup defaults: ERROR ERROR grub_cmd_cryptomount (exit status: 99) SKIP: pseries_test ================== SKIP pseries_test (exit status: 77) SKIP: core_compress_test ======================== SKIP core_compress_test (exit status: 77) ERROR: grub_func_test ===================== Functional test requires grub-mkfont support ERROR grub_func_test (exit status: 99) There are some efforts to fix some tests [1,2] but as seen above there are others to be addressed when running checks on containers, specially those involving loopback devices. [1] https://lists.nongnu.org/archive/html/grub-devel/2025-08/msg00249.html [2] https://lists.gnu.org/archive/html/grub-devel/2025-09/msg00190.html Leo Sandoval (1): Define a Containerfile and instructions to build distro images INSTALL | 158 ++++++++++++++++++++++++++++++++++++++++ container/Containerfile | 16 ++++ container/check.sh | 18 +++++ 3 files changed, 192 insertions(+) create mode 100644 container/Containerfile create mode 100644 container/check.sh -- 2.50.1 _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel