Przejdź do głównej zawartości

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.

Okno terminala
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.

ParametrOpis
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).

Okno terminala
# 1. Utworzenie bootowalnego pendrive z obrazu ISO
sudo 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 NVMe
sudo 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 lub oflag=sync by wymusić zapis na dysk przed zakończeniem.

Błąd / KomunikatPrzyczynaRozwiązanie
dd: failed to open '/dev/sdX': Permission deniedBrak uprawnień do urządzenia blokowegoUruchom polecenie z sudo.
dd: failed to open '/dev/sdX': No such file or directoryZła nazwa urządzeniaZweryfikuj identyfikator dysku (lsblk).
dd: writing '/dev/sdX': No space left on deviceUrządzenie docelowe za małeZmień of= na większy dysk lub ogranicz count=.
Operacja bardzo wolnaMały rozmiar bloku, zapis przez cacheZwiększ bs= oraz dodaj oflag=direct.