dd
- dd – program do bezpośredniego odczytu/zapisu bloków danych, umożliwiający tworzenie obrazów dysków, klonowanie partycji, wykonywanie kopii zapasowych MBR/GPT, testy wydajności I/O oraz masowe wypełnianie danymi (
/dev/zero
,/dev/random
). - Obsługuje konwersję formatów (np. endianness, ASCII ↔ EBCDIC), wyrównywanie bloków oraz potokowanie do/z innych narzędzi.
- Dostępny w pakiecie GNU
coreutils
praktycznie we wszystkich dystrybucjach Linuksa, macOS, BSD oraz w środowiskach POSIX.
Składnia
Dział zatytułowany „Składnia”dd if=<wejście> of=<wyjście> [opcje]
if=
– plik lub urządzenie wejściowe (domyślnie stdin).of=
– plik lub urządzenie wyjściowe (domyślnie stdout).- Opcje podawane są w postaci
param=wartość
bez spacji.
Parametry
Dział zatytułowany „Parametry”Parametr | Opis |
---|---|
if=<plik> | Źródło danych do odczytu. |
of=<plik> | Miejsce zapisu danych. |
bs=<N> | Jednolity rozmiar bloku we/wy (np. 1M ). |
ibs=<N> | Rozmiar bloku przy odczycie (ignoruje bs ). |
obs=<N> | Rozmiar bloku przy zapisie (ignoruje bs ). |
count=<N> | Liczba bloków do skopiowania. |
skip=<N> | Pomija N bloków wejściowych przed kopiowaniem. |
seek=<N> | Pomija N bloków wyjściowych (przesuwa offset). |
conv=<lista> | Konwersje (np. noerror , sync , fdatasync , ucase ). |
status=<tryb> | Poziom informacji (none , noxfer , progress ). |
iflag/oflag=<flagi> | Parametry urządzeń (np. direct , sync , fullblock ). |
Przykłady użycia
Dział zatytułowany „Przykłady użycia”# 1. Utworzenie bootowalnego pendrive z obrazu ISOsudo dd if=archlinux.iso of=/dev/sdX bs=4M status=progress conv=fsync
# 2. Backup pierwszego sektora (MBR)sudo dd if=/dev/sda of=mbr.img bs=512 count=1
# 3. Test prędkości zapisu na dysku NVMesudo dd if=/dev/zero of=/mnt/test.img bs=1G count=2 oflag=direct status=progress
- Ryzyko utraty danych: Niepoprawne wskazanie
of=
może nadpisać ważne dane – zawsze sprawdź nazwę urządzenia (lsblk
,fdisk -l
). - Uprawnienia: Dostęp do urządzeń blokowych wymaga uprawnień roota (
sudo
). - Wydajność: Większy
bs
zmniejsza liczbę operacji sys‑call, ale zużywa więcej RAM;oflag=direct
omija cache. - Synchronizacja: Użyj
conv=fdatasync
luboflag=sync
by wymusić zapis na dysk przed zakończeniem.
Najczęściej spotykane błędy i jak je naprawić
Dział zatytułowany „Najczęściej spotykane błędy i jak je naprawić”Błąd / Komunikat | Przyczyna | Rozwiązanie |
---|---|---|
dd: failed to open '/dev/sdX': Permission denied | Brak uprawnień do urządzenia blokowego | Uruchom polecenie z sudo . |
dd: failed to open '/dev/sdX': No such file or directory | Zła nazwa urządzenia | Zweryfikuj identyfikator dysku (lsblk ). |
dd: writing '/dev/sdX': No space left on device | Urządzenie docelowe za małe | Zmień of= na większy dysk lub ogranicz count= . |
Operacja bardzo wolna | Mały rozmiar bloku, zapis przez cache | Zwiększ bs= oraz dodaj oflag=direct . |
Linki i źródła
Dział zatytułowany „Linki i źródła”- man dd – oficjalna dokumentacja.
- GNU coreutils – dd – pełny manual online.
- ArchWiki: dd – praktyczne poradniki.