Tworzenie migawki systemu Linux


11

Chcę wykonać następujące czynności - Zapisz bieżący stan mojego systemu operacyjnego Linux (centOS6.5). Wykonaj kilka zmian (dokładniej wstrzyknij błąd i przetestuj usługę, aby sprawdzić, jak się zachowuje, gdy wystąpi ten konkretny rodzaj błędu). Następnie przywróć system do stanu zapisanego. Nie jestem w stanie wymyślić, jak to zrobić w systemie Linux. Mam maszynę z systemem CentOS 6.5 z systemem plików ext4. Jest to także serwer fizyczny, a nie maszyna wirtualna.

Wszelkie pomysły lub sugestie?


Serwer fizyczny czy maszyna wirtualna?
— steve

1
Zalecam uruchomienie systemu operacyjnego na oprogramowaniu do wirtualizacji, takim jak VirtualBox. Ładnie obsługuje migawki.
— yaegashi

To jest serwer fizyczny. Muszę to zrobić na wielu komputerach (serwerach fizycznych) i nie mogę zmienić konfiguracji, aby uruchomić mój system operacyjny na oprogramowaniu do wirtualizacji.
— bRuta

Zwykle potrzebuje dodatkowej warstwy meta, takiej jak wirtualizacja, do obsługi migawek systemu. Bardzo trudno byłoby sprawić, aby serwery fizyczne zachowywały się tak, jakby były pod kontrolą oprogramowania wewnętrznego i poziomu programu ładującego.
— yaegashi

Odpowiedzi:


8

Uprościłbym to i sklonował. Uruchom system na żywo z USB (najłatwiejszy jest Ubuntu z napędu USB, jak sądzę), a następnie zrzuć dysk twardy na inną partycję (lub zewnętrzny dysk twardy itp.), Np.

dd if=/dev/sda1 bs=64M of=/mnt/my_mounted_backup_drive/backup-sda1

gdzie musisz zastąpić partycję /dev/sda1root ( /). Zrób to samo z innych partycji (jak ten na /boot, /boot/efi, /home) w stosownych przypadkach.

Jeśli chcesz zaoszczędzić miejsce, możesz to zrobić

dd if=/dev/sda1 bs=64M | gzip --fast | dd bs=32M of=/mnt/my_mounted_backup_drive/backup-sda1.gz

lub, bardziej skomplikowane, znacznie wolniej, ale oszczędzając jeszcze kilka bajtów,

mkdir -p /mnt/linux
mount -o ro /dev/sda1 /mnt/linux
cd /mnt/linux
tar cvJf /mnt/my_mounted_backup_drive/linux-backup.tar.xz .??* *

Następnie możesz przywrócić na odwrót, np

mkdir -p /mnt/linux
mount /dev/sda1 /mnt/linux
cd /mnt/linux
tar xvJf /mnt/my_mounted_backup_drive/linux-backup.tar.xz

lub

dd /mnt/my_mounted_backup_drive/backup-sda1.gz bs=32M | gzip --decompress | dd bs=64M of=/dev/sda1

(uważaj, gdzie zapisujesz swoje dane, to wszystko usuwa /dev/sda1, więc popraw je za pierwszym razem :-)


PS: Jeśli oczekujesz, że coś pójdzie nie tak, wykonaj kopię zapasową tabeli partycji, na przykład dd if=/dev/sda bs=64M count=2 of=/mnt/my_mounted_backup_drive/backup-sda. Podczas przywracania należy zachować ostrożność, aby nie zapisać zbyt wielu bloków z powrotem na dysk - nie można powiedzieć, ile z nich bez obejrzenia układu partycji. Przywróć blok, w którym twoja pierwsza partycja zaczyna się, zgodnie z gdisklub fdisk.
— Ned64

5

Możesz użyć rsync do utworzenia kopii zapasowej całego systemu.

rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /* /path/to/backup/folder

Jest to niesamowite artykuł na Arch Linux Wiki o tym


To dość krótko, aby być najlepszą opcją dla mnie. Oczywiście, jeśli nie masz rsync, możesz użyć, którego ddużywam do tworzenia kopii zapasowych moich dysków USB.
— m3nda


1

Możesz użyć FSArchiver , który zapisze zawartość systemu plików w skompresowanym pliku i przywróci system plików podczas rozpakowywania danych.

Oto przykład z dokumentacji :

fsarchiver savefs /mnt/backup/gentoo-rootfs.fsa /dev/sda1

Możesz także użyć kompresji wielowątkowej, a przywracanie jest proste:

fsarchiver restfs /mnt/backup/gentoo-rootfs.fsa id=0,dest=/dev/sda1

-1

Aby wrócić do poprzedniego stanu, możesz zamontować bieżący system plików w nowym katalogu. Spowoduje to zamontowanie systemu plików w nowym katalogu głównym określonym przez następujące polecenie:

mount DIR DIR

Aby przywrócić ten stan, zmień katalog główny systemu plików z katalogu określonego w poleceniu mount.

umount DIR

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.