Całkowite przywrócenie systemu Linux


20

Znam się na rsync do tworzenia kopii zapasowych różnych plików z mojego systemu, ale jaki jest najlepszy sposób na całkowite przywrócenie komputera.

W przeszłości próbowałem:

  1. Wykonaj podstawowy format / zainstaluj ponownie z dysków instalacyjnych Fedory
  2. Upewnij się, że sieć jest włączona
  3. Skopiuj wszystko z kopii zapasowej rsync na górę nowo zainstalowanego systemu

W ten sposób działa, ale nie sądzę, aby każdy zainstalowany pakiet działał w 100% później.

Chcę móc przywrócić mój system przy minimalnym wysiłku i wszystko działa tak samo, jak w momencie tworzenia kopii zapasowej. Również jeśli to możliwe, zainstaluj na innych komputerach i zasadniczo posiadaj dwa komputery z tymi samymi pakietami i danymi.


Kiedy mówisz, że chcesz zainstalować na innych komputerach, masz na myśli inne „identyczne / maszyny” lub bardziej jak komputer stacjonarny i laptop?
Ichorus

sprzęt byłby inny, ale chciałbym mieć te same pakiety oprogramowania na obu
Simon Foster

Odpowiedzi:


17

Oto co zrobiłem (zakłada to pojedynczy dysk, w / dev / sda)

  • użyj dd do wykonania kopii zapasowej MBR i tablicy partycji: „dd bs = 512 count = 1 if = / dev / sda of = / backups / sda.layout”

  • użyj rsync, aby skopiować całą rzecz z czymś takim jak: „rsync -axvPH - numeric-ids ...”

Po przywróceniu robię to:

  • uruchom komputer docelowy za pomocą sysrescuecd , zazwyczaj będę mieć plik „sda.layout” na pamięci USB.

  • przywróć tabelę MBR / partycji za pomocą dd: „dd bs = 512 count = 1 if = / path / to / sda.layout of = / dev / sda”

  • Użyj partprobe (dzięki komentator Mark), aby jądro ponownie odczytało tablicę partycji.

  • Zamontuj wszystkie różne partycje w obszarze / restore /. Punkty przywracania są identyczne podczas przywracania, więc jeśli mam / boot, / var w moim źródle, kończę na / restore / boot, / restore / var itp.

  • użyj rsync, aby przywrócić całość.


3
Zrobiłem to kilka razy i mam tę zaletę, że używam standardowych poleceń linux CLI. Korzystam z rsnapshot, skryptu perla wokół rsync, aby tworzyć kopie zapasowe na centralnym serwerze. Następnie zsynchronizuj wszystko z powrotem po uruchomieniu z sysrescuecd i usunięciu tabeli partycji. BTW, „partprobe” ponownie odczyta tabelę partycji
Mark Porter

OK, może to być postrzegane jako podły hack, ale ponieważ jądro może ponownie odczytać tablicę partycji przez wydanie sysctl (), tak jak robi to fdisk, równie dobrze możesz mieć fdisk - który w przeciwieństwie do partprobe jest zawsze z mojego doświadczenia - wykonaj it: fdisk / dev / yourdisk << EOF w EOF
Bernd Haug

Dzięki za sugestie wszystkich, wiedziałem, że musi istnieć lepsze rozwiązanie. Spróbuję tych sugestii i zobaczę, co będzie dla mnie najlepsze.
Simon Foster

3
Nie zapomnij liczyć z dd! „dd bs = 512 if = / dev / sda of = / backups / sda.layout count = 1” i „dd bs = 512 if = / path / to / sda.layout of = / dev / sda count = 1”
Steven

@Steven: Cholera! Dzięki za haczyk. Czy mogę głosować na komentarz?
kbyrd

6

Nigdy całkowicie nie klonuję systemów. Nigdy nie wiadomo, co może się zmienić, a sklonowany obraz systemu jest już nieaktualny od momentu wystąpienia jednej zmiany. Najlepszym sposobem na to jest ustanowienie procedury, która umożliwia tworzenie funkcjonalnie identycznych systemów. Jedną z możliwości jest coś takiego jak Kickstart, AutoYaST lub podobne narzędzia. Zachowaj dobre kopie zapasowe konfiguracji i najlepiej użyj systemu zarządzania konfiguracją, takiego jak Bcfg2, Puppet lub CFEngine, aby skonfigurować wszystko zamiast robić to ręcznie. Następnie, gdy trzeba utworzyć nowy system podobny do innego, który masz, lub odtworzyć istniejący system, jest to prosta i dobrze zdefiniowana procedura.


3

Zajmie to więcej wysiłku, ale Kickstart i Revisor pozwalają dostosować instalację i używać jej na innych komputerach. Możesz dołączyć niestandardowe wersje plików ustawień.

Możesz także rozważyć utrzymanie katalogu domowego na osobnej partycji. Możesz zostawić tę partycję w spokoju podczas czystej instalacji na innej partycji.


2

Chwyć kopię dysku odzyskiwania systemu , a po początkowej minimalnej instalacji uruchom ją, podłącz i uruchom chroot na dysku, a następnie uruchom rsync. Po zakończeniu może być konieczne uruchomienie aktualizacji-gruba, aby uruchomić go z właściwego urządzenia rozruchowego i jądra.


2

Zawsze uważałem, że sposób instalacji nowego systemu (z kopii zapasowej lub innej) w Gentoo był najlepszy ze względu na jego prostotę.

  1. Stwórz działający, minimalny system.
  2. Załaduj działający system jako dysk twardy w trybie wideo.
  3. Zrób tar system plików i zapisz gdzieś.
  4. Załaduj system docelowy z podglądem na żywo.
  5. Przygotuj docelowy dysk twardy i zamontuj go.
  6. Untar do zamontowanego dysku twardego.
  7. Wpisz chroot.
  8. Skonfiguruj bootloader i inne rzeczy zależne od systemu.
  9. Uruchom ponownie i idź.
  10. Zainstaluj nowe oprogramowanie / skopiuj foldery użytkownika / dodaj inne pliki w razie potrzeby.

2

Wypróbuj clonezilla live CD. Możesz uruchomić się w sesji na żywo i zobrazować komputer bez konieczności instalowania czegokolwiek. Następnie możesz zapisać kopię obrazu na udziale sieciowym lub na komputerze zdalnym i tak dalej.


0

Jeśli jest to dokładnie ta sama maszyna, po prostu ddużyłbym jej do stworzenia obrazu dysku, a następnie reimage go w razie potrzeby (ewentualnie zmieniając niektóre konfiguracje, jeśli to konieczne).

Jeśli zmieniasz sprzęt, miałem pewien sukces w tworzeniu tarballa lub pełnej kopii zapasowej rsync katalogu głównego systemu plików. Nie jestem pewien, dlaczego najpierw potrzebowałbyś pełnej instalacji - dopóki wykonasz pełną kopię zapasową, podstawowa instalacja Fedory nie powinna być warunkiem wstępnym.


0

Twoja procedura może powodować wiele problemów i należy jej unikać.

Istnieją dwa podstawowe zalecane sposoby rozwiązania tego problemu, a trzeci, jeśli próbujesz zbudować środowisko programistyczne.

Obrazowanie

Jeśli sprzęt, który chcesz przywrócić, będzie taki sam lub wystarczająco podobny, użyj narzędzia obrazowania dysku, aby wykonać kopię całego dysku twardego lub macierzy. Jeśli chcesz przywrócić, po prostu ponownie wyobrażaj sobie komputery z tym obrazem. Jeśli tworzysz obraz na wielu komputerach, pamiętaj, że będziesz musiał zaktualizować ustawienia specyficzne dla komputera na innych urządzeniach (nazwa hosta, statyczny adres IP itp.), Aby nie powodowały konfliktu między sobą.

Aby wykonać rzeczywiste obrazowanie, poleciłbym każde narzędzie lub produkt, który może klonować dyski twarde.

Kopie zapasowe konfiguracji / katalogu domowego

Na komputerze podstawowym regularnie wykonuj kopie zapasowe (dowolną metodą) dowolnej z następujących katalogów (lub innych), których potrzebujesz:

/ home - Wszystkie osobiste ustawienia użytkownika, dokumenty i pliki
/ etc - konfiguracje
/ opt - specjalne oprogramowanie nie zostało zainstalowane przez menedżera pakietów
/ usr / local - specjalne oprogramowanie nie zostało zainstalowane przez menedżera pakietów
/ var - logi i takie

Podczas przywracania ponownie zainstaluj system operacyjny na danych komputerach, a następnie skopiuj każdy z nich (lub tylko odpowiednie pliki) w odpowiednie miejsce.

Maszyny wirtualne z migawkami

Utwórz maszynę wirtualną w VMWare (lub cokolwiek innego, co wolisz). Gdy jest skonfigurowany tak, jak chcesz, utwórz migawkę. Tę migawkę można następnie łatwo przywrócić na dowolnej liczbie nowych lub istniejących maszyn wirtualnych.

Zasadniczo należy wykonywać tylko kopie zapasowe danych i konfiguracji (niezależnie od tego, jak je definiujesz). System operacyjny i oprogramowanie można w każdej chwili w prosty sposób przebudować: cenne są tylko własne treści. Jeśli ta konfiguracja jest przeznaczona dla programistów i musisz zapewnić identyczne środowisko (w przeciwieństwie do przywracania działania), to migawki na maszynie wirtualnej są naprawdę najlepszym rozwiązaniem.

Obrazowanie to rozwiązanie brutalnej siły. Jeśli możesz, po prostu wykonaj kopię zapasową danych i nie martw się o sam system operacyjny. Próba przywrócenia go całkowicie wymaga kłopotów.

Jeśli możesz wyjaśnić, jaki jest twój ostateczny zamiar, przedstawię bardziej szczegółowe rozwiązanie.


0

Ponieważ mówisz, że „sprzęt będzie inny”, SystemImager może się przydać.

To tylko kilka skryptów opakowujących PXE i Rsync. Dlatego „kopia zapasowa”, którą tworzy, jest po prostu kompletną strukturą katalogową serwera Linux z kopią zapasową. Możesz „cd” do tego katalogu i zmieniać rzeczy podczas karmienia. (SystemImager samodzielnie zarządza zmianą ustawień sieciowych po wypchnięciu obrazu).

Możesz chrootować na serwer z kopią zapasową i uruchomić yum lub zainstalować oprogramowanie przed wypchnięciem obrazu.

Edycja: Możesz spojrzeć na skrypt SI, który tworzy partycje / woluminy logiczne i zmodyfikować go zgodnie z rozmiarem dysku komputerów docelowych. Możesz także dodawać / usuwać moduły jądra.


0

Miałem bardzo dużo szczęścia z Mondo Rescue. Zasadniczo tworzy kopię zapasową wszystkich plików i partycji na rozruchowym dysku CD do późniejszego użytku. Może obsługiwać zmiany w partycjach i dyskach.

http://www.mondorescue.org/



0
  • Najbezpieczniejszym sposobem jest sklonowanie całych dysków lub przynajmniej odpowiednich partycji i przywrócenie ich przy użyciu Live CD.

  • Inną metodą zajmującą więcej miejsca jest użycie zrzutu (xfsdump dla XFS), ale w tym przypadku będziesz musiał ręcznie odtworzyć (sformatować) partycje. Nie zapomnij utworzyć ich z tymi samymi parametrami, zwłaszcza UUID i LABEL.

  • Możesz również użyć tar z --xattrs parametrem, aby zapisać rozszerzone atrybuty każdego pliku.


1
Nowoczesne rsync w systemie Linux ma odpowiednio -X i -A dla odpowiednio rozszerzonych atrybutów i list ACL.
kbyrd,

0

partimage i partclone (części Clonezilla) są użytecznymi narzędziami do tworzenia pełnych obrazów systemu.

Jak zidentyfikowałeś, pełne obrazy systemowe niekoniecznie muszą być przenośne w systemie: zwykle z powodu nazw urządzeń.

Może to być tak proste, jak ponowna instalacja GRUB-a (najlepiej na osobnej partycji / boot) i MBR po obrazowaniu (np. LiveCD).

Innym podejściem jest użycie narzędzi do zarządzania konfiguracją w celu zdefiniowania polityk, które są stosowane do obrazu linii bazowej (takich jak pola bazowe Vagrant); i oddzielne kopie zapasowe danych do przechowywania bloków i / lub obiektów (EBS / S3, Openstack Block Storage / Openstack Object Storage)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.