dd
to jedno z najważniejszych poleceń systemu Linux, używane głównie do tworzenia kopii zapasowych dysków twardych i partycji. Przy prawidłowym użyciu dd może być potężnym narzędziem do zapisywania danych z jednej partycji na drugą i wykonywania różnych zadań na plikach. Oto jak dobrze wykorzystać polecenie dd.
historia dd
Polecenie zostało pierwotnie opracowane w AT&T Bell Laboratories w latach 70. XX wieku przez informatyka Kena Thompsona. Został opracowany dla systemów opartych na systemie Unix i otrzymał nazwę, która została wybrana jako odniesienie do deklaracji znalezionej w języku kontroli zadań IBM, który nazywał się „DD”. Widać, że składnia polecenia bardzo przypomina instrukcję w języku kontroli zadań.
Komenda została pierwotnie zaprojektowana jako narzędzie do konwersji ASCII na EBCDIC i odwrotnie. Po raz pierwszy został zintegrowany z wersją systemu Unix w 1974 roku, wraz z wydaniem piątej edycji systemu operacyjnego.
dd został nazwany „niszczycielem dysków” jako żart w społeczności Unixa ze względu na jego zdolność do niszczenia danych na dyskach twardych, gdy jest używany niewłaściwie.
Podstawowe operandy
Teraz, gdy wiesz trochę o pochodzeniu polecenia i jego niszczycielskich zdolnościach, gdy jest używany niewłaściwie, nadszedł czas, aby dowiedzieć się, jak korzystać ze wszystkiego, co oferuje użytkownikom różnych dystrybucji Linuksa.
Najpierw sprawdź instrukcję za pomocą --help
flaga:

Najczęściej używane są dwa operandy. Oni są if
Y of
, co oznacza odpowiednio „plik wejściowy” i „plik wyjściowy”. ten if
operand jest używany do reprezentowania lokalizacji źródłowej, podczas gdy of
Operand służy do reprezentowania lokalizacji, w której chcesz zapisać dane z lokalizacji wejściowej.
dd if=<input file> of=<output file>
Najczęstsze lokalizacje źródłowe i wyjściowe to dyski twarde, partycje i obrazy dysków.
Przed użyciem polecenia pomocne może być użycie fdisk
narzędzie do przeglądania partycji w systemie. Można to łatwo zrobić za pomocą polecenia -l
flaga:

W tym przypadku, if
służy do reprezentowania dysku „/dev/sda” i of
reprezentuje dysk „/dev/sdb”, na którym zostaną zapisane dane z „/dev/sda”:
dd if=/dev/sda of=/dev/sdb

Tworzenie obrazu dysku
Jednym z najlepszych przypadków użycia polecenia jest utworzenie obrazów dysków w formacie pliku „.img”. Jest to niezwykle przydatne do tworzenia kopii zapasowych danych w systemie Linux i jest prawdopodobnie najszybszym i najłatwiejszym sposobem tworzenia kopii zapasowej całego dysku twardego.
W tym przypadku logika jest w większości taka sama, z if
operand reprezentujący dysk „/dev/sda” oraz of
operand reprezentujący plik „.img”, w którym dane dysku twardego zostaną zapisane w:
dd if=/dev/sda of=example.img

Zapisz obraz dysku na partycji
Tworzenie obrazu dysku za pomocą polecenia jest dość proste, ale podobnie jest z odwrotną wersją tego procesu.
W tym scenariuszu nasz plik obrazu dysku działa jako plik wejściowy, a nasza nowa partycja działa jako plik wyjściowy. Narzędzie zapisuje nasze dane obrazu dysku na naszej partycji „/dev/sdb”:
dd if=example.img of=/dev/sdb

Tworzenie skompresowanego obrazu dysku
Jeśli utworzysz obraz dysku pełnowymiarowego dysku twardego, możesz sobie wyobrazić, że rozmiar pliku końcowego obrazu dysku będzie prawdopodobnie dość duży. Z tego powodu narzędzie dd posiada funkcję, która tworzy skompresowane obrazy dysków.
Skompresowany obraz dysku można utworzyć za pomocą potoku |
Komenda. W tym przypadku służy do pobrania zawartości pliku wejściowego i wykonania gzip
polecenie z -c
flaga, z zawartością spakowaną do pliku „.gz”:
dd if=/dev/sda | gzip -c > image.gz

Określ rozmiar bloku
Możesz także bawić się szybkością operacji polecenia dd. Można to osiągnąć za pomocą bs
operand, który jest używany do reprezentowania rozmiaru bloku. Rozmiar bloku reprezentuje liczbę bajtów dd skopiowanych do pliku wyjściowego w jednej instancji. Jest reprezentowany przez wielokrotności 1024 bajtów, a domyślna wartość to 512 bajtów. Im większy rozmiar bloku, tym szybciej dane zostaną zapisane w pliku wyjściowym.
W tym przypadku ustawiamy rozmiar bloku na 2048:
dd if=/dev/sda of=example.img bs=2048
Rozmiar bloku można również określić w kilobajtach:
dd if=/dev/sda of=example.img bs=2048K

Wyczyść dysk twardy
dd może być również używany do czyszczenia dysku twardego. Osiąga się to poprzez odczytanie zer lub losowych znaków z „/dev/zero” lub „/dev/urandom” i zapisanie ich na dysku twardym/partycji, co nadpisuje znajdujące się na nim dane. Jest to niezwykle przydatne, gdy chcesz mieć pewność, że Twoich danych nie będzie można łatwo odzyskać po sprzedaży lub utylizacji dysku twardego.
Zastąp dysk twardy zerami:
dd if=/dev/zero of=/dev/sdb

Proces nadpisywania można również wykonać za pomocą losowych znaków:
dd if=/dev/urandom of=/dev/sdb

Utwórz rozruchowy dysk USB
Tworzenie rozruchowych dysków flash USB przy użyciu plików „.iso” za pomocą polecenia jest proste:
dd if=os.iso of=<USB drive location>

Kończący się
Można śmiało powiedzieć, że polecenie dd można uznać za „szwajcarski scyzoryk” ze względu na jego użyteczność w wielu obszarach i we wszystkim, co dotyczy dysków twardych, partycji i plików obrazów dysków. Dopóki nie zniszczy dysku twardego, jest skutecznym i łatwym w użyciu narzędziem do wszystkiego, od czyszczenia dysku twardego lub dysku USB po tworzenie skompresowanych kopii zapasowych.
Czy ten artykuł jest przydatny?