On Tue, Apr 07, 2015 at 01:08:59PM +0200, arnaud gaboury wrote: > On Tue, Apr 7, 2015 at 1:03 PM, Hugo Mills <h...@carfax.org.uk> wrote: > > On Tue, Apr 07, 2015 at 12:58:28PM +0200, arnaud gaboury wrote: [snip] > >> After more reading, it seems to me creating a top root subvolume is > >> the right thing to do: > >> # btrfs subvolume create root > >> # btrfs subvolume create root/var > >> # btrfs subvolume create root/home > >> > >> Am I right? > > > > Not how I'd recommend doing it. I'd say: > > > > # btrfs sub crea root > > # btrfs sub crea var > > # btrfs sub crea home > > > > Then fstab: > > > > LABEL=myfs / btrfs subvol=root 0 0 > > LABEL=myfs /var btrfs subvol=var 0 0 > > LABEL=myfs /home btrfs subvol=home 0 0 > > > > And finally, add this to your kernel command line in the bootloader > > to specify how to mount root: > > > > rootflags=subvol=root > > > > Hugo. > > Thank you Hugo. May you please tell why your recommendation is better > than my settings, if I thereafter make root as the default sub-volume? > I changed the root name to active and avoid any confusion:
Well, keeping the subvolumes separate from each other, rather than nested, makes it a bit easier to do things like replace one subvolume with an earlier snapshot. If you nest them, then your recovery process from (say) a screwed-up / looks a bit like this: # mount -o subvolid=0 /dev/sda1 /media/btrfs # mv /media/btrfs/root /media/btrfs/old-root # btrfs sub snap /media/btrfs/old-root/snapshots/last-root /media/btrfs/root # btrfs sub snap /media/btrfs/old-root/var /media/btrfs/root/var # btrfs sub snap /media/btrfs/old-root/home /media/btrfs/root/home # btrfs sub set-default $n /media/btrfs # umount /media/btrfs If you don't nest them, and don't use set-default, then the same recovery process would look like this: # mount -o subvolid=0 /dev/sda1 /media/btrfs # mv /media/btrfs/root /media/btrfs/old-root # mv /media/btrfs/snapshots/last-root /media/btrfs/root # umount /media/btrfs (This also explains why I wouldn't use set-default, but instead mount / using a subvol=<path> option). Now, for making the snapshots in the first place, with nested subvolumes, your snapshot script looks a bit like this: # btrfs sub snap / /snapshots/last-root and with the approach I'd recommend, it looks like this: # mount -o subvolid=0 /dev/sda1 /media/btrfs # btrfs sub snap /media/btrfs/root /media/btrfs/snapshots/last-root # umount /media/btrfs which is a little more complex, but the approach is precisely similar to the recovery process: mount the top level of the FS on /media/btrfs, manipulate the subvolumes, and then unmount. This keeps the management of subvolumes a completely separate concern from the structure of the filesystem tree. Hugo. > # btrfs subvolume list . > ID 260 gen 17 top level 5 path active > ID 261 gen 15 top level 260 path active/home > ID 262 gen 16 top level 260 path active/var > ID 263 gen 17 top level 260 path active/etc > > # btrfs subvolume set-default 260 . > > In this way, I will not need any kernel command line. > > > -- Hugo Mills | Vote early, vote often hugo@... carfax.org.uk | http://carfax.org.uk/ | PGP: E2AB1DE4 |
signature.asc
Description: Digital signature