Skip to content

composefs: /boot not mounted after to-existing-root install (missing fstab entry) #2120

@henrywang

Description

@henrywang

In my test, install composefs image into package mode machine with podman run --rm --tls-verify=false --privileged --pid=host -v /:/target -v /dev:/dev -v /var/lib/containers:/var/lib/containers --security-opt label=type:unconfined_t localhost/bootc:tmt bootc install to-existing-root --target-transport containers-storage --composefs-backend --allow-missing-verity .

After bootc install to-existing-root --composefs-backend with GRUB bootloader, the system boots successfully but /boot is not mounted. This causes bootc status (and likely bootc upgrade) to fail when trying to open /boot/grub2/.

   $ ls -la /boot/
   total 8
   drwxr-xr-x.  2 root root  27 Apr  2 23:58 .
   drwxr-xr-x. 13 root root 358 Apr  2 23:58 ..

   $ ls -la /boot/grub2/
   grub2 dir missing

   $ findmnt /boot
   (no output — /boot is not mounted)

Full log: https://artifacts.osci.redhat.com/testing-farm/b535151d-d764-4928-91e3-18718047540a/

The composefs install path in install_to_filesystem_impl() (crates/lib/src/install.rs ~line 1963-2012) does not write a /boot entry to /etc/fstab. The ostree path does this at line 1203-1212.

to-disk does not have this issue because /boot is just a directory on the root partition (/sysroot/boot) and /sysroot is always mounted, /sysroot/boot is accessible. No fstab entry needed — it's not a separate partition.

But for to-disk Tpm2Luks (separate /boot partition), that might have same issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions