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.