Skip to content

psuedofs changes for foreign distributions#445

Open
bladedvox wants to merge 1 commit intovoid-linux:masterfrom
bladedvox:bugfix/414
Open

psuedofs changes for foreign distributions#445
bladedvox wants to merge 1 commit intovoid-linux:masterfrom
bladedvox:bugfix/414

Conversation

@bladedvox
Copy link
Copy Markdown
Contributor

@bladedvox bladedvox commented Apr 19, 2026

fixes #414
fixes #288

tested on Void as well as Ubuntu; thanks to @imiric for actually finding the solution, i just tested it

@Duncaen
Copy link
Copy Markdown
Member

Duncaen commented Apr 19, 2026

I think both -R and -f flags for umount are just wrong. A plain umount should be able to remove just the bind mountpoint. no lazy needed.

Not sure whether mount --make-rslave is required either.

@bladedvox
Copy link
Copy Markdown
Contributor Author

bladedvox commented Apr 19, 2026

Not really sure why but without these umount_pseudofs fails at the beginning of generate_squashfs on Ubuntu, where it works fine in Void.

@Duncaen
Copy link
Copy Markdown
Member

Duncaen commented Apr 19, 2026

Because -R tries to unmount sub mounts of /sys like /sys/fs/cgroup first, and mounts are by default shared systemd systems, which results in the busy error, because the same cgroupfs is still in use on the host system.

The change works around it by not propagating mount events (--make-rslave).

But AFAIU this is a non issue if its changed to not recursively umount a bind mount and instead just umount the actual bind mount.

@bladedvox
Copy link
Copy Markdown
Contributor Author

Ok good to know. I can give that a test and report back

@Duncaen
Copy link
Copy Markdown
Member

Duncaen commented Apr 20, 2026

After a bit of discussion on irc, I think mount --make-rslave "$ROOTFS"/$f is fine in combination with just umount -R "$ROOTFS/$f".

This should be the most "correct" solution.

@bladedvox
Copy link
Copy Markdown
Contributor Author

just tested that and it doesn't work 😿

@bladedvox
Copy link
Copy Markdown
Contributor Author

@Duncaen ran a few more rounds of tests just to be sure; mount --make-rslave and umount -R -l are both necessary; umount -f not strictly necessary but i see why it's there for the edge cases where it makes a difference

@Duncaen
Copy link
Copy Markdown
Member

Duncaen commented Apr 24, 2026

I don't see why --lazy should be necessary, if that is the case there is a bigger problem.

@bladedvox
Copy link
Copy Markdown
Contributor Author

I mean after reading the docs I agree, which makes me think there's something more insidious going on in the way the cgroup mount is done in the first place. But also based on the docs, the lazy unmount does seem to be the safe way to handle the symptom as observed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ERROR: failed to unmount .../void-mklive/mklive-build.fZXVp/image/rootfs/sys/ mklive.sh: running on foreign distros is broken (with static XBPS)

2 participants