1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-04-06 21:20:33 +02:00

image: Use unshare to map root user for btrfs

The current version of `mkfs.btrfs` has a regression when combined with
`fakeroot` where it does not detect the faked root uid/gid of files when
building the filesystem. This produces partition images with `/` owned by
the guixbuild user when it should be owned by root.

Using `unshare` rather than `fakeroot` resolves this by doing the uid
mapping at the kernel level rather than overloading the `stat` function.

An equivalent issue was [reported and patched in
NixOS](https://github.com/NixOS/nixpkgs/pull/434122)

* gnu/build/image.scm (system-disk-image): Import `util-linux` instead of
`fakeroot`.
* gnu/system/image.scm (make-btrfs-image): Use `unshare --map-root-user`

Change-Id: Id4eeaf510f3ec5f4a23b4d700a73e2cf46da40b1
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #5536
This commit is contained in:
Ryan Sundberg
2026-01-10 13:35:31 -08:00
committed by Ludovic Courtès
parent 35929d5afd
commit 62c28bc6d8
2 changed files with 3 additions and 2 deletions

View File

@@ -504,7 +504,7 @@ used in the image."
initialize-root-partition))
(inputs '#+(cond
((string=? type "btrfs")
(list btrfs-progs fakeroot))
(list btrfs-progs util-linux))
((string-prefix? "ext" type)
(list e2fsprogs fakeroot))
((string=? type "f2fs")