Stačí mv
to. To je doporučený způsob v dokumentaci komunity Ubuntu.
A abychom dále objasnili, proč je to správný způsob, jak to udělat, zde je citát z průvodce btrfs sysadmin:
Snímky
Snímek je jednoduše podsvazek, který sdílí svá data (a metadata) s nějakým jiným podsvazkem pomocí COW schopností btrfs. Jakmile je vytvořen [zapisovatelný] snímek, není žádný rozdíl ve stavu mezi původním podsvazkem a novým podsvazkem. Chcete-li se vrátit zpět ke snímku, odpojte upravený původní podsvazek a připojte snímek na jeho místo. V tomto okamžiku může být původní podsvazek na přání smazán. Vzhledem k tomu, že snímek je dílčí svazek, jsou možné také snímky snímků.
je třeba si povšimnout několika důležitých věcí. Názvy:
btrfs Subvolume - nezávislý datový kontejner inside
souborový systém. Je reprezentován jako adresář stávajícího FS. Pokud vytvoříte nový podsvazek, bude prázdný, připravený k použití logického datového bloku uvnitř souborového systému. Velmi pohodlné použití tam, kde by měla být data logicky oddělena, např. různé virtuální počítače nebo různí klienti na různých podsvazcích. To umožňuje very fast
odstranění všech logický datový blok s pouhým příkazem odstranění subvolume.
btrfs Snapshot – kopie existing
subvolume se všemi jeho daty v okamžiku, kdy je snímek operačního systému hotový. Lze použít jako provozní zálohu pro vrácení nastavení nebo změn, např. vytvořit snímek dílčího svazku, provést změny (VM nebo data), otestovat, zda je vše v pořádku, po určité době odkladu snímek odstranit. Důležité upozornění:snímky lze pouze číst (-r
switch) a lze je tedy použít jako přírůstkové bloky změn FS a případně přenést na úplně jiný BTRFS!
Aktuální (2016-12-30) BTRFS omezení:
Kopírování nebo přesouvání dat mezi dílčími svazky, např. mv dir1/dataset1 dir_subvolume1/
vytváří všechna skutečná io pro kopírování dat do jiného podsvazku a v případě přesunu odebírá z původního. A velmi efektivní kopírování tuny dat pouhým vytvářením referencí a tím používání funkce COW BTRFS:
cp -a --reflink=always dir1/dataset1 dir_subvolume1/
a v případě potřeby:
rm -rf dir1/dataset1
Snímek dílčího svazku pouze pro čtení lze přejmenovat (přesunout pomocí mv
) na úrovni existujícího adresáře, ale nelze jej přejmenovat/přesunout do jiné úrovně podadresáře. např. mv /btrfs/subvol_snap1 /btrfs/.snaphots
není možné, vytváří nepříliš vysvětlenou chybu:mv: cannot move 'subvol_snap1' to '.snapshots/subvol_snap1': Read-only file system
.Abyste mohli takový snímek přesunout, musíte vytvořit nový snímek pouze pro čtení existujícího snímku pouze pro čtení do nového preferovaného umístění a poté odstranit starý:
btrfs sub snap -r /btrfs/subvol_snap1 /btrfs/.snaphots/subvol_snap1
btrfs sub del /btrfs/subvol_snap1
Jen pro snazší život:
btrfs sub list /btrfs
Doufám, že to všem novým fanouškům btrfs ušetří spoustu času :)
Pokud byste chtěli přejmenovat kořenový svazek na vnořený podsvazek, museli byste jej pořídit snímek a poté provést find $ROOT_VOL -xdev -delete
k odstranění předchozího obsahu kořenového svazku. Opačná manipulace (přejmenování podsvazku na kořenový svazek) se nezdá být možná.