Wstęp
- 4119
- 831
- Tacjana Karpiński
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…