Wstęp

Wstęp

To, co czytasz, jest tylko pierwszym z wielu artykułów z serii „Learning Linux Commands”. Dlaczego mielibyśmy zrobić coś takiego? Ponieważ warto mieć każdą opcję i możliwe użycie powszechnie używanego polecenia w jednym miejscu. Znajdziesz kilka opcji lub nawet poleceń, o których nawet nie wiedziałeś, a twoje życie jako użytkownika / administratora Linux stanie się łatwiejsze. Jeśli nie boisz się otworzyć terminal i znasz podstawy korzystania z systemu Linux, ten artykuł jest dla Ciebie.

Dlaczego DD?

Wybraliśmy DD jako pierwszego pretendenta z naszej serii, ponieważ jest to przydatne narzędzie, które ma wiele opcji, jak zobaczysz. To sprawia, że ​​jest to prawie jeden ze szwajcarskich noży ze świata Linuksa. Tak, ten termin (szwajcarski nóż armii) jest używany bardziej niż powinien być przez pisarzy artykułów zorientowanych na Linuksa, więc nie mogliśmy zdać możliwości sami go użyć.

Ogólne użycie

Zanim zaczniemy, chcieliśmy dać ci ogólne wyobrażenie o tym, jak używany jest DD. Po pierwsze, nazwa pochodzi od „Deplikatora danych”, ale jest również żartobliwie, że oznacza „niszczyciel dysku” lub „niszczyciel danych”, ponieważ jest to bardzo potężne narzędzie. Dlatego zalecamy dodatkową ostrożność podczas korzystania z DD, ponieważ jedna chwila nieostrożności może kosztować cenne dane. Ogólna składnia polecenia DD to

 # dd if = $ input_data o = $ output_data [opcje]

Dane wejściowe i wyjściowe mogą być dyski, partycje, pliki, urządzenia… głównie wszystko, co możesz napisać lub odczytać z. Jak zobaczysz, możesz na przykład użyć DD w kontekście sieciowym, aby wysyłać strumienie danych w sieci LAN. Możesz mieć tylko część wejściową w swoim poleceniu DD lub tylko pole wyjściowe, a nawet w niektórych przypadkach możesz wyeliminować oba. Wszystko to będzie traktowane w poniższej tabeli.



Przykłady

Uczenie się polecenia Linux DD z przykładami
Składnia polecenia Linux Opis polecenia Linux
Systemy plików
dd if =/dev/urandom o =/dev/sda bs = 4k
Wypełnia dysk losowymi danymi
dd if =/dev/sda o =/dev/sdb bs = 4096

Duplikacja jazdy do napędu

dd if =/dev/zero =/dev/sda bs = 4k
Oczyść dysk twardy (może wymagać powtórzenia)
dd if = inputFile o =/dev/st0 Bs = 32k Conv = Sync
Kopiuj z pliku do urządzenia taśmowego
dd if =/dev/st0 of = Outfile Bs = 32k Conv = Sync
Powyższe, odwrócone
DD if =/dev/sda | Hexdump -C | grep [^00]
Sprawdź, czy dysk jest naprawdę zerowany
dd if =/dev/urandom o =/home/$ użytkownik/ogromny plik \ bs = 4096
Wypełnia partycję (ostrożnie za pomocą partycji systemowych!)
LS -L myfile -Rw-r-r- 6703104 31 października 18:25 myfile dd if =/dev/urandom = myfile bs = 6703104 liczba = 1
Wymagaj plik (może przed jego usunięciem)
dd if =/dev/sda3 o =/dev/sdb3 bs = 4096 \ conv = notRunc, noerror
Skopiuj partycję na inną partycję
DD if =/proc/fileSystems | Hexdump -C | mniej
Wyświetl dostępne systemy plików
DD if =/proc/partycje | Hexdump -C | mniej
Zobacz dostępne partycje w KB
dd if =/dev/sdb2 IBS = 4096 | gzip> partycja.obraz.GZ \ CONT = NOERROR
Tworzy gzipped obraz drugiej partycji
drugiego dysku
DD BS = 10240 CBS = 80 CONT = ASCII, Unblock \ if =/dev/st0 of = ASCII.na zewnątrz
Skopiuj zawartość napędu taśmowego do pliku, konwertując
Od ebcdic do ASCII
dd if =/dev/st0 IBS = 1024 OBS = 2048 o =/dev/st1
Skopiuj z urządzenia blokowego 1KB do urządzenia blokowego 2KB
dd if =/dev/zero o =/dev/null bs = 100 m crowin = 100 100+0 rekordy w 100+0 rekordy 10485760000 bajtów (10 GB) skopiowane, 5.62955 s, 1.9 GB/s
Kopiuj 10 GB zer do śmieci puszki.
dd if =/dev/zero =/dev/sda bs = 512 Count = 2 fdisk -s/dev/sda dd if =/dev/zero o =/dev/sda shee = \ (numer_of_sectors - 20) BS = 1k = 1k
Usuń GPT z dysku. Ponieważ GPT pisze dane na początku
I pod koniec jazdy, po
usuwając od samego początku, musimy znaleźć liczbę
sektorów (drugie polecenie), a następnie usuń ostatnie 20 sektorów.
dd if =/home/$ użytkownik/bootimage.IMG o =/dev/sdc
Utwórz rozruchowy dysk USB (tutaj pokazany jako /dev /sdc)
dd if =/dev/sda o =/dev/null bs = 1m
Dobry sposób na sprawdzenie złych bloków
Tworzenie kopii zapasowych i związanych z systemem
dd if =/dev/sda o =/dev/fd0 BS = 512 Liczba = 1
Kopiuje MBR do dyskietki
dd if =/dev/sda1 o =/dev/sdb1 bs = 4096
Duplikacja jazdy do napędu
dd if =/dev/sr0 o =/home/$ użytkownik/mycdimage.ISO \ BS = 2048 COND = nosync
Utwórz obraz płyty CD
Mount -o Loop/Home/$ User/MycDimage.ISO \/mnt/cdimages/
Mount Said Image lokalnie
dd if =/dev/sda o =/dev/sdb bs = 64K CONV = SYNC
Przydatne podczas wymiany dysku innym o identycznych rozmiarach
dd if =/dev/sda2 o =/home/$ user/hddimage1.IMG \ BS = 1M liczba = 4430 DD if =/dev/sda2 o =/home/$ user/hddimage2.IMG \ BS = 1M liczba = 8860 […]
Utwórz obrazy DVD partycji (przydatne do tworzenia kopii zapasowej)
dd if =/$ location/hddimage1.IMG o =/dev/sda2 \ bs = 1m dd if =/$ location/hddimage2.IMG OF =/dev/sda2 \ szuka = ​​4430 BS = 1M DD IF =/$ LOCATION/HDDIMAGE3.IMG o =/dev/sda2 \ shee = 8860 bs = 1m [i tak dalej…]
Przywróć z góry
dd if =/dev/zero liczba = 1 BS = 1024 szuka = ​​1 OF =/Dev/Sda6
Zniszcz superblock
dd if =/dev/zero liczba = 1 bs = 4096 szuka = ​​0 o =/dev/sda5
Inny sposób na zniszczenie superbloku
dd if =/home/$ użytkownik/podejrzany.Doc | Clamscan -
Sprawdź plik wirusy (potrzebuje CLAMAV)
DD if =/home/$ użytkownik/plik binarny | Hexdump -C | mniej
Spójrz na zawartość pliku binarnego (potrzebuje Hexdump)
dd if =/home/$ user/bigFile o =/dev/null dd if =/dev/zero o =/home/$ user/bigfile \ bs = 1024 Count = 1000000
Benchmarks dysk twardy do prędkości odczytu/zapisu
dd if =/dev/sda o =/dev/sda
Daje nowe życie starszym dyskom twarde, które nie były używane przez jakiś czas (dysk należy niezamontowany)
DD if =/dev/mem | Strings | grep „string_to_search”
Zbadaj zawartość pamięci (to znaczy czytna ludzka)
dd if =/dev/fd0 o =/home/$ użytkownik/floppy.Obraz \ BS = 2x80x18b Conv = notRunc
Skopiuj dyskietkę
DD if =/proc/kCore | Hexdump -C | mniej
Wyświetl pamięć wirtualną
DD if =/proc/fileSystems | Hexdump -C | mniej
Wyświetl dostępne systemy plików
dd if =/proc/kallsyms | Hexdump -C | mniej
Wyświetl załadowane moduły
DD if =/proc/przerwania | Hexdump -C | mniej
Zobacz tabelę przerwania
DD if =/proc/uptime | Hexdump -C | mniej
Wyświetl czas pracy w kilka sekund
DD if =/proc/partycje | Hexdump -C | mniej
Zobacz dostępne partycje w KB
dd if =/proc/meminfo | Hexdump -C | mniej
Zobacz memstaty
dd if =/dev/urandom o =/home/$ użytkownik/myRandom \ bs = 100 liczba = 1
Tworzy plik 1 kB losowego bełkotu
dd if =/dev/mem of =/home/$ użytkownik/mem.Bin \ BS = 1024
Tworzy obraz rzeczywistego stanu pamięci systemowej
dd if =/home/$ użytkownik/myfile
Drukuje plik do stdout
dd if =/dev/sda2 BS = 16065 | hexdump -c \ | grep „text_to_search”
Wyszukaj całą partycję, aby uzyskać ciąg; Nawet jeśli jest zabezpieczony,
Możesz uruchomić LiveCd
dd if =/home/$ użytkownik/plik.Bin Skip = 64K BS = 1 \ OF =/HOME/$ User/Convfile.kosz
Skopiować plik.Bin to Convfile.Bin pomija pierwsze 64 kb
dd if =/home/$ użytkownik/bootimage.IMG o =/dev/sdc
Utwórz rozruchowy dysk USB (tutaj pokazany jako /dev /sdc)
dd if =/dev/mem bs = 1K skip = 768 Count = 256 \ 2>/dev/null | Strings -n 8
Przeczytaj BIOS.
DD BS = 1K if = imagefile.nrg of = imagefile.Skip ISO = 300k
Konwertuj obraz Nero na standardowy obraz ISO.
Jest to możliwe, ponieważ jedyna różnica między
Dwa to nagłówek 300 kb, nero dodaje standardowego pliku ISO.
Echo -n „Hello Vertical World” | dd cbs = 1 \ conv = Unblock 2> /dev /null
Spróbuj, jest bezpieczny. 🙂
dd if =/dev/sda1 | GZIP -C | split -b 2000m - \/mnt/hdc1/kopia zapasowa.img.GZ
Utwórz gzipped obraz partycji za pomocą podziału
Cat/MNT/HDC1/Backup.img.GZ.* | gzip -dc | \ dd o =/dev/sda1
Przywróć powyżej kopii zapasowej
dd if =/dev/zero = myimage bs = 1024 liczba = 10240
Utwórz pusty obraz dysku
DD IBS = 10 SKIP = 1
Pasp Pierwsze 10 bajtów stdina
DD BS = 265B CONT = NOERROR IF =/Dev/ST0 \ OF =/TMP/BAD.taśma.obraz
Zrób wizerunek napędu taśmowego ze złymi plamami
dd if =/dev/sda Count = 1 | Hexdump -C
Zobacz swój MBR
DD if =/dev/sda | NC -L 10001 NC $ System_to_backup_ip 10001 | dd \ of = sysbackupsda.img
Fast Network Backup za pomocą Netcat
dd if =/dev/zero =/dev/sdx \ bs = 1024000 liczba = 1
Wyczyść pierwsze 10 MB partycji
dd if =/dev/zero = tmpswap bs = 1K \ Count = 1000000 CHMOD 600 TMPSWAP MKSWAP TMPSWAP SWAPON TMPSWAP
Utwórz tymczasową przestrzeń wymiany
dd if =/dev/sda o =/dev/null bs = 1024K \ Count = 1024 1073741824 bajtów (1.1 GB) skopiowane, 24.1684 s, 44.4 MB/s
Określ sekwencyjną prędkość we/wy swojego napędu. Czytanie pliku 1 GB
DD if =/dev/losowe liczba = 1 2>/dev/null | od -t u1 | \ awk 'drukuj 2 $' | głowa -1
Wygeneruj liczbę losową
dd if =/dev/mem of = myram bs = 1024
Skopiuj pamięć RAM do pliku
dd if =/dev/sda bs = 512 liczba = 1 | OD -xa
Zobacz zawartość swojego MBR w formacie sześciokątnym i ASCII
dd if =/my/old/mbr o =/dev/sda bs = 446 liczba = 1
Przywróć MBR bez zakłócającego zapisu tabeli partycji
który wynosi od 447 do 511 bajtów
dd if =/dev/sda1 | split -b 700m -SDA1 -Image
Utwórz kopię partycji i zapisz obrazy, gdzie maksymalnie
Rozmiar głośności to 700 MB
Manipulacja tekstem
LS -L | dd Conv = Ucase
Konwertuj wyjście polecenia na wielki
Echo „My Upper Case Text” | DD CONT = LCAS
Konwertuj dowolny tekst na małe litery
dd if =/etc/passwd cbs = 132 Conv = ebcdic o =/tmp/passwd.ebcdic
Konwertuj plik hasła systemowego na plik ebcdic-format o stałej długości
dd if = tekst.ASCII of = tekst.ebcdic Conv = ebcdic
Konwertuj z ASCII na ebcdic
dd if = myfile of = myfile conv = ucase
Konwertuj plik na górną część (prosta wymiana SED lub TR)

Wniosek

To była tylko niewielka część tego, co DD może zrobić, i mamy nadzieję, że ten artykuł uda się zawierać najbardziej przydatne przykłady dla codziennego użytkownika. Jednak zanim przejdziesz dalej, zalecamy przeczytanie dokumentacji dysku twardego, szukając takich rzeczy jak ograniczenie LBA i zachować dodatkową ostrożność podczas korzystania z DD w terminalu głównym.
Oczywiście masz już kopie zapasowe, ale trochę dodatkowej opieki pozwoli ci zaoszczędzić godziny niepotrzebnej pracy.

Powiązane samouczki Linux:

  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 22.04 JAMMY Jellyfish…
  • Pobierz Linux
  • Rzeczy do zainstalowania na Ubuntu 22.04
  • Ubuntu 20.04 Przewodnik
  • Zainstaluj Arch Linux na stacji roboczej VMware
  • Jak podwójnie rozruch Kali Linux i Windows 10
  • Polecenia Linux: Top 20 najważniejsze polecenia, które musisz…