Movatterモバイル変換


[0]ホーム

URL:


Przejdź do zawartości
Wikipediawolna encyklopedia
Szukaj

dd (Unix)

Z Wikipedii, wolnej encyklopedii

dduniksowy program do niskopoziomowego kopiowania i konwersji surowych danych (ang. raw data).dd jest używane do kopiowania określonej liczbybajtów lub bloków danych wraz z opcjonalnym konwertowaniem kopiowanych danych (np. zmianą kolejności bajtów, konwersją zEBCDIC doASCII). Powszechnym wykorzystaniemdd jest do tworzenia kopiiboot sektora dysku, odczyt danych ze specjalnych plików takich jak/dev/zero albo/dev/random. Sprawdza się również przy odczycie i zapisie urządzeń blokowych takich jak taśmy magnetyczne.

Ponieważdd potrafi operować napartycjach lub na całych dyskach, jest często wykorzystywane przy gromadzeniu „cyfrowych dowodów”, gdzie niezbędne jest odczytanie dysku „bit po bicie”. Użycie komendycp byłoby tu niewystarczające, gdyż dane z usuniętychplików, które nie zostały jeszcze „nadpisane”, nie są widoczne dlasystemu plików, do którego odwołuje sięcp, a którydd pomija.

WGNU/Linuksie jest częścią pakietuGNU Coreutils.

Pochodzenie nazwy

[edytuj |edytuj kod]
  • convert andcopy” → „cc” → „dd

część podręcznika systemu UNIX z 1975 r. opisującadd była zatytułowana „dd - convert and copy a file”. Ponieważ skrót „cc” od pierwszych liter wyrażenia „copy and convert” był już zajęty przezkompilatorjęzyka C (ang.C Compiler), stąd zdaniem niektórych użyto kolejnych liter alfabetu.

  • „dd” jestakronimem wyrażenia „datadefinition” pochodzącego z języka JCL firmyIBM, jednak jego składnia nie ma związku z poleceniem uniksowym.
  • niektórzy mówią żartobliwie, żedd to skrót od „destroydisk” lub „deletedata”, ponieważ omyłkowa zamiana wartości parametru „of” (ang.output file - plik wyjściowy) może zniszczyć dane (nadpisując dane z dysku źródłowego nieopatrznie użytego jako docelowy).

Składnia polecenia dd

[edytuj |edytuj kod]

np. dd if=nazwa_pliku_wejściowego of=nazwa_pliku_wyjściowego

W rodzinie systemów UNIX obowiązuje zasada, aby stosować jednakową składnię dla wszystkich poleceńlinii poleceń. Twórcyddzłamali tę zasadę[potrzebny przypis], rzekomo wzorując składniędd na składnijęzyka JCL. Zamiast uniksowej składni „-opcja wartość”dd używa składni „opcja=wartość”. Ponadto wejście programudd oznaczamy opcją „if” (ang.input file - plik wejściowy), podczas gdy większość komend pobiera nazwę wejścia bez dodatkowych oznaczeń. W przypadku wyjścia programu „of” (ang.output file - plik wyjściowy) sytuacja jest analogiczna. Innymi słowy w dd stosowane są parametry kluczowe, a nie pozycyjne.Nadmiarowa składnia zapobiega pomyleniu i bezpowrotnej destrukcji danych.

Przykłady wykorzystania

[edytuj |edytuj kod]
dd if=/dev/cdrom of=/home/użytkownik/obraz_plyty.iso

gdzie /dev/cdrom jest plikiem urządzenia odczytującegoCD-ROM, a /home/użytkownik/obraz_plyty.iso plikiem wynikowym.

  • Nagrywanieobrazu dyskietki na dyskietkę:
dd if=obraz_dyskietki.img of=/dev/fd0

obraz_dyskietki.img - nazwa pliku zawierającego obrazdyskietki./dev/fd0 - napęd dyskietek

  • TworzeniekopiiMBR dysku:
dd if=/dev/hda of=kopia_mbr bs=512 count=1

zapisze kopię MBR pierwszego dysku (hda) w pliku kopia_mbr

  • Kasowanie całego dysku (wraz z MBR i wszystkimi partycjami) przez nadpisanie losowymi danymi:
dd if=/dev/urandom of=/dev/sdb
  • Secure Erase HDD
dd if=/dev/zero of=dysk
  • Enhanced Secure Erase HDD
exporthdd=dyskforn$(seq12);doddif=/dev/urandomof=$hdd;done;ddif=/dev/zeroof=$hdd

/dev/sdb - nazwa dysku, który chcemy skasować (dyski można sprawdzić #fdisk -l).

  • Tworzenie pliku o rozmiarze 1GB wypełnionego losowymi danymi.
dd if=/dev/urandom of=duzy_plik bs=512 count=2097152

Ponieważ 1GB to 1024⋅1024⋅1024 = 1 073 741 824 B, a parametrem bs=512 określiliśmy pożądany rozmiar bloku danych na 512 B, stąd liczba kopiowanych bloków danych musi wynosić: 1 073 741 824 / 512 = 2 097 152, co określa parametr count=2097152.

  • Przegranie wszystkich bajtów z partycji /dev/sdb2 do pliku, poza pierwszymi 29 997 563 904 (=288⋅1024⋅101 717) bajtami - komendabash
disk='/dev/sdb2'tape='reszta1Linux'(dd bs=288k skip=101717 count=0 && dd bs=1) < $disk> $tape

512bajtów jest domyślnym rozmiarem bloku.

  • Przeglądanie (lub przeszukiwanie z „/”) zawartościpamięci.
dd if=/dev/mem|hexdump -C |less
  • Czyszczenie wolnej przestrzeni nośnika w celu zwiększenia kompresowalności jego obrazu.
$ dd if=/dev/zero bs=4096 count=1000 of=p1; dd if=/dev/zero of=p2; rm -f p1; rm -f p2
  • Przesyłanie z kompresją obrazu całego dysku komputera A (wszystkie partycje) na komputer Blokalnej sieci. Kompresja i łączenie przeznc jest parę razy szybsze niż przez popularnessh, jednak nie chroni danych przed podsłuchem, dlatego niebezpieczne poza siecią pod kontrolą.
A # dd if=/dev/cciss/c0d0 |gzip |nc 192.168.1.30 5555B $ nc -l 5555 > zapasSerwera.img.gz

W przykładzie /dev/cciss/c0d0 tomacierz dyskowaHP. Do wejścia 'if=' może być skierowane również dowolne urządzenie: dysk /dev/sda macierz programowa /dev/md1, pojedyncza partycja np/dev/sdp6 lublogiczny volumen /dev/vgrupa2/lvol4. Jeżeli uruchomimy komputer A z linuksowegoLive CD można będzie podobnie zabezpieczyć system dowolnegoWindows cały pierwszy twardy dysk z partycją C: będzie wtedy /dev/hda lub /dev/sda.

  • Tworzenie kopii dysku z dokładnością do jednego bita:
# dd if=/dev/sdb of=dysk.img

Gdzie /dev/sdb to dysk którego chcemy zrobić kopię, a dysk.img to plik obrazu dysku (w wypadku określenia urządzenia zamiast pliku, zostanie on sklonowany)

  • Tworzenie kopii uszkodzonego dysku z dokładnością do jednego bita.
# dd if=/dev/hdb of=uszkodzony_dysk.img conv=noerror


Gdzie /dev/hdb to uszkodzony dysk którego chcemy zrobić kopię, a uszkodzony_dysk.img to plik obrazu dysku.

Linki zewnętrzne

[edytuj |edytuj kod]
Polecenia systemów operacyjnych Unix
System plików
Procesy
Środowisko użytkownika
Przetwarzanie tekstu
Wbudowane w powłokę
Komunikacja
Wyszukiwanie
Dokumentacja
Różne
Źródło: „https://pl.wikipedia.org/w/index.php?title=Dd_(Unix)&oldid=72483980
Kategorie:
Ukryta kategoria:

[8]ページ先頭

©2009-2025 Movatter.jp