Tworzenie kopii zapasowych i przywracanie obrazów przy użyciu dd

Co to jest dd?

Polecenie dd to narzędzie do kopiowania i konwertowania plików, powszechnie używane w większości uniksowych systemów operacyjnych. Może być używane do zadań takich jak tworzenie kopii zapasowych danych, klonowanie dysków, tworzenie obrazów partycji i innych. Należy jednak zachować ostrożność podczas korzystania z dd, ponieważ niewłaściwe użycie może prowadzić do utraty danych.

Oto podstawowa składnia polecenia dd:

dd if=plik_wejściowy of=plik_wyjściowy [opcje]

Gdzie:
- if (plik wejściowy) określa plik wejściowy lub źródło danych.
- of (plik wyjściowy) określa plik wyjściowy lub miejsce docelowe dla danych.

Poniżej znajduje się kilka typowych opcji i parametrów dd:

1. bs (rozmiar bloku): Określa rozmiar bloku danych. Na przykład, bs=4K ustawia rozmiar bloku na 4 kilobajty.
2. count: Określa liczbę bloków do skopiowania. Na przykład count=100 kopiuje 100 bloków danych.
3. iflag i oflag: Opcje kontrolujące flagi wejścia i wyjścia. Na przykład, iflag=direct może być użyty do bezpośredniego odczytu danych, z pominięciem pamięci podręcznej systemu operacyjnego.
4. seek i skip: Opcje przesuwania wskaźnika pliku wejściowego lub wyjściowego w celu rozpoczęcia lub zakończenia kopiowania od określonej pozycji.
5. status: Opcja wyświetlania informacji o postępie operacji kopiowania.
6. conv (konwersja): Umożliwia różne konwersje danych, takie jak zmiana wielkości liter (conv=ucase lub conv=lcase), usuwanie znaków (conv=sync) i inne.
7. iflag i oflag: Opcje te pozwalają skonfigurować flagi dla danych wejściowych (iflag) i wyjściowych (oflag). Na przykład opcja direct może być używana do bezpośredniego odczytu lub zapisu danych bez buforowania.
8. status: Ta opcja umożliwia wyświetlanie informacji dotyczących postępu operacji kopiowania.
9. seek and skip: Umożliwiają przesunięcie wskaźnika pliku wejściowego lub wyjściowego w celu rozpoczęcia kopiowania od określonej pozycji.

Rozważmy przykłady użycia dd do kopiowania plików i katalogów do zdalnej pamięci masowej w chmurze udostępnianej przez Introserv przy użyciu protokołu SSH i polecenia rsync. Dodatkowo, przykład zademonstruje tworzenie kopii zapasowej i przywracanie obrazu systemu przy użyciu trzeciego dysku. Ważna uwaga: Podobne polecenia, z określeniem serwera docelowego, pozwolą skopiować katalogi i pliki na dowolny zdalny serwer za pośrednictwem SSH. Dodatkowo, dla zachowania integralności danych, użyjemy obrazu "recovery" o nazwie Finnix.

Tworzenie kopii zapasowej obrazu systemu

1.Tworzenie kopii zapasowej:

Przygotowania:
1. Pobierz Finnix na swój komputer ze strony https://www.finnix.org.
2. Podłącz obraz ISO przez IP-KVM.
3. Uruchom serwer z obrazu ISO Finnix.

2.Praca z systemem Finnix

Przeanalizujemy dwie metody, z których jedna jest możliwa przy użyciu Cloud Storage Introserv.

Aby zamontować zdalny magazyn plików (magazyn w chmurze) przez SSH, zalecamy użycie narzędzia takiego jak SSHFS (SSH File System), które umożliwia podłączenie zdalnych katalogów na komputerze lokalnym za pomocą protokołu SSH. Oto jak to zrobić:

2.1. Zainstaluj SSHFS.

Ponieważ jest on już zainstalowany w Finnix, nie będziemy wykonywać tego kroku.

sudo apt-get install sshfs

2.2. Utwórz lokalny katalog, w którym chcesz zamontować zdalny folder.

Na przykład:

sudo mkdir -p /root/mnt/backup

To polecenie tworzy niezbędną strukturę katalogów, w tym brakujące katalogi nadrzędne (flaga -p).

2.3. Zamontuj zdalny katalog przez SSHFS:

sudo sshfs box17469@box17469.introserv.cloud:/backups ~/mnt/backup/

- box*****: Nazwa użytkownika SSH na zdalnym serwerze.
- Box*****.introserv.cloud: Adres IP lub nazwa hosta zdalnego serwera.
- /backups: Ścieżka do katalogu na cloudstorage.
- ~/remote_mount: Ścieżka do lokalnego katalogu, który utworzyliśmy powyżej, gdzie chcemy zamontować nasz zdalny folder z magazynu w chmurze.

System poprosi o hasło, które można znaleźć w szczegółach zamówienia w sekcji Kopia zapasowa.

2.4. Sprawdź nasz folder sieciowy.

2.5. Aby utworzyć kopię zapasową systemu, użyj następującego polecenia:

dd if=/dev/sda of=/root/mnt/backup/sda.ing bs=8M conv=sync,noerror

2 metoda jest możliwa za pośrednictwem trzeciego dysku lub innej zewnętrznej pamięci masowej

2.1 Określ dysk twardy, na którym zainstalowany jest główny system (w tym przypadku Ubuntu)

W tym przypadku jest to sda.

2.2 Zamontuj również folder na dysku zewnętrznym, aby móc umieścić tam obraz kopii zapasowej.

Aby zamontować utworzony system plików w katalogu /mnt/, uruchom następujące polecenia:

sudo mount /dev/sdX /mnt/папка # zastąp sdX konkretnym urządzeniem lub partycją (w tym przypadku mamy sdb)

Aby utworzyć kopię zapasową dysku twardego, użyj następującego polecenia:

dd if=/dev/sda of=/mnt/backup/sda.img bs=8M conv=sync,noerror

- if=/dev/sda - skopiuj cały dysk twardy sda;
- of=/mnt/backup/sda.img - skopiuj do /mnt/backup/sda.img, gdzie katalog /mnt/backup jest punktem montowania dysku, który będzie zawierał obraz;
- bs=8M - ustaw rozmiar pamięci podręcznej dysku twardego, aby przyspieszyć proces kopiowania (w przeciwnym razie dane będą spłukiwane w małych partiach po 512 bajtów);
- conv=sync,noerror - powiedz dd, aby kopiował bit po bicie z ignorowaniem błędów.

Przywracanie kopii zapasowej systemu na inny serwer lub dysk

1. Podłączanie obrazu ratunkowego

  • Podłącz obraz ISO przez IP-KVM.
  • Uruchom ponownie serwer do obrazu ISO Finnix.

2. Praca z Finnix

Podobnie jak w przypadku kopii zapasowej, mamy dwa sposoby korzystania z CloudStorage:

2.1. Utwórz lokalny katalog, w którym chcesz zamontować zdalny folder. Na przykład:

sudo mkdir -p /root/mnt/backup

2.2. Zamontuj zdalny katalog przez SSHFS:

sudo sshfs box17469@box17469.introserv.cloud:/backups ~/mnt/backup

System poprosi o hasło, które można znaleźć w szczegółach zamówienia w sekcji Kopia zapasowa.

Sprawdź również, czy folder jest zamontowany.

ls -l /root/mnt/backup/

2.3. Znajdź obraz podpisany sda.img na podłączonym dysku sieciowym.

Aby przywrócić system z kopii zapasowej, użyj następującego polecenia:

dd if=/root/mnt/backup/sda.img of=/dev/sda bs=8M conv=sync,noerror

2.4. Następnie ponownie uruchamiamy BIOS

Ustawiamy dysk, na którym wdrożyliśmy system, jako priorytet rozruchu, restartujemy i próbujemy uruchomić system.

Rozważmy również wdrożenie obrazu systemu przy użyciu trzeciego dysku lub innej pamięci masowej:

2.1. Перезеграужаемся в Finniх.

Zamontuj pamięć sieciową lub dysk z obrazem za pomocą polecenia sudo mount /dev/external_network_disk_or_storage /mnt/folder_for_mounting.

Znajdź obraz podpisany sda.img

Aby przywrócić system z kopii zapasowej, użyj następującego polecenia:

dd if=/mnt/backup/sda.img of=/dev/sda bs=8M conv=sync,noerror

Następnie ponownie uruchamiamy BIOS i ustawiamy dysk, na którym wdrożyliśmy system, jako priorytet rozruchu, restartujemy i próbujemy uruchomić system.