blob: 2d7d4e996c2e92ccf2eace9b34b6626a9da0168f (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
Btrfs commands don't work when using user-space emulation of other architectures
Description of problem:
When doing cross-arch builds with mock, it uses qemu-user-static under the hood, and qemu-user-static lacks support for Btrfs ioctls to emulate so that btrfs(8) commands work correctly.
This is especially important for being able to do cross-arch image builds.
How reproducible:
Always (on Fedora 33 with qemu-5.1.0-2.fc33)
Steps to Reproduce:
$ sudo dnf install mock qemu-user-static wget
$ sudo usermod -a -G mock $USER
$ newgrp mock
$ mock --root fedora-rawhide-armhfp --install btrfs-progs util-linux
$ mock --root fedora-rawhide-armhfp --chroot 'rm -f foo.img && dd if=/dev/zero of=foo.img bs=1G count=1 && losetup /dev/loop9 foo.img && mkfs.btrfs /dev/loop9 && mkdir /foo && mount /dev/loop9 /foo && btrfs subvol create /foo/subvol && umount /foo && losetup -d /dev/loop9'
Actual results:
Fails with errors like "ERROR: cannot create subvolume: Function not implemented"
Expected results:
Succeeds and creates subvolumes properly.
Additional info:
There is a patch series from a few days ago to add support for many btrfs ioctls which could fix this...
https://lists.gnu.org/archive/html/qemu-devel/2020-08/msg05594.html
|