On Fri, Oct 10, 2014 at 01:47:01PM +0200, Olaf Hering wrote:
Is btrfs subvol support failing just for me? Looks like nothing adds the
required '@/' string. virt-ls uses the first variant of the command:
><rescue> mount -vo subvol=var/spool,ro /dev/sda2 /sysroot/
[ 113.852047] BTRFS info (device sda2): disk space caching is enabled
[ 113.852869] BTRFS: has skinny extents
mount: mount(2) failed: No such file or directory
><rescue> mount -vo subvol=@var/spool,ro /dev/sda2 /sysroot/
[ 116.082642] BTRFS info (device sda2): disk space caching is enabled
[ 116.083476] BTRFS: has skinny extents
mount: mount(2) failed: No such file or directory
><rescue> mount -vo subvol=@/var/spool,ro /dev/sda2 /sysroot/
[ 123.995343] BTRFS info (device sda2): disk space caching is enabled
[ 123.996238] BTRFS: has skinny extents
mount: /dev/sda2 mounted on /sysroot.
><rescue> exit
fstab is:
UUID=d538a81f-9778-424d-96cc-e48dd2d4a323 swap swap defaults
0 0
UUID=65b72f12-eccb-4cf2-a4f4-9c4bb462456f / btrfs defaults
0 0
UUID=65b72f12-eccb-4cf2-a4f4-9c4bb462456f /var/spool btrfs subvol=@/var/spool
0 0
I wonder if this is an Augeas thing?
We use Augeas to parse the /etc/fstab btrfs entries, see
src/inspect-fs-unix.c: check_fstab:
https://github.com/libguestfs/libguestfs/blob/master/src/inspect-fs-unix....
And we then pass the subvol back to the mount command in
daemon/mount.c (which doesn't alter it).
https://github.com/libguestfs/libguestfs/blob/master/daemon/mount.c#L154
You could try:
cd /tmp
mkdir etc
cat > etc/fstab <<EOF
UUID=123 swap swap defaults 0 0
UUID=456 / btrfs defaults 0 0
UUID=789 /var/spool btrfs subvol=@/var/spool 0 0
EOF
augtool -r /tmp
In augtool:
augtool> ls /files/etc/fstab/3/vfstype
augtool> get /files/etc/fstab/3/vfstype
/files/etc/fstab/3/vfstype = btrfs
augtool> get /files/etc/fstab/3/spec
/files/etc/fstab/3/spec = UUID=789
augtool> get /files/etc/fstab/3/file
/files/etc/fstab/3/file = /var/spool
augtool> get /files/etc/fstab/3/dump
/files/etc/fstab/3/dump = 0
augtool> get /files/etc/fstab/3/opt/value
/files/etc/fstab/3/opt/value = @/var/spool
My guess is that the last one (opt/value) will be different for you.
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
virt-p2v converts physical machines to virtual machines. Boot with a
live CD or over the network (PXE) and turn machines into KVM guests.
http://libguestfs.org/virt-v2v