Jak używać migawek BTRFS

Jak używać migawek BTRFS
BTRFS FileSystem ma wbudowaną obsługę migawki na poziomie systemu plików. Możesz utworzyć podwolu w systemie plików BTRFS i zrobić migawki plików/katalogów w tym podwolu. Wykonanie migawki podwole zapisuje stan plików/katalogów w tym podwolu. Możesz odzyskać dowolne pliki/katalogi podwolu z migawki na wypadek, gdyby go potrzebujesz.

Funkcja migawki systemu plików BTRFS wykorzystuje zasadę kopii na zapis. Tak więc nie zajmuje dużo miejsca na dysku i możesz natychmiast zrobić migawki podwole.

System plików BTRFS obsługuje 2 typy migawek.

  1. Zapisywanie migawek: Jeśli weźmiesz wtulny migawkę, możesz później zmodyfikować pliki/katalogi tego migawki. Jest to domyślny typ migawki systemu plików BTRFS.
  2. Migawki tylko do odczytu: Jeśli weźmiesz migawkę tylko do odczytu, nie możesz później zmodyfikować plików/katalogów tego migawki.

W tym artykule pokaże, jak zrobić migawki zapisane i tylko do odczytu subwolumów systemu plików BTRFS. Pokażę również, jak zaktualizować zapisywalny migawkę i odzyskać pliki z migawki. Pokażę ci, jak usunąć migawkę. Więc zacznijmy.

Wymagania wstępne

Aby wypróbować przykłady tego artykułu,

  • Musisz mieć instalowany system plików BTRFS na komputerze.
  • Musisz mieć dysk twardy lub dysk SSD z co najmniej 1 wolną partycją (dowolnego rozmiaru).

Mam dysk twardy 20 GB SDB na mojej maszynie Ubuntu. Stworzyłem 2 partycje SDB1 I SDB2 na tym dysku twardym. Użyję partycji SDB1 w tym artykule.

$ sudo lsblk -e7

Twój dysk twardy lub dysk SSD mogą mieć inną nazwę niż moje, podobnie jak partycje. Więc upewnij się, że zastąp je od teraz.

Jeśli potrzebujesz pomocy w instalacji systemu plików BTRFS na Ubuntu, sprawdź mój artykuł Zainstaluj i użyj BTRFS na Ubuntu 20.04 LTS.

Jeśli potrzebujesz pomocy w instalacji systemu plików BTRFS w Fedora, sprawdź mój artykuł Zainstaluj i użyj BTRFS na Fedora 33.

Tworzenie systemu plików BTRFS

Aby eksperymentować z subwolumami BTRFS, musisz utworzyć system plików BTRFS.

Aby utworzyć system plików BTRFS z etykietą dane na SDB1 partycja, uruchom następujące polecenie:

$ sudo mkfs.BTRFS -L Data /Dev /SDB1

Należy utworzyć system plików BTRFS.

Utwórz katalog /dane Z następującym poleceniem:

$ sudo mkdir -v /dane

Aby zamontować system plików BTRFS utworzony na SDB1 partycja w /dane Directory, uruchom następujące polecenie:

$ sudo mount /dev /sdb1 /dane

System plików BTRFS powinien być zamontowany, jak widać na zrzucie ekranu poniżej.

$ df -h /dane

Przygotowanie systemu plików BTRFS do migawek

W BTRFS możesz zrobić migawki tylko podwoluminy BTRFS. Głównym źródłem systemu plików BTRFS jest również podwolu. Możesz więc wykonać kopię zapasową całego systemu plików BTRFS, a także określonych podwolumów.

W tej sekcji utworzy subvolume BTRFS /Data/Projects/Web1 i utwórz niezbędne pliki dla następnych sekcji tego artykułu poniżej. Utworzę również katalog, w którym możesz zachować migawki. W następnych sekcjach pokażę, jak zrobić migawki (zapis i tylko do odczytu), zaktualizować zapisywalne migawkę i odzyskać pliki z migawki. Więc zacznijmy.

Najpierw utwórz nowy katalog /Data/Projects następująco:

$ sudo mkdir -v /dane /projekty

Utwórz nowy podvolume Web1 w /Data/Projects katalog w następujący sposób:

$ sudo btrfs subvolume tworzenie/dane/projekty/Web1

Utwórz nowy plik indeks.html w /Data/Projects/Web1 subvolume w następujący sposób:

$ sudo nano/data/projekty/web1/indeks.html

Wpisz w następujących wierszach kodów w indeks.html plik.




Strona internetowa demo



Witaj świat 4



Po zakończeniu naciśnij + X śledzony przez Y I Aby uratować indeks.html plik.

Utwórz nowy plik styl.CSS w /Data/Projects/Web1 subvolume w następujący sposób:

$ sudo nano/data/projekty/web1/styl.CSS

Wpisz w następujących wierszach kodów w styl.CSS plik.

H1
Zielony kolor;

Po zakończeniu naciśnij + X śledzony przez Y I Aby uratować styl.CSS plik.

Teraz /Data/Projects/Web1 subvolume ma indeks.html I styl.CSS plik.

$ LS -LH/Data/Projects/Web1

Chcę zachować wszystkie migawki tego systemu plików BTRFS w /dane/.migawki informator.

Utwórz /dane/.migawki Katalog z następującym poleceniem:

$ sudo mkdir -v /dane /.migawki

Robienie migawek podwposu

Zrobić migawkę /Data/Projects/Web1 subvolume do /dane/.Migawki/Web1-2020-12-25 katalog (zostanie utworzony automatycznie), uruchom następujące polecenie:

$ sudo btrfs subvolume migawka/dane/projekty/web1/data/.Migawki/Web1-2020-12-25

Migawka /Data/Projects/Web1 katalog powinien zostać utworzony na /dane/.Migawki/Web1-2020-12-25 informator.

Jak widać na zrzucie ekranu poniżej, nowy podwobieg .Migawki/Web1-2020-12-25 jest tworzone. Migawka to w rzeczywistości subwir.

$ sudo btrfs lista /dane

Możesz zobaczyć więcej informacji na temat migawki, którą utworzyłeś w /dane/.Migawki/Web1-2020-12-25 katalog w następujący sposób:

$ sudo btrfs subvolume pokaż /dane /.Migawki/Web1-2020-12-25

Jak widać, wszystkie pliki, które są w /Data/Projects/Web1 subvolume są w /dane/.Migawki/Web1-2020-12-25 migawka.

$ Tree -a /Data

Odzyskiwanie plików z migawek

W tej sekcji pokażę Ci, jak odzyskać pliki z migawek BTRFS.

Najpierw pokażę ci, jak odzyskać jeden plik z migawki.

Otworzyć /Data/Projects/Web1/Indeks.html Plik z nano edytorem tekstu w następujący sposób:

$ sudo nano/data/projekty/web1/indeks.html

Dokonaj wszelkich zmian.

Po zakończeniu naciśnij + X śledzony przez Y I Aby zapisać plik.

Jak widać, główny indeks.html Plik różni się od indeks.html Plik w migawce.

$ cat/data/projekty/web1/indeks.html
$ cat /data /.migawki/Web1-2020-12-25/indeks.html

Wprowadziliśmy zmiany w Main indeks.html Plik są niechciane i chcemy odzyskać indeks.html Plik z migawki.

Możesz przywrócić indeks.html Plik z migawki w następujący sposób:

$ sudo cp -v /dane /.migawki/Web1-2020-12-25/indeks.HTML/Data/Projects/Web1/Indeks.html

Jak widać, indeks.html Plik jest przywrócony z migawki.

$ cat/data/projekty/web1/indeks.html
$ cat /data /.migawki/Web1-2020-12-25/indeks.html

Teraz zobaczmy, jak odzyskać wszystkie pliki/katalogi z migawki.

Usuń wszystkie pliki z /Data/Projects/Web1 Migawka w następujący sposób:

$ sudo rm -rv/data/projekty/web1/*

Aby odzyskać wszystkie pliki/katalogi z migawki, uruchom następujące polecenie:

$ sudo rsync -Avz /Data /.migawki/Web1-2020-12-25//data/projekty/web1/

Jak widać, pliki/katalogi są przywracane z migawki.

$ LS -LH/Data/Projects/Web1

Na koniec zobaczmy, jak odzyskać pliki/katalogi z migawki w trybie lustrzanym. W trybie lustrzanym pliki/katalogi subvolume będą takie same jak w migawce. Jeśli w podwolu, które są jakieś pliki/katalogi, które nie są dostępne w migawce, zostaną one usunięte.

Utwórzmy nowy plik w podwolu, aby odróżnić drzewo plików od migawki.

Stwórz Readme.tekst plik w /Data/Projects/Web1 subvolume w następujący sposób:

$ echo „Hello World 5” | sudo tee/data/projekty/web1/readme.tekst

Jak widać, drzewo plików /Data/Projects/Web1 subvolume różni się od /dane/.Migawki/Web1-2020-12-25 migawka.

$ Tree -a /Data

Aby przywrócić pliki/katalogi z /dane/.Migawki/Web1-2020-12-25 migawka do /Data/Projects/Web1 subvolume w trybie lustrzanym uruchom następujące polecenie:

$ sudo rsync -avz - -delete /data /.migawki/Web1-2020-12-25//data/projekty/web1/

Wszystkie pliki/katalogi /Data/Projects/Web1 subvolume należy przywrócić (w trybie lustrzanym) z /dane/.Migawki/Web1-2020-12-25 migawka.

Drzewo plików /Data/Projects/Web1 subvolume i /dane/.Migawki/Web1-2020-12-25 Migawka powinna być taka sama.

Jak widać, indeks.plik i styl HTML.Zawartość pliku CSS jest taka sama w /Data/Projects/Web1 subvolume i /dane/.Migawki/Web1-2020-12-25 migawka.

Treść indeks.html I styl.CSS plik w /Data/Projects/Web1 subvolume.

$ cat/data/projekty/web1/indeks.html
$ cat/data/projekty/web1/styl.CSS

Treść indeks.html I styl.CSS plik w /dane/.Migawki/Web1-2020-12-25 migawka.

$ cat/data/projekty/web1/indeks.html
$ cat/data/projekty/web1/styl.CSS

Aktualizacja migawki

Domyślnie system plików BTRFS bierze zapisywanie migawek. Migawka BTRFS jest jak subwir. Możesz więc zmodyfikować/aktualizować pliki/katalogi zapisywalnego migawki.

Zaktualizujmy indeks.html plik w /Data/Projects/Web1 subvolume.

Najpierw otwórz indeks.html plik z /Data/Projects/Web1 subvolume z Nano Edytor tekstu w następujący sposób:

$ sudo nano/data/projekty/web1/indeks.html

Dokonaj wszelkich zmian. Po zakończeniu naciśnij + X śledzony przez Y I Aby uratować indeks.html plik.

Jak widać, indeks.plik HTML /Data/Projects/Web1 subvolume różni się od /dane/.Migawki/Web1-2020-12-25 migawka.

$ cat/data/projekty/web1/indeks.html
$ cat /data /.migawki/Web1-2020-12-25/indeks.html

Chcesz zachować indeks.html plik /Data/Projects/Web1 subvolume.

Aby zaktualizować indeks.html plik w /dane/.Migawki/Web1-2020-12-25 migawka, uruchom następujące polecenie:

$ sudo cp -v/data/projekty/web1/indeks.HTML /Data /.migawki/Web1-2020-12-25/indeks.html

Jak widać, indeks.html plik /dane/.Migawki/Web1-2020-12-25 Migawka jest aktualizowana.

Aktualizacja migawki jest tak prosta, jak kopiowanie nowych plików do migawki.

Biorąc migawki tylko do odczytu subwolum

Czasami nie chcesz, aby migawki podjęte były w żaden sposób. W takim przypadku możesz tworzyć migawki tylko do odczytu.

Na przykład, aby utworzyć migawkę tylko do odczytu /dane/.Migawki/Web1-2020-12-26 z /Data/Projects/Web1 subvolume, uruchom następujące polecenie:

$ sudo btrfs subvolume migawka -r/data/projekty/web1/data/.Migawki/Web1-2020-12-26

Jak widać, nowy podwole .Migawki/Web1-2020-12-26 jest tworzone.

$ sudo btrfs lista /dane

Jak widać, migawka /dane/.Migawki/Web1-2020-12-26 jest tylko do odczytu.

$ sudo btrfs subvolume pokaż /dane /.Migawki/Web1-2020-12-26

Zaktualizujmy indeks.html plik z /Data/Projects/Web1 subvolume.

Aby to zrobić, otwórz indeks.html plik z /Data/Projects/Web1 subvolume z Nano Edytor tekstu w następujący sposób:

$ sudo nano/data/projekty/web1/indeks.html

Dokonaj wszelkich zmian. Po zakończeniu naciśnij + X śledzony przez Y I Aby zapisać zmiany.

Jak widać, indeks.html w /Data/Projects/Web1 subvolume różni się od /dane/.Migawki/Web1-2020-12-26 migawka.

$ cat/data/projekty/web1/indeks.html
$ cat /data /.migawki/Web1-2020-12-26/indeks.html

Spróbujmy zaktualizować indeks.html plik w /dane/.Migawki/Web1-2020-12-26 migawka.

$ sudo cp -v/data/projekty/web1/indeks.HTML /Data /.migawki/Web1-2020-12-26/indeks.html

Jak widać, nie możesz zaktualizować indeks.html plik /dane/.Migawki/Web1-2020-12-26 migawka, ponieważ migawka jest tylko do odczytu.

Usuwanie migawki

Wcześniej powiedziałem ci, że migawka BTRFS jest jak podwolum. Możesz więc usunąć migawkę BTRFS, tak jak zdejmujesz subwolum BTRFS. To samo polecenie.

W ten sposób drzewo plików systemu plików BTRFS zamontowane na /dane W tej chwili wygląda katalog.

$ Tree -a /Data

Usuńmy .Migawki/Web1-2020-12-25 migawka.

$ sudo btrfs lista /dane

Aby usunąć /dane/.Migawki/Web1-2020-12-25 migawka, uruchom następujące polecenie:

$ sudo btrfs subvolume usuń /dane /.Migawki/Web1-2020-12-25

Jak widać, migawka .Migawki/Web1-2020-12-25 nie ma już.

$ sudo btrfs lista /dane

Jak widać, pliki/katalogi /dane/.Migawki/Web1-2020-12-25 Migawka jest również usuwana.

$ Tree -a /Data

Wniosek

W tym artykule pokazano, jak zrobić migawki zapisane i tylko odczyty Subwolumów systemu plików BTRFS. Pokazałem również, jak zaktualizować zapisywalne migawkę i odzyskać pliki z migawki. Pokazałem ci, jak usunąć migawkę BTRFS. Ten artykuł powinien pomóc Ci zacząć z funkcją migawki BTRFS.