Stillbildefunksjonen i BTRFS-filsystemet bruker Copy-on-Write (COW) -prinsippet. Så det tar ikke mye diskplass, og du kan ta øyeblikksbilder av et undervolum umiddelbart.
BTRFS -filsystemet støtter 2 typer øyeblikksbilder.
Denne artikkelen vil vise deg hvordan du kan ta skrivbare og skrivebeskyttede øyeblikksbilder av BTRFS-filsystemet Subvolumer. Jeg vil også vise deg hvordan du kan oppdatere et skrivbar øyeblikksbilde og gjenopprette filer fra et øyeblikksbilde. Jeg vil vise deg hvordan du fjerner et øyeblikksbilde også. Så la oss komme i gang.
Forutsetninger
For å prøve eksemplene på denne artikkelen,
Jeg har en harddisk på 20 GB SDB på Ubuntu -maskinen min. Jeg har laget to partisjoner SDB1 og SDB2 På denne harddisken. Jeg vil bruke partisjonen SDB1 i denne artikkelen.
$ sudo lsblk -e7Harddisken din eller SSD kan ha et annet navn enn min, det vil også partisjonene. Så sørg for å erstatte dem med dine fra nå av.
Hvis du trenger hjelp til å installere BTRFS -filsystemet på Ubuntu, sjekk artikkelen min Installer og bruk BTRF -er på Ubuntu 20.04 LTS.
Hvis du trenger hjelp til å installere BTRFS -filsystemet på Fedora, sjekk artikkelen min Installer og bruk BTRF -er på Fedora 33.
Opprette et BTRFS -filsystem
For å eksperimentere med BTRFS -subvolumer, må du lage et BTRFS -filsystem.
For å lage et BTRFS -filsystem med etiketten data på SDB1 Partisjon, kjør følgende kommando:
$ sudo mkfs.btrfs -l data /dev /sdb1Et BTRFS -filsystem bør opprettes.
Lag en katalog /data med følgende kommando:
$ sudo mkdir -v /dataÅ montere BTRFS -filsystemet som er opprettet på SDB1 partisjon i /data Katalog, kjør følgende kommando:
$ sudo mount /dev /sdb1 /dataBTRFS -filsystemet skal monteres som du kan se på skjermdumpen nedenfor.
$ df -h /dataForbereder BTRFS -filsystemet for øyeblikksbilder
I BTRF -er kan du bare ta øyeblikksbilder av BTRFS -undervolumer. Hovedroten til et BTRFS -filsystem er også et undervolum. Så du kan ta sikkerhetskopi av hele BTRFS -filsystemet, så vel som spesifikke undervolumer.
Denne delen vil opprette et BTRFS -undervolum /data/prosjekter/web1 og lag de nødvendige filene for de neste delene av denne artikkelen nedenfor. Jeg vil også lage en katalog der du kan oppbevare øyeblikksbilder. I de neste seksjonene vil jeg vise deg hvordan du tar øyeblikksbilder (skrivbar og skrivebeskyttet), oppdater et skrivbar øyeblikksbilde og gjenopprette filer fra øyeblikksbildet. Så la oss komme i gang.
Først må du lage en ny katalog /data/prosjekter følgende:
$ sudo mkdir -v /data /prosjekterLag et nytt undervolum Web1 i /data/prosjekter Katalog som følger:
$ sudo btrfs subvolume create/data/prosjekter/web1Lag en ny fil indeks.html i /data/prosjekter/web1 Subvolume som følger:
$ sudo nano/data/prosjekter/web1/indeks.htmlSkriv inn følgende koder i indeks.html fil.
Når du er ferdig, trykk + X etterfulgt av Y og For å redde indeks.html fil.
Lag en ny fil stil.CSS i /data/prosjekter/web1 Subvolume som følger:
$ sudo nano/data/prosjekter/web1/stil.CSSSkriv inn følgende koder i stil.CSS fil.
H1Når du er ferdig, trykk + X etterfulgt av Y og For å redde stil.CSS fil.
Nå, den /data/prosjekter/web1 Subvolume har indeks.html og stil.CSS fil.
$ ls -lh/data/prosjekter/web1Jeg vil beholde alle øyeblikksbildene av dette BTRFS -filsystemet i /data/.øyeblikksbilder katalog.
Opprett /data/.øyeblikksbilder Katalog med følgende kommando:
$ sudo mkdir -v /data /.øyeblikksbilderTar øyeblikksbilder av et undervolum
Å ta et øyeblikksbilde av /data/prosjekter/web1 undervolume inn i /data/.Øyeblikksbilder/Web1-2020-12-25 Katalog (vil bli opprettet automatisk), kjør følgende kommando:
$ sudo btrfs subvolume øyeblikksbilde/data/prosjekter/web1/data/.Øyeblikksbilder/Web1-2020-12-25Et øyeblikksbilde av /data/prosjekter/web1 Katalog skal opprettes på /data/.Øyeblikksbilder/Web1-2020-12-25 katalog.
Som du kan se på skjermbildet nedenfor, et nytt undervolum .Øyeblikksbilder/Web1-2020-12-25 er skapt. Et øyeblikksbilde er faktisk et undervolum.
$ sudo btrfs subvolume liste /dataDu kan se mer informasjon om øyeblikksbildet du har opprettet i /data/.Øyeblikksbilder/Web1-2020-12-25 Katalog som følger:
$ sudo btrfs subvolume show /data /.Øyeblikksbilder/Web1-2020-12-25Som du kan se, alle filene som er i /data/prosjekter/web1 Subvolume er i /data/.Øyeblikksbilder/Web1-2020-12-25 øyeblikksbilde.
$ tre -A /dataGjenopprette filer fra øyeblikksbilder
I denne delen skal jeg vise deg hvordan du gjenoppretter filer fra BTRFS -øyeblikksbilder.
Først skal jeg vise deg hvordan du gjenoppretter en enkelt fil fra øyeblikksbildet.
Åpne /data/prosjekter/web1/indeks.html Fil med Nano Text Editor som følger:
$ sudo nano/data/prosjekter/web1/indeks.htmlGjør noen endringer du ønsker.
Når du er ferdig, trykk + X etterfulgt av Y og For å lagre filen.
Som du kan se, det viktigste indeks.html filen er forskjellig fra indeks.html fil i øyeblikksbildet.
$ katt/data/prosjekter/web1/indeks.htmlVi har gjort endringene i hoved indeks.html filen er uønsket, og vi ønsker å gjenopprette indeks.html fil fra øyeblikksbildet.
Du kan gjenopprette indeks.html Fil fra øyeblikksbildet som følger:
$ sudo cp -v /data /.Øyeblikksbilder/Web1-2020-12-25/indeks.HTML/Data/Projects/Web1/Index.htmlSom du kan se, indeks.html Filen er gjenopprettet fra øyeblikksbildet.
$ katt/data/prosjekter/web1/indeks.htmlLa oss nå se hvordan du kan gjenopprette alle filene/katalogene fra øyeblikksbildet.
Fjern alle filene fra /data/prosjekter/web1 øyeblikksbilde som følger:
$ sudo rm -rv/data/prosjekter/web1/*For å gjenopprette alle filene/katalogene fra øyeblikksbildet, kjør følgende kommando:
$ sudo rsync -avz /data /.Snapshots/Web1-2020-12-25//data/prosjekter/Web1/Som du ser blir filene/katalogene gjenopprettet fra øyeblikksbildet.
$ ls -lh/data/prosjekter/web1Til slutt, la oss se hvordan du kan gjenopprette filer/kataloger fra øyeblikksbildet i speilmodus. I speilmodus vil undervolumets filer/kataloger være de samme som i øyeblikksbildet. Hvis det er noen filer/kataloger i undervolumet som ikke er tilgjengelige i øyeblikksbildet, vil de bli fjernet.
La oss opprette en ny fil i undervolumet for å skille filtreet fra øyeblikksbildet.
Lage en Readme.tekst fil i /data/prosjekter/web1 Subvolume som følger:
$ ekko "Hello World 5" | sudo tee/data/prosjekter/web1/readme.tekstSom du kan se, filtreet til /data/prosjekter/web1 Subvolume er forskjellig fra /data/.Øyeblikksbilder/Web1-2020-12-25 øyeblikksbilde.
$ tre -A /dataÅ gjenopprette filene/katalogene fra /data/.Øyeblikksbilder/Web1-2020-12-25 øyeblikksbilde til /data/prosjekter/web1 Subvolume i speilmodus, kjør følgende kommando:
$ sudo rsync -avz -delete /data /.Snapshots/Web1-2020-12-25//data/prosjekter/Web1/Alle filene/katalogene til /data/prosjekter/web1 Subvolume skal gjenopprettes (i speilmodus) fra /data/.Øyeblikksbilder/Web1-2020-12-25 øyeblikksbilde.
Filtreet til /data/prosjekter/web1 Subvolume og /data/.Øyeblikksbilder/Web1-2020-12-25 øyeblikksbilde skal være det samme.
Som du ser, indeksen.HTML -fil og stil.CSS -filinnhold er det samme i /data/prosjekter/web1 Subvolume og /data/.Øyeblikksbilder/Web1-2020-12-25 øyeblikksbilde.
Innholdet i indeks.html og stil.CSS fil i /data/prosjekter/web1 Subvolume.
$ katt/data/prosjekter/web1/indeks.htmlInnholdet i indeks.html og stil.CSS fil i /data/.Øyeblikksbilder/Web1-2020-12-25 øyeblikksbilde.
$ katt/data/prosjekter/web1/indeks.htmlOppdaterer et øyeblikksbilde
Som standard tar BTRFS -filsystemet skrivbare øyeblikksbilder. Et BTRFS -øyeblikksbilde er akkurat som et undervolum. Så du kan endre/oppdatere filene/katalogene til et skrivbar øyeblikksbilde.
La oss oppdatere indeks.html fil i /data/prosjekter/web1 Subvolume.
Først, åpne indeks.html fil fra /data/prosjekter/web1 undervolum med Nano Text Editor som følger:
$ sudo nano/data/prosjekter/web1/indeks.htmlGjør noen endringer du ønsker. Når du er ferdig, trykk + X etterfulgt av Y og For å redde indeks.html fil.
Som du ser, indeksen.HTML -fil av /data/prosjekter/web1 Subvolume er forskjellig fra /data/.Øyeblikksbilder/Web1-2020-12-25 øyeblikksbilde.
$ katt/data/prosjekter/web1/indeks.htmlDu vil beholde indeks.html fil av /data/prosjekter/web1 Subvolume.
For å oppdatere indeks.html fil i /data/.Øyeblikksbilder/Web1-2020-12-25 øyeblikksbilde, kjør følgende kommando:
$ sudo cp -v/data/prosjekter/web1/indeks.html /data /.Øyeblikksbilder/Web1-2020-12-25/indeks.htmlSom du kan se, indeks.html fil av /data/.Øyeblikksbilder/Web1-2020-12-25 Snapshot er oppdatert.
Å oppdatere et øyeblikksbilde er like enkelt som å kopiere nye filer til øyeblikksbildet.
Tar du skrivebeskyttet øyeblikksbilder av et undervolum
Noen ganger vil du ikke at øyeblikksbildene du har tatt, skal oppdateres på noen måte. I så fall kan du opprette stille stillbilder.
For eksempel for å lage et skrivebeskyttet øyeblikksbilde /data/.Øyeblikksbilder/Web1-2020-12-26 av /data/prosjekter/web1 Subvolume, kjør følgende kommando:
$ sudo btrfs subvolume snapshot -r/data/prosjekter/web1/data/.Øyeblikksbilder/Web1-2020-12-26Som du ser, et nytt undervolum .Øyeblikksbilder/Web1-2020-12-26 er skapt.
$ sudo btrfs subvolume liste /dataSom du kan se, øyeblikksbildet /data/.Øyeblikksbilder/Web1-2020-12-26 er skrivebeskyttet.
$ sudo btrfs subvolume show /data /.Øyeblikksbilder/Web1-2020-12-26La oss oppdatere indeks.html fil fra /data/prosjekter/web1 Subvolume.
For å gjøre det, åpne indeks.html fil fra /data/prosjekter/web1 undervolum med Nano Text Editor som følger:
$ sudo nano/data/prosjekter/web1/indeks.htmlGjør noen endringer du ønsker. Når du er ferdig, trykk + X etterfulgt av Y og For å lagre endringene.
Som du kan se, indeks.html i /data/prosjekter/web1 Subvolume er forskjellig fra /data/.Øyeblikksbilder/Web1-2020-12-26 øyeblikksbilde.
$ katt/data/prosjekter/web1/indeks.htmlLa oss prøve å oppdatere indeks.html fil i /data/.Øyeblikksbilder/Web1-2020-12-26 øyeblikksbilde.
$ sudo cp -v/data/prosjekter/web1/indeks.html /data /.Øyeblikksbilder/Web1-2020-12-26/indeks.htmlSom du ser, kan du ikke oppdatere indeks.html fil av /data/.Øyeblikksbilder/Web1-2020-12-26 øyeblikksbilde fordi øyeblikksbildet er skrivebeskyttet.
Fjerne et øyeblikksbilde
Jeg har fortalt deg tidligere at et BTRFS -øyeblikksbilde er som et undervolum. Så du kan fjerne et BTRFS -øyeblikksbilde akkurat som du fjerner et BTRFS -undervolum. Samme kommando.
Slik er filtreet til BTRFS -filsystemet montert på /data Katalogen ser ut for øyeblikket.
$ tre -A /dataLa oss fjerne .Øyeblikksbilder/Web1-2020-12-25 øyeblikksbilde.
$ sudo btrfs subvolume liste /dataÅ fjerne /data/.Øyeblikksbilder/Web1-2020-12-25 øyeblikksbilde, kjør følgende kommando:
$ sudo btrfs subvolume slett /data /.Øyeblikksbilder/Web1-2020-12-25Som du kan se, øyeblikksbildet .Øyeblikksbilder/Web1-2020-12-25 er ikke mer.
$ sudo btrfs subvolume liste /dataSom du kan se, filene/katalogene til /data/.Øyeblikksbilder/Web1-2020-12-25 øyeblikksbilde fjernes også.
$ tre -A /dataKonklusjon
Denne artikkelen har vist deg hvordan du kan ta skrivbare og skrivebeskyttede øyeblikksbilder av BTRFS-filsystemet Subvolumer. Jeg har også vist deg hvordan du kan oppdatere et skrivbar øyeblikksbilde og gjenopprette filer fra et øyeblikksbilde. Jeg har vist deg hvordan du også fjerner et BTRFS -øyeblikksbilde. Denne artikkelen skal hjelpe deg i gang med BTRFS -øyeblikksbildefunksjonen.