Właśnie wykonałem kopię zapasową całego dysku twardego (50 GB) za ssh
pośrednictwem:
dd if=/dev/hda | buffer -s 64k -S 10m | ssh myuser@myhost "cat > ~/image.img"
Jaki jest teraz najlepszy sposób sprawdzenia integralności pliku image.img
, tj. Jak sprawdzić, czy wszystko zostało poprawnie skopiowane?
Odpowiedzi:
Jeśli polecenie zakończyło się powodzeniem, kopia zapasowa jest poprawna, z wyjątkiem błędu sprzętowego (który może również wpłynąć na każdą weryfikację, którą możesz wykonać). Może później stać się niepoprawny, jeśli sprzęt jest wadliwy, ale większość sprzętu pamięci masowej wykrywa uszkodzenie.
Jest tutaj jedno zastrzeżenie: w potoku powłoka nie zgłasza błędów z lewej strony. (Wynika to z dość wspólnego scenariusza, gdzie po prawej stronie nie trzeba czytać wszystkich danych, na przykład
some_command | head
, i matryce lewostronnej ponieważ jego produkcja nie jest już potrzebne.) Więc tutaj się błąd odczytu zdd
BĘDZIE być ignorowanym. W bash ustawpipefail
opcję zgłaszania błędów ze wszystkich części potoku.Uważaj też, aby
dd bs=…
ignorować niektóre błędy idd
często jest wolniejsza niż alternatywy . Polecamdd
w ogóle nie używać : kopiowanie całego pliku nie ma żadnych zalet. W przeciwieństwie do tego, co gdzieś przeczytałeś,dd
nie jest to komenda niskiego poziomu dostępu do dysku ze specjalną właściwością, absolutnie nie ma magiidd
, magia jest/dev/hda
.Niemniej jednak, jeśli chcesz sprawdzić kopię zapasową, najlepszym sposobem jest pobranie kryptograficznej sumy kontrolnej z każdej strony i porównanie ich. Na przykład:
Sprawdź, czy dwie sumy kontrolne są identyczne.
Pamiętaj, że sprawdza to, czy kopia zapasowa i oryginał są identyczne w momencie sprawdzania. Wszystko, co zmienisz
/dev/hda
, w tym montowanie i odmontowywanie systemu plików, nawet bez dokonywania jakichkolwiek zmian (które zaktualizują datę ostatniego podłączenia w wielu systemach plików), zmieni sumę kontrolną. Jeśli chcesz później zweryfikować integralność, zanotuj gdzieś kopię zapasową dysku.źródło
/dev/hda
zmieniło od czasu utworzenia kopii zapasowej, skróty nie będą pasować.Jak wspomniano darnir i Giles, najlepiej jest uruchomić kryptograficzne skróty natychmiast po utworzeniu kopii zapasowej, zanim cokolwiek zostanie zmienione na dysku źródłowym. Jeśli jednak używałeś dysku od tego czasu, skróty najprawdopodobniej się nie zgadzają. Nawet zmiana jednego bajtu na dysku spowoduje zupełnie inny skrót.
Chociaż jest znacznie mniej niż idealny, możesz sprawdzić obraz, montując go. W systemie, w którym znajduje się obraz dysku, uruchom następujące polecenie (utwórz,
/mnt/disk
jeśli nie istnieje lub w innym miejscu):Następnie możesz przeglądać
/mnt/disk
i zobaczyć wszystkie pliki. Sprawdź skróty sha1 krytycznych plików w obrazie względem oryginałów, aby sprawdzić ich integralność.źródło
Użyj polecenia qemu-img
źródło