I think it is so that the subvolume can be mounted with different options. You can of course have a mixed layout which might be more convenient, so that say root and home subvolumes mount with the same options, but swap mounts with different options. And the top level never gets mounted at all.
toplevel (not mounted)
+-- @ (subvolume mounted on /)
+-- home (subvolume, looks like a folder, same mount options as @)
+-- usr (folder, gets snapshotted by @)
+-- ...
+-- @swap (subvolume with different options, mounted on /swap)
I set mine up with a purely flat layout so I haven’t verified this is true, but it sounds reasonable.
Here’s the documentation I was looking at:
/dev/sdX
is a file, and bothdd
,cat
can read files in full. You can even try something likezstd
to compress it too.One of the nice things about
dd
though is you can see the progress with--status=progress