Partycja My / Home składa się z całego dysku fizycznego. Jest sformatowany jako btrfs. Chcę to zrobić migawkę. W szczególności mam wątpliwości co do nazewnictwa podobjętości.
Wiem, że są podobne pytania, ale każde podobne pytanie wydaje się zadawać coś innego niż to, o co pytam (i są one starsze, co prawdopodobnie oznacza nieaktualne, biorąc pod uwagę szybki rozwój btrfs). Na przykład odpowiedź na to pytanie najwyraźniej nie jest odpowiedzią na moje pytanie, ponieważ moja partycja / home jest osobnym woluminem, a strona podręcznika dla btrfs pokazuje teraz inne polecenie do tworzenia migawek.
kolejny podobny problem, brak solidnego rozwiązania .
ktoś tak zdezorientowany jak ja w kwestii nazewnictwa
Moje pytanie:
Rozpoczęcie proste: czy jest to poprawne polecenie do wykonania prostej migawki mojej partycji domowej?
btrfs subvolume snapshot /home/@home /home/@home_snapshot_20120421
Byłem naprawdę odważny i przetestowałem go i to nie działa. Błąd jest error accessing /home/@home
. Jak pokazano poniżej, @home znajduje się na liście.
Oczywiście jestem zdezorientowany w nazwach podobjętości. Czy muszę ich używać do tworzenia migawek? Niektóre przykłady pokazują robienie migawek z domu za pomocą /home
parametru źródłowego, ale na podstawie przykładów woluminów głównych wydaje mi się, że muszę go użyć /home/@home
.
Czy to polecenie zadziała? A jeśli nie, to dlaczego?
btrfs subvolume snapshot /home /home/@home_snapshot_20120421
Czy to @
tylko konwencja nazewnictwa? Czy to w ogóle ma sens?
Oto niektóre dane wyjściowe, które mogą być istotne:
btrfs subvolume list /home
ID 256 top level 5 path @home
Nie jestem pewien, co to dokładnie znaczy. Kiedy próbuję btrfs device scan
, pojawia się błąd (np. Nie można przeskanować urządzenia / dev / sda1). W moim systemie plików nie ma żadnych błędów. Wszystko w porządku.
Oto moje partycje. W odpowiedzi na jedną odpowiedź no / home nie jest moją jedyną partycją btrfs.
/dev/sda1: (boot partition) TYPE="ext2"
/dev/sda2: (root partition) TYPE="btrfs"
/dev/sdb1: (home partition) TYPE="btrfs"
/dev/sdc1: (shared partition) TYPE="btrfs"
/dev/sdc2: TYPE="swap"
Odpowiedzi:
Jakie jest prawidłowe polecenie, aby utworzyć migawkę partycji domowej na Ubuntu 12.04?
Biorąc pod uwagę fakt, że home znajduje się na partycji btrfs i jest zamontowane jako / home, poprawne polecenie to:
Oto moje wyniki:
Przed uruchomieniem polecenia dzisiaj:
Komenda:
Po uruchomieniu polecenia dzisiaj:
Jedynym problemem związanym z tą metodą jest to, że migawki pojawiają się, gdy jesteś ls (list) / home.
Wiki społeczności Ubuntu zostało zaktualizowane o rozwiązanie tego problemu. Oto on:
Jak pracować z migawkami w układzie Ubuntu
Aby pracować z migawkami / lub / home w układzie Ubuntu, bardzo wygodnie jest zamontować system plików btrfs w osobnym miejscu i pracować z góry drzewa btrfs, a nie z zamontowanych podwoluminów. <- to jest rozwiązanie. Niestety nie jest to wygodne .
Aby utworzyć migawkę, użyj tej samej składni, której użyłem powyżej:
Spowoduje to utworzenie migawki podobjętości @ o nazwie @_snapshot znajdującej się również w górnej części drzewa btrfs. Ponieważ znajduje się w górnej części drzewa, nie będzie się pojawiał podczas wyświetlania plików w zamontowanym woluminie.
Aby przywrócić migawkę, wystarczy zmienić jej nazwę na nazwę montowaną i uruchamianą ponownie przez Ubuntu. Oto jak zmienić nazwę:
Aby usunąć migawkę, użyj:
Migawki btrfs same w sobie są podobjętościami i same w sobie, usuwanie starego podobjętości @ w ten sposób jest w porządku, pod warunkiem, że mamy zamiennik.
UWAGA: Polecenie btrfs-tools
set-default
spowoduje uszkodzenie układu Ubuntu.źródło
Ok, na początek:
Nazwa podobjętości, na którą patrzysz, jest
@home
pokazana przezbtrfs subvolume list /home
. Jest zamontowany/home
. @home jest nazwą podobjętości, ma także identyfikator 256, więc najprawdopodobniej tylko twój / home jest sformatowany jako btrfs.Teraz, aby utworzyć migawkę @home, musisz wydać:
sudo btrfs subvolume snapshot /home/ /home/@home_snapshot_20120421
Podobjętość może mieć dowolną nazwę. @ To konwencja Ubuntu w czasie instalacji. (Jeśli używasz
apt-btrfs-snapshot
podwolumny root, należy ją nazwać@
btw.) Wiki społeczności zdecydowanie zaleca utrzymywanie@
jako root i@home
home, ponieważ jest montowana w ten sposób. Jest to szczególnie ważne, jeśli chcesz wycofać: NIE powinieneś używać subvolume btrfs set-default (nie składnia podkreślona celowo).Bo
btrfs device scan
musisz użyćsudo
.Aby usunąć podwolumnę, możesz użyć
sudo btrfs subvolume delete @home_snapshot_20120421
Wszystkie polecenia btrfs mogą być skracane, o ile są jednoznaczne, więc na przykład
sudo btrfs device scan
można je skracaćsudo btrfs d s
,sudo btrfs dev sc
lub coś pomiędzy.Mam nadzieję, że odpowiedziałeś na twoje pytania. Istnieje kilka narzędzi do regularnego wykonywania kopii zapasowych, jednym z przykładów jest btrfs-snapshot-rotacja . Używaj ich ostrożnie, ponieważ żadne z nich nie jest naprawdę dojrzałe ani nie ma wystarczającej przyczepności, tzn. Mogą zawierać błędy.
źródło
$ sudo btrfs subvolume snapshot @home home/@snapshot_20120611_1257 ERROR: error accessing '@home'
btrfs device scan
. Każdy wariant, w tym użycie,sudo
daje błąd „BŁĄD: nie można przeskanować urządzenia '/ dev / sdX'”, gdzie X jest dowolną prawidłową nazwą, taką jak a, a1, b itp.btrfs sub snap @ /mnt/random
i zadziałało to dla mnie. Potem znowu byłem w / mnt, gdzie zamontowano @. Przepraszamy za zamieszanieZainstalować
apt-btrfs-snapshot
pakiet i korzystać z jego poleceńlist
,snapshot
,delete
iset-default
.To jest skrypt, który otacza polecenia niższego poziomu
btrfs
. Działa, najpierw instalując gdzieś główny system plików btrfs. Rozumiem przez to prawdziwy root, w przeciwieństwie do/@
podobjętości, które normalnie montowane są jako/
. Innymi słowy, trzeba uruchomićmount /dev/sda1 /mnt
, dzięki czemu można zobaczyć wielkości podrzędnych, które zostaną wymienione jako/mnt/@
,/mnt/@home
oraz wszelkie inne zostały utworzone. Stamtąd możeszbtrfs subvolume snapshot /mnt/@home @snapshot-today
, co utworzy migawkę/@home
nazwanego/@snapshot-today
. Porównaj to z działaniembtrfs subvolume snapshot /home /home/@snapshot_today
, które zamiast tego tworzy migawkę jako dziecko/@home
, stąd pojawia się, gdy tyls /home
i jego prawdziwe imię to/@home/@snapshot-today
.Cofanie migawkę jest tylko prosta operacja zmiany nazwy:
mv /mnt/@home @backup ; mv /mnt/@snapshot-today @home
. Następnym razem, gdy uruchamia się, gdy idzie do montażu/@home
w/home
, znajdzie migawkę.Niełatwo jest otoczyć głowę, ponieważ musisz pamiętać o różnicy między tym, jak btrfs widzi rzeczy, a tym, jak jądro je widzi, na co wpływ mają opcje montowania (w szczególności argument subvol =).
źródło