Is there a lightweight copy from one subvolume to another?
If I have/mnt/btrfs1/subvol1/mnt/btrfs1/subvol2
Can I copy/move data from subvol1 to subvol2 without having to physically copy all the blocks as if it were an entirely different filesystem?
reflink doesn't work for this:
gargamel [mc]# cp -av --reflink=always misc/olympic Video/misc/misc/olympic' -> Video/misc/olympic'misc/olympic/file.avi' -> Video/misc/olympic/file.avi'
cp: failed to clone Video/misc/olympic/file.avi' from misc/olympic/file.avi': Invalid cross-device link
Was there another way?
Thanks,
Marc
Signature · 4 lines
"A mouse is a device used to point at the xterm you want to type in" - A.S.R.
Microsoft is to operating systems ....
.... what McDonalds is to gourmet cooking
Home page: http://marc.merlins.org/ A message that is not in the archive (sent off-list or not yet received): CA+TwyweCeUQ7w5MuRLrfHfmJwDbChX5VodsyW8huQ9YuLOAWQA@mail.gmail.com
---------- Forwarded message ----------
From: Maxdamantus <[email protected]>
Date: 25 January 2014 21:49
Subject: Re: Is there a lightweight copy from one subvolume to another?
To: Marc MERLIN <[email protected]>
Due to what I understand is some VFS limitation, you can only reflink-copy between subvolumes under one Linux mountpoint. If /mnt/btrfs1 provides access to all subvolumes, you should be able to copy between them through that path, but you won't be able to copy them across mounts, even --bind ones.
Quoted 26 lines · Marc MERLIN
If I have
/mnt/btrfs1/subvol1/mnt/btrfs1/subvol2Can I copy/move data from subvol1 to subvol2 without having to physically copy all the blocks as if it were an entirely different filesystem?
reflink doesn't work for this:
gargamel [mc]# cp -av --reflink=always misc/olympic Video/misc/misc/olympic' ->Video/misc/olympic'misc/olympic/file.avi' ->Video/misc/olympic/file.avi'
cp: failed to cloneVideo/misc/olympic/file.avi' frommisc/olympic/file.avi': Invalid cross-device linkWas there another way?
Thanks,
Marc
--
"A mouse is a device used to point at the xterm you want to type in" - A.S.R. Microsoft is to operating systems ....
.... what McDonalds is to gourmet cooking
Home page: http://marc.merlins.org/
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Quoted 5 lines · Maxdamantus
Due to what I understand is some VFS limitation, you can only reflink-copy between subvolumes under one Linux mountpoint. If
/mnt/btrfs1provides access to all subvolumes, you should be able to copy between them through that path, but you won't be able to copy them across mounts, even--bindones.
That was exactly my understanding too.
Quoted 4 lines
Quoted 4 lines
gargamel [mc]# cp -av --reflink=always misc/olympic Video/misc/
misc/olympic' ->Video/misc/olympic'misc/olympic/file.avi' ->Video/misc/olympic/file.avi'
cp: failed to cloneVideo/misc/olympic/file.avi' frommisc/olympic/file.avi': Invalid cross-device link
The test above was done in /mnt/btrfs_pool1 and failed as shown here.
Yet
gargamel:/mnt/btrfs_pool1# btrfs subvolume list . ID 257 top level 5 path misc ID 258 top level 5 path Video ID 259 top level 5 path media ID 260 top level 5 path Sound ID 261 top level 5 path zoneminder ID 262 top level 5 path other
Aah, but it looks like this was my problem:
'Preparing to replace coreutils 8.13-3.2 (using .../coreutils_8.21-1_i386.deb) ...
now cp --reflink works as expected.
Thanks,
Marc
Signature · 4 lines
"A mouse is a device used to point at the xterm you want to type in" - A.S.R.
Microsoft is to operating systems ....
.... what McDonalds is to gourmet cooking
Home page: http://marc.merlins.org/ Quoted 25 lines · Marc MERLIN
Quoted 5 lines · Maxdamantus
Due to what I understand is some VFS limitation, you can only reflink-copy between subvolumes under one Linux mountpoint. If
/mnt/btrfs1provides access to all subvolumes, you should be able to copy between them through that path, but you won't be able to copy them across mounts, even--bindones.That was exactly my understanding too.
Quoted 4 lines
Quoted 4 lines
gargamel [mc]# cp -av --reflink=always misc/olympic Video/misc/
misc/olympic' ->Video/misc/olympic'misc/olympic/file.avi' ->Video/misc/olympic/file.avi'
cp: failed to cloneVideo/misc/olympic/file.avi' frommisc/olympic/file.avi': Invalid cross-device linkThe test above was done in
/mnt/btrfs_pool1and failed as shown here.Yet
gargamel:/mnt/btrfs_pool1# btrfs subvolume list . ID 257 top level 5 path misc ID 258 top level 5 path Video ID 259 top level 5 path media ID 260 top level 5 path Sound ID 261 top level 5 path zoneminder ID 262 top level 5 path other
Quoted 8 lines
Aah, but it looks like this was my problem:
'Preparing to replace coreutils 8.13-3.2 (using .../coreutils_8.21-1_i386.deb) ...now cp --reflink works as expected.
Thanks,
Marc
If I recall correctly you also need a kernel >= 3.7. Which I assume you have if this is now working.
Ken.