Czy można dodać bieżący dysk, z którego został uruchomiony komputer?

22

Mam kopię FreeNAS z dysku USB na żywo. I chciałbym zrobić kopię zapasową tego.

Czy starając się uniknąć uszkodzenia idealnie działającego systemu, czy byłbym w stanie ddna dysku, gdy system operacyjny jest uruchomiony?

Czy też musiałbym wyłączyć maszynę i uruchomić ddinną maszynę?

stuartc
źródło

Odpowiedzi:

15

Możesz uruchomić ddna uruchomionym dysku. Należy tego unikać w przypadku poważnych zmian w strukturze dysku. Powinieneś fschktakże dotrzeć do miejsca docelowego po zakończeniu. Im cichszy jest system podczas tworzenia kopii zapasowej, tym lepiej.

Uruchamianie zimnej kopii zapasowej (odmontowany system plików) jest najlepszą opcją, jeśli chcesz użyć `dd '.

Istnieją lepsze opcje tworzenia kopii zapasowej działającego systemu.

  • tarlub cpiobędzie czytać pliki i radzi sobie całkiem dobrze z otwartymi plikami. Prawdopodobnie przegapisz niektóre zmiany, które nastąpią podczas tworzenia kopii zapasowej.
  • rsynczachowuje się jak tarw przypadku otwartych plików i brakujących zmian podczas tworzenia kopii zapasowej. Można go użyć do wykonania początkowej kopii zapasowej i bardzo dobrze wykonuje przyrostowe kopie zapasowe. Uruchamiając przyrostową kopię zapasową, można pominąć kopiowanie niezmienionych części pliku.

Jeśli tworzysz kopię zapasową systemu plików z plikami danych bazy danych, sprawdź obsługę tworzenia kopii zapasowych na gorąco.

BillThor
źródło
Dobre punkty przy użyciu narzędzi wyższego poziomu - tar, cpiooraz rsyncwszystkie prace w obrębie systemu plików , więc to może być właściwe. dd, OTOH, działa bezpośrednio z blokami dyskowymi, omijając FS.
Piskvor,
16

Jest to technicznie możliwe (jak w „strzelaniu sobie w stopę”), ale wysoce niewskazane, szczególnie jeśli dowolna partycja dysku jest zapisywalna.

Wyobraź sobie ten scenariusz:

  • dd zaczyna czytać dysk na początku i wesoło zbliża się do końca.
  • Gdy jest w połowie, system operacyjny zapisuje plik na dysku. Plik jest jednak nieco pofragmentowany - jedna jego część fizycznie znajduje się na początku dysku, a druga na końcu.
  • Nie ma problemu dla systemu operacyjnego - zapisuje plik w porządku i wypycha go z pamięci podręcznej zapisu; jest teraz poprawnie zapisany na dysku.
  • Problem polega na tym, że twoja kopia zapasowa ddjuż minęła i skopiowała pierwszą część pliku, więc przechwyci niespójny stan, gdy dojdzie do drugiej części - każda część będzie z innej wersji!

Jeśli jesteś w stanie ponownie zamontować wszystkie partycje na dysku USB jako tylko do odczytu, ten problem nie powinien wystąpić (nacisk na „ nie powinien ”); wymaga to jednak znacznego przygotowania instalacji / trybu offline i rozruchu /partycji - nie sądzę, że normalnie można ponownie zamontować /r / o w locie, będzie wiele rzeczy, które będą wymagały r / w dostęp.

Uruchomienie kopii prawdopodobnie nie zepsuje działającego systemu, ale nie zapewni wykonalnej kopii zapasowej , co sprawi , że zadanie będzie sporne. Zdecydowanie zalecam wykonanie kopii offline - co wymagałoby wyłączenia urządzenia.

Piskvor
źródło
1
Dzięki za świetną odpowiedź, miałem nadzieję na łatwe wyjście, ale masz rację, nie wyobrażam sobie dobrego scenariusza wynikającego z tego, co wskazałeś.
stuartc
1
@stuartc: Wymagałoby to dużej współpracy ze strony sterownika FS - informowania procesu kopiowania o każdej zmianie, która nastąpiła od momentu rozpoczęcia kopiowania, oraz tego, czy osiąga spójny stan. Jeśli jest to poważny problem, sprawdź systemy plików obsługujące migawki, takie jak btrfs.
Piskvor,
4

Nigdy nie należy tworzyć obrazu zamontowanej partycji. Bez względu na to, czy go uruchomiłeś, czy nie.

Ale będziesz miał trudności z odmontowaniem partycji, z której uruchomiłeś system.

Der Hochstapler
źródło
4

Do tego używam dump(8)na FreeBSD. Na przykładdump -auLf /mnt/some-other-disk/root.dmp /

Ta -Lopcja umożliwia kopiowanie systemu plików na żywo poprzez wykonanie migawki.

Zrzuty można przywrócić za pomocą restore(8).

Może działać tylko z UFS; Nie jestem tego pewny.

maxelost
źródło
0

To niesamowite, ile wskazówek dotyczących tworzenia kopii zapasowych nie wspomina o następujących kwestiach:

System linux (i większość wielowątkowych systemów operacyjnych) zazwyczaj musi być cichy podczas tworzenia kopii zapasowej i przywracania.

Najłatwiej to osiągnąć, nie uruchamiając na nim systemu operacyjnego podczas próby jego zobrazowania.

W celu tworzenia kopii zapasowych i przywracania można go zamontować, a tak naprawdę musi, ale nie przez działający system operacyjny jako jego root (/).


Powód: W każdym wielozadaniowym systemie operacyjnym, łącznie z Linuksem, działają jednocześnie wątki kodu wpływające na pliki, co uniemożliwia wykonywanie dokładnych kopii zapasowych lub przywracanie zestawu plików.

W szczególności podczas pobierania plików może istnieć inne zadanie tworzenia lub usuwania plików, tak aby twoja kopia zapasowa nie reprezentowała prawdziwego i dokładnego obrazu systemu plików w danym momencie. Próba przywrócenia tej kopii zapasowej spowoduje uszkodzenie danych, co doprowadzi do awarii i innych anomalii.


Opcje: Kopie zapasowe muszą być wykonywane przez specjalne oprogramowanie i / lub systemy dyskowe (np. Acronis w systemie Windows, na przykład, który może wykonać kopię zapasową działającego systemu operacyjnego), lub przez zewnętrzny dodatkowy system operacyjny uzyskujący dostęp do plików niedziałającego systemu operacyjnego, które próbujesz tworzenie kopii zapasowej lub przywracanie.

!!! Kiedy więc zobaczysz strony internetowe z poleceniem korzystania z Deja-dup, na przykład do tworzenia kopii zapasowych, działa to tylko /homeTYLKO wtedy, gdy nie uruchamiasz żadnych programów mających wpływ /homena działanie deja-dup. (I nawet wtedy możesz chcieć skrzyżować palce, chyba że naprawdę wiesz, co może dotknąć twoich plików za pośrednictwem demona).

Widok eliptyczny
źródło
0

Robię to już z powodzeniem w środowisku testowym, z fsck i rsync na końcu, aby zwiększyć szanse na dobrą kopię urządzenia.

Joao
źródło
1
Czy możesz wyjaśnić, w jaki sposób rsynculepszasz zrzut zrzutu całego dysku (całego systemu plików)  dd? (A jeśli masz dostęp do tego rsync, dlaczego nie użyjesz go jako podstawowego narzędzia do tworzenia kopii zapasowych, a nie dodatkowego, towarzyszącego?)…………………………… Proszę nie odpowiadać w komentarzach; edytuj  swoją odpowiedź, aby była jaśniejsza i bardziej kompletna.
Scott