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
[email protected]
https://lists.gnu.org/mailman/listinfo/grub-devel