Modyfikacja UUID systemu plików BTRFS

14

Utworzyłem kopie zapasowe mojego systemu plików BTRFS przy użyciu Clonezilla i przywróciłem jedną z tych kopii do pliku o nazwie 2013-11-29.sda3.img.

Muszę wyciągnąć trochę plików z tej kopii zapasowej, ale jest pewien problem. Ponieważ kopia zapasowa dotyczy tego komputera, nie mogę zamontować kopii zapasowej w dowolnym miejscu w moim systemie plików, ponieważ jej identyfikator UUID jest zgodny z identyfikatorem UUID /.

Czy istnieje sposób na zmianę UUID woluminu kopii zapasowej? Jak rozumiem, BTRFS przechowuje informacje UUID w każdym bloku w systemie plików, co komplikuje moje potrzeby. Czy istnieje jednak sposób, aby to zmodyfikować? Rozumiem, że prawdopodobnie zajęłoby to dużo czasu, ale to mnie nie dotyczy. Moim głównym zmartwieniem jest utrzymanie serwera w trybie online. Kopia zapasowa jest dość duża, więc przeniesienie jej na inną maszynę zajęłoby sporo czasu.

Jakie są moje opcje?

Naftuli Kay
źródło

Odpowiedzi:

0

W tej chwili nie można tego zrobić. W rzeczywistości wolumin UUID jest używany w każdym węźle drzewa porcji. Będziesz musiał je tam zmienić również przy założeniu, że nagłówki fragmentów / urządzenia nie są mieszane. BTRFS tak naprawdę nie został zaprojektowany, aby umożliwić tego rodzaju tworzenie kopii zapasowych.

To naprawdę smutne, ale najłatwiejszym sposobem na poradzenie sobie z tym jest użycie innego komputera.

Jeśli mogę, chciałbym zasugerować, abyś przestał tworzyć kopie zapasowe danych w ten sposób.

  1. Jeśli partycje są ważne jako całość, wykonaj kopię zapasową za pomocą dd/ clonezilla. Gdy musisz przywrócić kopie zapasowe, przywróć całą partycję na raz. Nie rób tego rodzaju hybrydowych kopii zapasowych: specjalnie zapisałeś swoje partycje na poziomie bloku . Musisz więc przywrócić go na poziomie bloku. W przeciwnym razie używasz łyżki do krojenia mięsa. Jak z pewnością zauważyłeś, to rozwiązanie zwykle nie jest używane, ponieważ nie oferuje wszechstronności.

  2. Jeśli Twoje dane są ważne, rsyncwykonaj kopię zapasową za pomocą lub podobnego narzędzia na innym dysku: dane będą zawsze dostępne, wykonasz kopię zapasową dokładnie tego, czego chcesz, tworzysz kopię zapasową na poziomie pliku itp.

Pamiętaj, że BTRFS ma pewne (obecnie ograniczone) funkcje tworzenia kopii zapasowych . BTRFS działa szybko, myślę, że w przyszłości pojawi się więcej funkcji tworzenia kopii zapasowych.

Och, już cię ostrzegano;) Zautomatyzowane tworzenie kopii zapasowych Clonezilla i szyfrowanie GPG

BTW, szyfrowanie jest łatwiejsze do zastosowania do plików przy użyciu LUKS dla szyfrowania opartego na partycjach lub EnFS lub EncryptFS dla szyfrowania opartego na plikach.

Społeczność
źródło
Głównym pytaniem było, jak po prostu zamontować kopię zapasową obrazu, gdy obraz FS to BTRFS. Myślę, że będę musiał wykonać kolejną kopię zapasową Clonezilli mojego obecnego stanu systemu operacyjnego, przywrócić starą kopię zapasową, zrobić to, co muszę, a następnie przywrócić do aktualnego stanu. Chciałbym, żeby istniał łatwiejszy sposób, ale hej, jeśli to działa, to działa.
Naftuli Kay,
Główna odpowiedź jest taka, że ​​nie możesz, jeśli ma ten sam UUID, co inna partycja na dysku :)
23

Za pomocą programu btrfstune, który jest częścią nowszych wersji zwykłych narzędzi btrfs, można zmienić identyfikator UUID systemu plików offline. Jeśli partycja to np. /dev/sda1, użyj następującego polecenia, aby wygenerować nowy, losowy identyfikator UUID:

btrfstune -u /dev/sda1

Aby określić, której wartości należy użyć, użyj -Udużej litery, po której następuje (prawidłowy) ciąg UUID, na przykład:

sudo btrfstune -U e0c5b943-1c02-44a2-bbaf-87ebda5e363b /dev/sdaX
deviantfan
źródło
Jaka jest różnica w praktyce między -m/ -Mi -u/ -U?
Vladimir Panteleev
Wygląda na to, że -m/ -Mjest całkiem nowy. Więcej informacji w komunikatach btrfs-progszatwierdzania i zatwierdzania jądra .
Vladimir Panteleev
Próbowałem to - jak -Ui -M katastrofy z BUG_ONdla mnie i skorumpowanego systemu plików. Nie próbuj tego bez kopii zapasowych!
Vladimir Panteleev