Reorganizarea subvolumelor Btrfs (Fedora, Ubuntu, Linux Mint, Debian, Arch Linux)
Când instalezi o distribuție pe Btrfs, installer-ul creează de obicei doar subvolumele minime: unul pentru rădăcină și, eventual, unul pentru /home. Funcționează, dar dacă vrei să folosești snapshot-uri ale sistemului (manual, cu Snapper sau cu Timeshift), e mai practic ca jurnalele, cache-ul și fișierele temporare să stea în subvolume separate, ca să nu ajungă în fiecare snapshot.
În acest tutorial transformăm structura implicită într-una de forma:
rădăcina → / home → /home snapshots → /.snapshots var_log → /var/log var_cache → /var/cache var_tmp → /var/tmp
Ce câștigăm:
- Un sistem mai ordonat, cu datele separate după rolul lor.
- Snapshot-uri mai mici și mai curate, fără jurnale, cache sau fișiere temporare în ele.
- Un sistem pregătit pentru snapshot-uri, fie că le faci de mână, fie cu un program dedicat.
Toată operațiunea se face dintr-un Live USB, nu din sistemul instalat.
Ce structură ai acum
Fiecare distribuție denumește altfel subvolumele, așa că pașii diferă puțin. Tabelul de mai jos arată ce creează installer-ul în mod implicit:
| Distribuție | Rădăcina (/) | /home | Alte subvolume existente |
|---|---|---|---|
| Fedora | root | home | - |
| Ubuntu, Linux Mint (și derivatele lor) | @ | @home | - |
| Debian | @rootfs | (în interiorul @rootfs) | - |
| Arch Linux (archinstall) | @ | @home | @log, @pkg, @.snapshots |
| openSUSE | @ | @/home | @/.snapshots, @/var, @/opt și altele |
openSUSE vine deja cu o structură completă de subvolume și cu Snapper configurat din instalare, deci acest tutorial nu se aplică. Nu modifica structura de pe openSUSE dacă nu știi exact ce faci.
Arch Linux instalat manual: structura depinde de ce ai creat tu. Dacă ai doar @ și @home, urmează tab-ul Ubuntu / Mint, pașii sunt identici. Tab-ul Arch Linux presupune structura creată de archinstall.
În pașii de mai jos, comenzile care diferă de la o distribuție la alta sunt puse în tab-uri. Alege tab-ul distribuției tale și urmează-l pe tot parcursul tutorialului.
Înainte de a începe
Fă un backup complet înainte de orice! Modificăm structura de montare a sistemului, iar o greșeală poate face ca sistemul să nu mai pornească.
Ai nevoie de:
- un Live USB al distribuției tale, de preferat aceeași versiune ca cea instalată sau una mai nouă (orice Live USB modern care are
btrfs-progsmerge, dar e mai simplu cu al distribuției tale); - un backup verificat (deschide-l și asigură-te că fișierele chiar sunt acolo);
- o instalare pe Btrfs cu structura implicită din tabelul de mai sus, fără alte montări speciale pe care trebuie să le păstrezi.
Reguli de bază:
- Nu rula comenzile din sistemul instalat în timp ce acesta funcționează. Toate comenzile care modifică ceva se rulează din Live USB, cu
sudo. - Verifică numele partițiilor și UUID-urile înainte să copiezi o comandă. Exemplele de mai jos folosesc
/dev/nvme0n1p2, dar la tine partiția poate avea alt nume (/dev/sda2,/dev/nvme0n1p6și așa mai departe). - Dacă ai o configurație diferită (alte nume de subvolume, alte montări), va trebui să adaptezi pașii.
Dacă Live USB-ul nu are comanda btrfs, instaleaz-o în sesiunea Live:
sudo dnf install btrfs-progs
sudo apt install btrfs-progs
sudo apt install btrfs-progs
ISO-ul oficial Arch include deja btrfs-progs.
1. Identifică partiția Btrfs
Pornește din Live USB, deschide un terminal și rulează:
lsblk -f
Un exemplu de rezultat:
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS nvme0n1 ├─nvme0n1p1 vfat FAT32 2621-F308 └─nvme0n1p2 btrfs 5fb25f96-b91a-4871-b765-1a4d7cd8b0d6
Caută partiția cu FSTYPE btrfs și notează-ți numele și UUID-ul ei, pentru că le vei folosi mai departe. Celelalte partiții (EFI, eventual /boot separat, cum are Fedora) nu ne interesează și nu le modificăm.
Dacă folosești criptare LUKS, deblochează mai întâi volumul (de exemplu cu sudo cryptsetup open /dev/nvme0n1p2 crypt) și lucrează apoi cu dispozitivul deschis din /dev/mapper/ (sau cu volumul logic, dacă instalarea folosește și LVM).
2. Montează nivelul superior Btrfs
Btrfs ține toate subvolumele într-un nivel superior (top level), care are mereu ID-ul 5. Îl montăm ca să vedem și să putem crea subvolume:
sudo mkdir -p /mnt/btrfs-top sudo mount -o subvolid=5 /dev/nvme0n1p2 /mnt/btrfs-top
Verifică subvolumele existente:
sudo btrfs subvolume list /mnt/btrfs-top
Rezultatul trebuie să corespundă cu structura distribuției tale:
ID 256 gen ... top level 5 path root ID 257 gen ... top level 5 path home
ID 256 gen ... top level 5 path @ ID 257 gen ... top level 5 path @home
ID 256 gen ... top level 5 path @rootfs
ID 256 gen ... top level 5 path @ ID 257 gen ... top level 5 path @home ID 258 gen ... top level 5 path @log ID 259 gen ... top level 5 path @pkg ID 260 gen ... top level 5 path @.snapshots
ID-urile pot fi diferite. Dacă numele nu corespund, oprește-te și adaptează comenzile de mai jos la ce ai tu.
3. Creează subvolumele noi
Fedora nu folosește prefixul @, așa că păstrăm aceeași convenție:
sudo btrfs subvolume create /mnt/btrfs-top/snapshots sudo btrfs subvolume create /mnt/btrfs-top/var_log sudo btrfs subvolume create /mnt/btrfs-top/var_cache sudo btrfs subvolume create /mnt/btrfs-top/var_tmp
sudo btrfs subvolume create /mnt/btrfs-top/@snapshots sudo btrfs subvolume create /mnt/btrfs-top/@var_log sudo btrfs subvolume create /mnt/btrfs-top/@var_cache sudo btrfs subvolume create /mnt/btrfs-top/@var_tmp
Debian nu are un subvolum separat pentru /home, așa că îl creăm și pe acesta:
sudo btrfs subvolume create /mnt/btrfs-top/@home sudo btrfs subvolume create /mnt/btrfs-top/@snapshots sudo btrfs subvolume create /mnt/btrfs-top/@var_log sudo btrfs subvolume create /mnt/btrfs-top/@var_cache sudo btrfs subvolume create /mnt/btrfs-top/@var_tmp
archinstall a creat deja @log (pentru /var/log), @pkg (pentru cache-ul pacman) și @.snapshots. Lipsesc doar /var/cache și /var/tmp:
sudo btrfs subvolume create /mnt/btrfs-top/@var_cache sudo btrfs subvolume create /mnt/btrfs-top/@var_tmp
Rolul fiecărui subvolum:
| Punct de montare | Rol |
|---|---|
/.snapshots | snapshot-urile sistemului |
/var/log | jurnalele sistemului |
/var/cache | fișierele cache |
/var/tmp | fișierele temporare care rezistă la repornire |
/home (doar Debian) | datele utilizatorilor |
De ce funcționează asta: snapshot-urile Btrfs nu sunt recursive. Un snapshot al subvolumului rădăcină nu include conținutul altor subvolume montate în interiorul lui, deci jurnalele, cache-ul și fișierele temporare rămân automat pe dinafară.
4. Montează sistemul instalat
sudo mkdir -p /mnt/root
sudo mount -o subvol=root /dev/nvme0n1p2 /mnt/root
sudo mount -o subvol=@ /dev/nvme0n1p2 /mnt/root
sudo mount -o subvol=@rootfs /dev/nvme0n1p2 /mnt/root
sudo mount -o subvol=@ /dev/nvme0n1p2 /mnt/root
Acum /mnt/root este rădăcina sistemului tău instalat (/mnt/root/etc, /mnt/root/usr, /mnt/root/var și așa mai departe).
Ești în Live USB! Nu confunda /mnt/root/var (sistemul instalat) cu /var (sistemul Live). Toate căile din pașii următori încep cu /mnt/root.
5. Pune deoparte conținutul actual
Directoarele care vor deveni puncte de montare trebuie redenumite, ca să nu pierdem nimic din ce conțin. Jurnalele vrem să le păstrăm, cache-ul se poate regenera, iar /var/tmp poate conține fișiere de care unele aplicații au nevoie și după repornire, deci nu ștergem nimic direct.
Dacă vrei să vezi cât spațiu ocupă:
sudo du -sh /mnt/root/var/log /mnt/root/var/cache /mnt/root/var/tmp
Redenumește directoarele:
sudo mv /mnt/root/var/log /mnt/root/var/log.old sudo mv /mnt/root/var/cache /mnt/root/var/cache.old sudo mv /mnt/root/var/tmp /mnt/root/var/tmp.old
sudo mv /mnt/root/var/log /mnt/root/var/log.old sudo mv /mnt/root/var/cache /mnt/root/var/cache.old sudo mv /mnt/root/var/tmp /mnt/root/var/tmp.old
Pe lângă /var, mutăm și /home, care până acum stătea în @rootfs:
sudo mv /mnt/root/home /mnt/root/home.old sudo mv /mnt/root/var/log /mnt/root/var/log.old sudo mv /mnt/root/var/cache /mnt/root/var/cache.old sudo mv /mnt/root/var/tmp /mnt/root/var/tmp.old
/var/log este deja un subvolum separat (@log), deci nu îl atingem:
sudo mv /mnt/root/var/cache /mnt/root/var/cache.old sudo mv /mnt/root/var/tmp /mnt/root/var/tmp.old
Directoarele .old le ștergem abia la final, după ce ne asigurăm că totul merge.
6. Creează punctele de montare
sudo mkdir -p /mnt/root/.snapshots sudo mkdir -p /mnt/root/var/log /mnt/root/var/cache /mnt/root/var/tmp
sudo mkdir -p /mnt/root/.snapshots sudo mkdir -p /mnt/root/var/log /mnt/root/var/cache /mnt/root/var/tmp
sudo mkdir -p /mnt/root/home /mnt/root/.snapshots sudo mkdir -p /mnt/root/var/log /mnt/root/var/cache /mnt/root/var/tmp
sudo mkdir -p /mnt/root/var/cache /mnt/root/var/tmp
La pornire, fiecare subvolum va apărea în directorul lui. De exemplu, subvolumul var_log va fi văzut de sistem ca /var/log.
7. Montează subvolumele noi
sudo mount -o subvol=snapshots /dev/nvme0n1p2 /mnt/root/.snapshots sudo mount -o subvol=var_log /dev/nvme0n1p2 /mnt/root/var/log sudo mount -o subvol=var_cache /dev/nvme0n1p2 /mnt/root/var/cache sudo mount -o subvol=var_tmp /dev/nvme0n1p2 /mnt/root/var/tmp
sudo mount -o subvol=@snapshots /dev/nvme0n1p2 /mnt/root/.snapshots sudo mount -o subvol=@var_log /dev/nvme0n1p2 /mnt/root/var/log sudo mount -o subvol=@var_cache /dev/nvme0n1p2 /mnt/root/var/cache sudo mount -o subvol=@var_tmp /dev/nvme0n1p2 /mnt/root/var/tmp
sudo mount -o subvol=@home /dev/nvme0n1p2 /mnt/root/home sudo mount -o subvol=@snapshots /dev/nvme0n1p2 /mnt/root/.snapshots sudo mount -o subvol=@var_log /dev/nvme0n1p2 /mnt/root/var/log sudo mount -o subvol=@var_cache /dev/nvme0n1p2 /mnt/root/var/cache sudo mount -o subvol=@var_tmp /dev/nvme0n1p2 /mnt/root/var/tmp
sudo mount -o subvol=@var_cache /dev/nvme0n1p2 /mnt/root/var/cache sudo mount -o subvol=@var_tmp /dev/nvme0n1p2 /mnt/root/var/tmp
Verifică:
findmnt -R /mnt/root
Toate punctele de montare noi trebuie să apară, fiecare cu subvolumul lui. Dacă lipsește vreunul, verifică din nou comanda respectivă înainte să mergi mai departe.
8. Copiază fișierele înapoi și refă permisiunile
Copiem conținutul directoarelor .old în subvolumele noi. Opțiunea -a păstrează permisiunile, proprietarii, datele de modificare și celelalte atribute, iar –reflink=auto face ca fișierele să nu fie duplicate fizic pe disc (fiind același sistem de fișiere Btrfs, copia partajează blocurile cu originalul, deci e rapidă și nu ocupă spațiu în plus).
sudo cp -a --reflink=auto /mnt/root/var/log.old/. /mnt/root/var/log/ sudo cp -a --reflink=auto /mnt/root/var/tmp.old/. /mnt/root/var/tmp/ sudo cp -a --reflink=auto /mnt/root/var/cache.old/. /mnt/root/var/cache/
sudo cp -a --reflink=auto /mnt/root/var/log.old/. /mnt/root/var/log/ sudo cp -a --reflink=auto /mnt/root/var/tmp.old/. /mnt/root/var/tmp/ sudo cp -a --reflink=auto /mnt/root/var/cache.old/. /mnt/root/var/cache/
sudo cp -a --reflink=auto /mnt/root/home.old/. /mnt/root/home/ sudo cp -a --reflink=auto /mnt/root/var/log.old/. /mnt/root/var/log/ sudo cp -a --reflink=auto /mnt/root/var/tmp.old/. /mnt/root/var/tmp/ sudo cp -a --reflink=auto /mnt/root/var/cache.old/. /mnt/root/var/cache/
Copierea lui /home poate dura, în funcție de câte date ai.
sudo cp -a --reflink=auto /mnt/root/var/tmp.old/. /mnt/root/var/tmp/ sudo cp -a --reflink=auto /mnt/root/var/cache.old/. /mnt/root/var/cache/
Copia lui /var/cache aduce și directorul gol pacman/pkg, în care se montează subvolumul @pkg. Dacă alegi să lași /var/cache gol, creează-l manual, altfel @pkg nu se va putea monta la pornire:
sudo mkdir -p /mnt/root/var/cache/pacman/pkg
Copierea lui /var/cache este opțională pe toate distribuțiile: dacă îl lași gol, aplicațiile își refac singure cache-ul.
Acum copiem permisiunile și proprietarii directoarelor vechi pe cele noi. Așa nu trebuie să știi ce permisiuni folosește distribuția ta (de exemplu, pe Ubuntu /var/log aparține grupului syslog, iar /var/tmp trebuie să aibă peste tot modul 1777):
for d in var/log var/cache var/tmp home; do if [ -d /mnt/root/$d.old ]; then sudo chown --reference=/mnt/root/$d.old /mnt/root/$d sudo chmod --reference=/mnt/root/$d.old /mnt/root/$d fi done
Bucla sare automat peste directoarele pe care nu le-ai mutat (de exemplu home pe alte distribuții decât Debian, sau var/log pe Arch).
Verifică rezultatul:
sudo stat -c '%a %U:%G %n' /mnt/root/var/log* /mnt/root/var/cache* /mnt/root/var/tmp*
Fiecare director nou trebuie să aibă aceleași permisiuni și același proprietar ca perechea lui .old.
Nu șterge încă directoarele .old!
9. Configurează /etc/fstab
Subvolumele sunt create și montate, dar sistemul trebuie să știe să le monteze singur la pornire. Editează fstab-ul sistemului instalat:
sudo nano /mnt/root/etc/fstab
Regula e simplă: copiază linia existentă pentru /, păstrează UUID-ul și opțiunile de montare și schimbă doar punctul de montare și valoarea lui subvol=. Exemplele de mai jos arată cum arată de obicei blocul Btrfs după modificare; liniile noi sunt cele de după /home.
UUID=XXXX / btrfs subvol=root,compress=zstd:1 0 0 UUID=XXXX /home btrfs subvol=home,compress=zstd:1 0 0 UUID=XXXX /.snapshots btrfs subvol=snapshots,compress=zstd:1 0 0 UUID=XXXX /var/log btrfs subvol=var_log,compress=zstd:1 0 0 UUID=XXXX /var/cache btrfs subvol=var_cache,compress=zstd:1 0 0 UUID=XXXX /var/tmp btrfs subvol=var_tmp,compress=zstd:1 0 0
UUID=XXXX / btrfs defaults,subvol=@ 0 1 UUID=XXXX /home btrfs defaults,subvol=@home 0 2 UUID=XXXX /.snapshots btrfs defaults,subvol=@snapshots 0 0 UUID=XXXX /var/log btrfs defaults,subvol=@var_log 0 0 UUID=XXXX /var/cache btrfs defaults,subvol=@var_cache 0 0 UUID=XXXX /var/tmp btrfs defaults,subvol=@var_tmp 0 0
Aici adăugăm și linia pentru /home:
UUID=XXXX / btrfs defaults,subvol=@rootfs 0 0 UUID=XXXX /home btrfs defaults,subvol=@home 0 0 UUID=XXXX /.snapshots btrfs defaults,subvol=@snapshots 0 0 UUID=XXXX /var/log btrfs defaults,subvol=@var_log 0 0 UUID=XXXX /var/cache btrfs defaults,subvol=@var_cache 0 0 UUID=XXXX /var/tmp btrfs defaults,subvol=@var_tmp 0 0
Adaugă cele două linii noi, iar linia pentru /var/cache trebuie pusă înaintea celei pentru /var/cache/pacman/pkg, pentru că @pkg se montează în interiorul lui @var_cache:
UUID=XXXX / btrfs rw,relatime,compress=zstd:3,ssd,space_cache=v2,subvol=/@ 0 0 UUID=XXXX /home btrfs rw,relatime,compress=zstd:3,ssd,space_cache=v2,subvol=/@home 0 0 UUID=XXXX /var/log btrfs rw,relatime,compress=zstd:3,ssd,space_cache=v2,subvol=/@log 0 0 UUID=XXXX /var/cache btrfs rw,relatime,compress=zstd:3,ssd,space_cache=v2,subvol=/@var_cache 0 0 UUID=XXXX /var/cache/pacman/pkg btrfs rw,relatime,compress=zstd:3,ssd,space_cache=v2,subvol=/@pkg 0 0 UUID=XXXX /var/tmp btrfs rw,relatime,compress=zstd:3,ssd,space_cache=v2,subvol=/@var_tmp 0 0 UUID=XXXX /.snapshots btrfs rw,relatime,compress=zstd:3,ssd,space_cache=v2,subvol=/@.snapshots 0 0
Opțiunile de la tine pot fi diferite (de exemplu fără compress sau cu subvolid= în plus). Dacă liniile existente conțin subvolid=, nu îl copia în liniile noi, pentru că ID-ul este diferit pentru fiecare subvolum; e suficient subvol=.
Înlocuiește XXXX cu UUID-ul partiției Btrfs notat la pasul 1. Este același UUID pe toate liniile, pentru că toate subvolumele fac parte din același sistem de fișiere.
De reținut:
- Nu modifica liniile existente pentru
/și/homedacă funcționează. Doar adaugă liniile noi. - Nu atinge liniile pentru
/boot,/boot/efi, swap sau alte partiții. - Verifică să nu ai linii duplicate.
Verifică fișierul
sudo findmnt --verify --tab-file /mnt/root/etc/fstab
Comanda verifică fișierul fără să monteze nimic. Pentru că rulează din Live USB, poate afișa avertismente legate de mediul Live, pe care le poți ignora. Contează să nu existe erori de sintaxă, linii duplicate sau referințe greșite.
Subvolume de test rămase
Dacă ai mai făcut experimente cu subvolume, s-ar putea să ai în fstab linii de genul:
UUID=XXXX /home/utilizator/test btrfs subvol=test 0 0
Dacă nu mai ai nevoie de ele, șterge linia ca sistemul să nu mai încerce să le monteze la pornire. Ștergerea liniei nu șterge și subvolumul; dacă vrei să scapi și de el, fă-o separat, după ce te asiguri că nu conține nimic important.
10. Pregătește SELinux (doar Fedora)
Fedora folosește SELinux, care controlează accesul proceselor la fișiere pe baza unor etichete (contexte de securitate). Pentru că am creat subvolume noi și am copiat fișiere, etichetele trebuie verificate. Cel mai simplu este să ceri sistemului să le refacă la următoarea pornire:
sudo touch /mnt/root/.autorelabel
Prima pornire va dura mai mult decât de obicei, în funcție de câte fișiere ai pe disc. Nu întrerupe procesul!
Nu e nevoie de nimic. Ubuntu și Mint folosesc AppArmor, care lucrează cu căi de fișiere, nu cu etichete, așa că mutarea datelor în subvolume nu îl afectează.
Nu e nevoie de nimic. Debian folosește AppArmor, care lucrează cu căi de fișiere, nu cu etichete, așa că mutarea datelor în subvolume nu îl afectează.
Nu e nevoie de nimic. Arch nu are SELinux activ în mod implicit.
11. Demontează și repornește
Asigură-te că toate modificările au fost scrise pe disc, apoi demontează totul. Opțiunea -R demontează recursiv /mnt/root și toate subvolumele montate în interiorul lui:
sync sudo umount -R /mnt/root sudo umount /mnt/btrfs-top
Dacă apare eroarea target is busy, verifică să nu ai un terminal deschis într-unul din acele directoare.
Repornește calculatorul și scoate stick-ul USB.
12. Verifică rezultatul
După pornire, deschide un terminal în sistemul instalat.
Montările
findmnt -t btrfs
Toate subvolumele trebuie să apară la locul lor. Un exemplu pentru Ubuntu:
TARGET SOURCE FSTYPE OPTIONS / /dev/nvme0n1p2[/@] btrfs rw,relatime,ssd,space_cache=v2,subvolid=256,subvol=/@ ├─/home /dev/nvme0n1p2[/@home] btrfs rw,relatime,ssd,space_cache=v2,subvolid=257,subvol=/@home ├─/.snapshots /dev/nvme0n1p2[/@snapshots] btrfs rw,relatime,ssd,space_cache=v2,subvolid=258,subvol=/@snapshots ├─/var/log /dev/nvme0n1p2[/@var_log] btrfs rw,relatime,ssd,space_cache=v2,subvolid=259,subvol=/@var_log ├─/var/cache /dev/nvme0n1p2[/@var_cache] btrfs rw,relatime,ssd,space_cache=v2,subvolid=260,subvol=/@var_cache └─/var/tmp /dev/nvme0n1p2[/@var_tmp] btrfs rw,relatime,ssd,space_cache=v2,subvolid=261,subvol=/@var_tmp
Lista completă a subvolumelor:
sudo btrfs subvolume list /
ID-urile pot fi diferite la tine; important e să apară toate subvolumele.
fstab
Acum poți verifica fstab-ul direct din sistem:
sudo findmnt --verify
Comanda nu trebuie să afișeze erori.
Rădăcina sistemului
Verifică dacă sistemul pornește în continuare din subvolumul corect:
findmnt -no SOURCE /
/dev/nvme0n1p2[/root]
/dev/nvme0n1p2[/@]
/dev/nvme0n1p2[/@rootfs]
/dev/nvme0n1p2[/@]
SELinux (doar Fedora)
După reetichetare, refă contextele pentru directoarele noi (dacă sunt deja corecte, comanda nu modifică nimic):
sudo restorecon -Rv /.snapshots /var/log /var/cache /var/tmp
Verifică dacă SELinux este în continuare activ:
getenforce
Rezultatul trebuie să fie Enforcing.
Nu e cazul.
Nu e cazul.
Nu e cazul. Verifică în schimb că pacman își găsește cache-ul:
findmnt /var/cache/pacman/pkg
Trebuie să apară subvolumul @pkg.
13. Șterge directoarele vechi
Dacă sistemul pornește normal, subvolumele sunt montate și aplicațiile merg fără probleme, poți șterge copiile vechi. Asigură-te înainte că nu mai ai nevoie de niciun fișier din ele.
sudo ls -ld /var/log.old /var/cache.old /var/tmp.old sudo rm -rf /var/log.old /var/cache.old /var/tmp.old
sudo ls -ld /var/log.old /var/cache.old /var/tmp.old sudo rm -rf /var/log.old /var/cache.old /var/tmp.old
Verifică mai întâi că datele din /home sunt toate la locul lor (deschide câteva fișiere, verifică setările aplicațiilor), apoi:
sudo ls -ld /home.old /var/log.old /var/cache.old /var/tmp.old sudo rm -rf /home.old /var/log.old /var/cache.old /var/tmp.old
sudo ls -ld /var/cache.old /var/tmp.old sudo rm -rf /var/cache.old /var/tmp.old
Gata, migrarea s-a încheiat.
Note despre programele de snapshot
- Snapper folosește subvolumul montat pe
/.snapshots. La configurare (snapper -c root create-config /), Snapper încearcă să creeze el însuși/.snapshotsși dă eroare dacă acesta există deja. Soluția obișnuită este să demontezi/.snapshots, să ștergi directorul gol, să rulezicreate-config, apoi să ștergi subvolumul creat de Snapper și să remontezi subvolumul tău cusudo mount -a. - Timeshift (folosit implicit pe Linux Mint) în modul Btrfs are nevoie de structura
@și@home, pe care am păstrat-o. Timeshift nu folosește/.snapshots, dar ignoră automat subvolumele noi, deci jurnalele, cache-ul și fișierele temporare nu vor mai intra în snapshot-urile lui. Pe Debian, Timeshift cere în continuare ca rădăcina să se numească@, așa că@rootfsnu e compatibil cu el.
Concluzie
Sistemul folosește acum subvolume separate pentru rădăcină, /home, /.snapshots, /var/log, /var/cache și /var/tmp. Snapshot-urile sistemului nu vor mai include jurnalele, cache-ul și fișierele temporare, iar sistemul e pregătit pentru Snapper sau pentru alt program de snapshot-uri.
Snapshot-urile nu înlocuiesc backup-ul! Toate subvolumele stau pe același disc, iar dacă discul se strică le pierzi pe toate deodată.
Surse
- Migrar el layout Btrfs en Fedora a una estructura limpia - El blog de Lázaro (articolul original pentru Fedora, în spaniolă)