Značajka snimke Btrfs datotečnog sustava koristi načelo Copy-on-Write (CoW). Dakle, ne zauzima puno prostora na disku i možete odmah snimiti snimke subvoluma.
Datotečni sustav Btrfs podržava 2 vrste snimki.
- Snimke za pisanje: Ako napravite snimak za snimanje, datoteke / direktorije tog snimka možete kasnije izmijeniti. Ovo je zadana vrsta snimke datotečnog sustava Btrfs.
- Snimke samo za čitanje: Ako napravite snimku samo za čitanje, datoteke / direktorije te snimke ne možete kasnije mijenjati.
Ovaj će vam članak pokazati kako napraviti snimke vaših podsvjesa datotečnog sustava Btrfs koji se mogu zapisati i koji su samo za čitanje. Pokazat ću vam i kako ažurirati snimak koji se može zapisati i oporaviti datoteke iz snimke. Pokazat ću vam i kako ukloniti snimku. Pa, krenimo.
Preduvjeti
Da isprobate primjere ovog članka,
- Na računalu morate imati instaliran sustav datoteka Btrfs.
- Morate imati tvrdi disk ili SSD s najmanje 1 besplatnom particijom (bilo koje veličine).
Imam tvrdi disk od 20 GB sdb na mom Ubuntu stroju. Stvorio sam 2 particije sdb1 i sdb2 na ovom tvrdom disku. Koristit ću particiju sdb1 u ovom članku.
$ sudo lsblk -e7
Tvrdi disk ili SSD mogu se razlikovati od mojih, pa tako i particije. Pazite da ih od sada zamijenite svojim.
Ako vam je potrebna bilo kakva pomoć pri instaliranju datotečnog sustava Btrfs na Ubuntu, pogledajte moj članak Instalirajte i koristite Btrfs na Ubuntu 20.04 LTS.
Ako vam je potrebna bilo kakva pomoć oko instaliranja datotečnog sustava Btrfs na Fedori, pogledajte moj članak Instalirajte i koristite Btrfs na Fedori 33.
Stvaranje Btrfs datotečnog sustava
Da biste eksperimentirali s Btrfs podzvukovima, morate stvoriti Btrfs datotečni sustav.
Da biste stvorili Btrfs datotečni sustav s oznakom podaci na sdb1 particiju, pokrenite sljedeću naredbu:
$ sudo mkfs.btrfs -L data / dev / sdb1
Treba stvoriti Btrfs datotečni sustav.
Stvorite direktorij /podaci sa sljedećom naredbom:
$ sudo mkdir -v / podaci
Za montiranje Btrfs datotečnog sustava stvorenog na sdb1 particija u /podaci direktorija, pokrenite sljedeću naredbu:
$ sudo mount / dev / sdb1 / data
Datotečni sustav Btrfs trebao bi biti montiran kao što možete vidjeti na snimci zaslona u nastavku.
$ df -h / podataka
Priprema datotečnog sustava Btrfs za snimke
U Btrfsu možete snimati snimke samo Btrfs podvoluma. Glavni korijen Btrfs datotečnog sustava također je subvolumen. Dakle, možete uzeti sigurnosnu kopiju cijelog Btrfs datotečnog sustava, kao i određenih potvoluma.
Ovaj će odjeljak stvoriti Btrfs podzvuk / data / projects / web1 i stvorite potrebne datoteke za sljedeće odjeljke ovog članka u nastavku. Također ću stvoriti direktorij u kojem možete čuvati svoje snimke. U sljedećim odjeljcima pokazat ću vam kako napraviti snimke (za pisanje i samo za čitanje), ažurirati snimku koja se može zapisati i oporaviti datoteke iz snimke. Pa, krenimo.
Prvo stvorite novi direktorij / podaci / projekti kako slijedi:
$ sudo mkdir -v / podaci / projekti
Stvorite novi subvolumen web1 u / podaci / projekti direktorij kako slijedi:
$ sudo btrfs potzvuk create / data / projects / web1
Stvorite novu datoteku indeks.html u / data / projects / web1 subvoluma kako slijedi:
$ sudo nano / data / projects / web1 / index.html
Upišite sljedeće retke kodova u indeks.html datoteka.
Pozdrav svijetu 4
Kada završite, pritisnite
Stvorite novu datoteku stil.css u / data / projects / web1 subvoluma kako slijedi:
$ sudo nano / data / projects / web1 / style.css
Upišite sljedeće retke kodova u stil.css datoteka.
h1boja: zelena;
Kada završite, pritisnite
Sada, / data / projects / web1 subvolumen ima indeks.html i stil.css datoteka.
$ ls -lh / data / projects / web1
Želim zadržati sve snimke ovog datotečnog sustava Btrfs u /podaci/.snimke imenik.
Stvorite /podaci/.snimke direktorij sa sljedećom naredbom:
$ sudo mkdir -v / podaci /.snimke
Snimanje podsluša
Da napravite snimku / data / projects / web1 subvoluma u /podaci/.snimke / web1-2020-12-25 direktorij (stvorit će se automatski), pokrenite sljedeću naredbu:
$ sudo btrfs snimka podslušaja / data / projects / web1 / data /.snimke / web1-2020-12-25
Snimka / data / projects / web1 direktorij treba stvoriti na /podaci/.snimke / web1-2020-12-25 imenik.
Kao što možete vidjeti na donjoj snimci zaslona, novi subvolumen .snimke / web1-2020-12-25 je stvorena. Snimka je zapravo subvolumen.
$ sudo btrfs popis / podatak volumena
Više informacija o snimci koju ste stvorili možete vidjeti u /podaci/.snimke / web1-2020-12-25 direktorij kako slijedi:
$ sudo btrfs subvolumen show / data /.snimke / web1-2020-12-25
Kao što vidite, sve datoteke koje se nalaze u / data / projects / web1 subvoluma su u /podaci/.snimke / web1-2020-12-25 snimak.
$ stablo -a / podaci
Oporavak datoteka sa snimaka
U ovom odjeljku pokazat ću vam kako oporaviti datoteke iz Btrfs snimaka.
Prvo ću vam pokazati kako oporaviti jednu datoteku iz snimke.
Otvori / data / projects / web1 / index.html datoteka s uređivačem nano teksta kako slijedi:
$ sudo nano / data / projects / web1 / index.html
Unesite željene promjene.
Kada završite, pritisnite
Kao što vidite, glavni indeks.html datoteka se razlikuje od datoteke indeks.html datoteku u snimci.
$ cat / data / projects / web1 / index.html$ mačka / podaci /.snimke / web1-2020-12-25 / index.html
Izmijenili smo glavno indeks.html datoteke su neželjene i želimo oporaviti datoteku indeks.html datoteka sa snimke.
Možete vratiti indeks.html datoteka sa snimke kako slijedi:
$ sudo cp -v / podaci /.snimke / web1-2020-12-25 / index.html / data / projects / web1 / index.html
Kao što vidite, indeks.html datoteka se vraća iz snimke.
$ cat / data / projects / web1 / index.html$ mačka / podaci /.snimke / web1-2020-12-25 / index.html
Sada, da vidimo kako oporaviti sve datoteke / direktorije sa snimke.
Uklonite sve datoteke s / data / projects / web1 snimka kako slijedi:
$ sudo rm -rv / data / projects / web1 / *
Za oporavak svih datoteka / direktorija sa snimke pokrenite sljedeću naredbu:
$ sudo rsync -avz / data /.snimke / web1-2020-12-25 / / data / projects / web1 /
Kao što vidite, datoteke / direktoriji se obnavljaju sa snimke.
$ ls -lh / data / projects / web1
Napokon, pogledajmo kako oporaviti datoteke / direktorije sa snimke u zrcalnom načinu. U zrcalnom načinu datoteke / direktoriji podvoluma bit će iste kao u snimci. Ako u potzvuku postoje datoteke / direktoriji koji nisu dostupni na snimci, uklonit će se.
Stvorimo novu datoteku u potvolumu kako bismo razlikovali stablo datoteka od snimke.
Stvoriti Pročitaj me.txt datoteku u / data / projects / web1 subvoluma kako slijedi:
$ echo "hello world 5" | sudo tee / podaci / projekti / web1 / README.txt
Kao što vidite, stablo datoteka / data / projects / web1 subvolumen se razlikuje od /podaci/.snimke / web1-2020-12-25 snimak.
$ stablo -a / podaci
Da biste vratili datoteke / direktorije s /podaci/.snimke / web1-2020-12-25 snimka na / data / projects / web1 subvoluma u zrcalnom načinu, pokrenite sljedeću naredbu:
$ sudo rsync -avz --delete / data /.snimke / web1-2020-12-25 / / data / projects / web1 /
Sve datoteke / direktoriji / data / projects / web1 subvolumen bi trebao biti obnovljen (u zrcalnom načinu) s /podaci/.snimke / web1-2020-12-25 snimak.
Stablo datoteka / data / projects / web1 subvolumen i /podaci/.snimke / web1-2020-12-25 snimka bi trebala biti ista.
Kao što vidite, indeks.html datoteka i stil.Sadržaj css datoteke isti je u / data / projects / web1 subvolumen i /podaci/.snimke / web1-2020-12-25 snimak.
Sadržaj indeks.html i stil.css datoteku u / data / projects / web1 subvolumen.
$ cat / data / projects / web1 / index.html$ mačka / podaci / projekti / web1 / stil.css
Sadržaj indeks.html i stil.css datoteku u /podaci/.snimke / web1-2020-12-25 snimak.
$ cat / data / projects / web1 / index.html$ mačka / podaci / projekti / web1 / stil.css
Ažuriranje snimke
Prema zadanim postavkama, datotečni sustav Btrfs izrađuje snimljive snimke. Btrfs snimka je poput podskuha. Dakle, možete mijenjati / ažurirati datoteke / direktorije snimke snimke.
Ažurirajmo indeks.html datoteku u / data / projects / web1 subvolumen.
Prvo otvorite indeks.html datoteka iz / data / projects / web1 subvoluma s nano uređivač teksta kako slijedi:
$ sudo nano / data / projects / web1 / index.html
Unesite željene promjene. Kada završite, pritisnite
Kao što vidite, indeks.html datoteku / data / projects / web1 subvolumen se razlikuje od /podaci/.snimke / web1-2020-12-25 snimak.
$ cat / data / projects / web1 / index.html$ mačka / podaci /.snimke / web1-2020-12-25 / index.html
Želite zadržati indeks.html kartoteka / data / projects / web1 subvolumen.
Ažurirati indeks.html datoteku u /podaci/.snimke / web1-2020-12-25 snapshot, pokrenite sljedeću naredbu:
$ sudo cp -v / data / projects / web1 / index.html / podaci /.snimke / web1-2020-12-25 / index.html
Kao što vidite, indeks.html kartoteka /podaci/.snimke / web1-2020-12-25 snimka je ažurirana.
Ažuriranje snimke lako je poput kopiranja novih datoteka na snimku.
Snimanje snimki potzvuka samo za čitanje
Ponekad ne želite da se snimke koje ste snimili ni na koji način ažuriraju. U tom slučaju možete stvoriti snimke samo za čitanje.
Na primjer, za stvaranje snimke samo za čitanje /podaci/.snimke / web1-2020-12-26 od / data / projects / web1 subvoluma, pokrenite sljedeću naredbu:
$ sudo btrfs snimka podslušaja -r / data / projects / web1 / data /.snimke / web1-2020-12-26
Kao što vidite, novi subvolumen .snimke / web1-2020-12-26 je stvorena.
$ sudo btrfs popis / podatak volumena
Kao što vidite, snimka /podaci/.snimke / web1-2020-12-26 je samo za čitanje.
$ sudo btrfs subvolumen show / data /.snimke / web1-2020-12-26
Ažurirajmo indeks.html datoteka iz / data / projects / web1 subvolumen.
Da biste to učinili, otvorite indeks.html datoteka iz / data / projects / web1 subvoluma s nano uređivač teksta kako slijedi:
$ sudo nano / data / projects / web1 / index.html
Unesite željene promjene. Kada završite, pritisnite
Kao što vidite, indeks.html u / data / projects / web1 subvolumen se razlikuje od /podaci/.snimke / web1-2020-12-26 snimak.
$ cat / data / projects / web1 / index.html$ mačka / podaci /.snimke / web1-2020-12-26 / index.html
Pokušajmo ažurirati indeks.html datoteku u /podaci/.snimke / web1-2020-12-26 snimak.
$ sudo cp -v / data / projects / web1 / index.html / podaci /.snimke / web1-2020-12-26 / index.html
Kao što vidite, ne možete ažurirati indeks.html kartoteka /podaci/.snimke / web1-2020-12-26 snimak jer je snimak samo za čitanje.
Uklanjanje snimke
Rekao sam vam ranije da je Btrfs snimka poput subvoluma. Dakle, možete ukloniti Btrfs snimku baš kao što uklonite Btrfs potzvuk. Ista naredba.
Ovo je način na koji je stablo datoteka Btrfs datotečnog sustava postavljeno na /podaci direktorij izgleda trenutno.
$ stablo -a / podaci
Uklonimo .snimke / web1-2020-12-25 snimak.
$ sudo btrfs popis / podatak volumena
Da biste uklonili /podaci/.snimke / web1-2020-12-25 snapshot, pokrenite sljedeću naredbu:
$ sudo btrfs subvolume delete / data /.snimke / web1-2020-12-25
Kao što vidite, snimka .snimke / web1-2020-12-25 više nema.
$ sudo btrfs popis / podatak volumena
Kao što vidite, datoteke / direktoriji /podaci/.snimke / web1-2020-12-25 uklanja se i snimka.
$ stablo -a / podaci
Zaključak
Ovaj vam je članak pokazao kako možete snimiti snimke podsvjesa datotečnog sustava Btrfs koji se mogu zapisati i koje su samo za čitanje. Također sam vam pokazao kako ažurirati snimak koji se može zapisati i oporaviti datoteke iz snimke. Pokazao sam vam kako ukloniti i Btrfs snimku. Ovaj bi vam članak trebao pomoći da započnete sa značajkom snimke Btrfs.