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.
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,
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 -e7Twó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 /SDB1Należy utworzyć system plików BTRFS.
Utwórz katalog /dane Z następującym poleceniem:
$ sudo mkdir -v /daneAby zamontować system plików BTRFS utworzony na SDB1 partycja w /dane Directory, uruchom następujące polecenie:
$ sudo mount /dev /sdb1 /daneSystem plików BTRFS powinien być zamontowany, jak widać na zrzucie ekranu poniżej.
$ df -h /danePrzygotowanie 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 /projektyUtwórz nowy podvolume Web1 w /Data/Projects katalog w następujący sposób:
$ sudo btrfs subvolume tworzenie/dane/projekty/Web1Utwórz nowy plik indeks.html w /Data/Projects/Web1 subvolume w następujący sposób:
$ sudo nano/data/projekty/web1/indeks.htmlWpisz w następujących wierszach kodów w indeks.html plik.
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.CSSWpisz w następujących wierszach kodów w styl.CSS plik.
H1Po 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/Web1Chcę 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 /.migawkiRobienie 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-25Migawka /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 /daneMoż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-25Jak widać, wszystkie pliki, które są w /Data/Projects/Web1 subvolume są w /dane/.Migawki/Web1-2020-12-25 migawka.
$ Tree -a /DataOdzyskiwanie 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.htmlDokonaj 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.htmlWprowadziliś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.htmlJak widać, indeks.html Plik jest przywrócony z migawki.
$ cat/data/projekty/web1/indeks.htmlTeraz 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/Web1Na 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.tekstJak widać, drzewo plików /Data/Projects/Web1 subvolume różni się od /dane/.Migawki/Web1-2020-12-25 migawka.
$ Tree -a /DataAby 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.htmlTreść indeks.html I styl.CSS plik w /dane/.Migawki/Web1-2020-12-25 migawka.
$ cat/data/projekty/web1/indeks.htmlAktualizacja 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.htmlDokonaj 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.htmlChcesz 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.htmlJak 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-26Jak widać, nowy podwole .Migawki/Web1-2020-12-26 jest tworzone.
$ sudo btrfs lista /daneJak widać, migawka /dane/.Migawki/Web1-2020-12-26 jest tylko do odczytu.
$ sudo btrfs subvolume pokaż /dane /.Migawki/Web1-2020-12-26Zaktualizujmy 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.htmlDokonaj 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.htmlSpró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.htmlJak 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 /DataUsuńmy .Migawki/Web1-2020-12-25 migawka.
$ sudo btrfs lista /daneAby usunąć /dane/.Migawki/Web1-2020-12-25 migawka, uruchom następujące polecenie:
$ sudo btrfs subvolume usuń /dane /.Migawki/Web1-2020-12-25Jak widać, migawka .Migawki/Web1-2020-12-25 nie ma już.
$ sudo btrfs lista /daneJak widać, pliki/katalogi /dane/.Migawki/Web1-2020-12-25 Migawka jest również usuwana.
$ Tree -a /DataWniosek
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.