Site Overlay

Linux-Kommandoen DD – 15 Eksempler med Alle Valg

Linux-dd-kommandoen er en av de mest kraftige verktøy som kan brukes i en rekke måter. Dette verktøyet er i hovedsak brukt for å kopiere og konvertering av data, derav det står for data duplicator. Dette verktøyet kan brukes for:

  • Sikkerhetskopiering og gjenoppretting av en hel harddisk eller partisjon.
  • Opprette virtuelle filsystem og backup bilder av CD-er eller Dvd-er kalt ISO-filer
  • Kopier områder av raw-filer for enhet som sikkerhetskopiere MBR (master boot record).
  • Konvertering av data formater som ASCII til EBCDIC.,
  • Konverterer små bokstaver til store og vice versa.

Bare superbruker kan kjøre denne kommandoen. Du bør være svært forsiktig når du bruker denne kommandoen som feilaktig bruk kan føre til store tap av data. Så, noen folk anser dette verktøyet som data destroyer.

Syntaksen for kommandoen dd

Den grunnleggende bruk av dd-kommandoen er ganske enkelt fordi det bare tar to argumenter: hvis= for å angi inndata-filen og av= å spesifisere output fil. Argumentene til de valg kan være enten filer eller blokkere enheter., Jeg ville imidlertid ikke anbefale å bruke dd til å kopiere filer fordi cp gjør at i en mye enklere måte. Men, du kan bruke den til å klone en harddisk. Syntaksen er

dd if=<source file name> of=<target file name> 

Vi vil lære ulike alternativer mens du går gjennom dd-kommandoen eksempler.

Sikkerhetskopiering og gjenoppretting av en hel disk eller partisjon

Det er mulig å lagre alle dataene fra en hel disk/partisjon til en annen disk/partisjon. Ikke en enkel kopi som cp-kommandoen, men en blokk størrelse kopi.

en., Backup av hele disken til disken

Du kan kopiere alle dataene (hele disken) fra disk /dev/sda til /dev/sdb. dd vet ikke noe om filsystemet eller partisjoner, vil det bare kopiere alt fra /dev/sda til /dev/sdb. Du trenger for å indikere blokk-størrelse til å være kopiert i gang med bs alternativ. Så, dette vil klone disken med de samme data på samme partisjon.

Dette fungerer bare hvis den andre enheten er like stor som eller større enn den første., Ellers, du får avkortet og verdiløs partisjoner på den andre. Her, hvis det står for input-fil , for står for output file og bs står for blokk-størrelse (antall byte som skal lese/skrive på en gang). Sørg for at du bruker blokkere størrelser i multipler av 1024 byte som er lik 1KB. Hvis du ikke angi blokk-størrelse, dd bruke en standard blokk-størrelse på 512 byte. conv verdi parameteren noerror gir det verktøy for å fortsette å kopiere data selv om det oppdager noen feil. Sync alternativet gjør det mulig å bruke synkronisert I/O.

b., Opprette dd disk image (fil bildet)

Du kan lage et bilde av en harddisk, eller en fil som bilde. Sikkerhetskopiere en disk til et bilde vil være raskere enn å kopiere den eksakte data. Også, disk image gjør restaurering mye lettere.

# dd if=/dev/sda of=/tmp/sdadisk.img

Du kan lagre filen der du vil, men du må gi et filnavn som slutter med .img extension som ovenfor. I stedet for /tmp/sdadisk.img du kan lagre den for eksempel på /sdadisk.img hvis du vil.

c., Opprette en komprimert disk image

Fordi dd skaper det nøyaktige innholdet av en hel disk, betyr det at det tar for mye størrelse. Du kan bestemme deg for å komprimere platebildet med kommandoen nedenfor

# dd if=/dev/vda | gzip -c >/tmp/vdadisk.img.gz

røret | operatør gjør utgang på venstre kommandoen bli inngang på høyre kommando. -c alternativet skriver utgang på standard output og beholder den opprinnelige filer uendret.

d. Backup en partisjon eller klone en partisjon til en annen

i Stedet for en hel disk, du kan bare sikkerhetskopiere en enkelt partisjon., Du trenger bare å angi partisjon navn i input-filen som under

# dd if=/dev/sda1 of=/dev/sdb1 bs=4096 conv=noerror,sync

Dette vil synkronisere partisjon /dev/sda1 til /dev/sdb1. Må du kontrollere at størrelsen av /dev/sdb1 bør være større enn /dev/sda1. Eller du kan opprette en partisjon bilde som nedenfor

# dd if=/dev/sda1 of=/tmp/sda1.img

– e. Gjenopprette en disk eller partisjon bilde

Lagre en disk eller partisjon bidrar til å gjenopprette alle dataene, hvis det er noe problem med vår opprinnelige stasjonen., Hvis du vil gjenopprette, må du inverse input-fil med utfilen som er angitt under backup drift as nedenfor.

# dd if=/tmp/sdadisk.img of=/dev/sda

vil Du hente data som var til stede før den sikkerhetskopiering og ikke etter operasjonen

– e. Gjenopprette komprimert bilde

Du må først angi den komprimerte filen og utdatafilen som er harddisken komprimert før.

# gzip -dc /tmp/vdadisk.img.gz | dd of=/dev/vda

– d alternativ her er å dekomprimere. Merk filen. Du kan montere gjenopprettet harddisken til å se innholdet., Vær oppmerksom på at du vil data som legges til etter den siste komprimering backup drift.

Opprette virtuelle filsystem/Backup bilder av CD-er eller Dvd som iso-filene

Du kan trenger for å skape et virtuelt filsystem på Linux for noen grunner som å opprette en virtuell maskin på Linux-verten. Du kan også behov for å lage en backup iso-avbildningen til en CD eller DVD

en. Å skape et virtuelt filsystem

Et virtuelt filsystem er et filsystem som finnes i en fil, som i sin tur eksisterer på en fysisk disk. Du kan trenge det til å lage for eksempel en ekstra bytte eller loop-enhet eller en virtuell maskin., Vi trenger /dev/zero som er en fil som brukes til å opprette en fil med ingen data, men med nødvendig størrelse (en fil med alle nuller). Med andre ord, dette vil skape en data-fil med alle nuller i filen som vil gi størrelse på en fil.

# dd if=/dev/zero of=/file bs=1024K count=500500+0 records in500+0 records out524288000 bytes (524 MB) copied, 1.21755 s, 431 MB/s

alternativet count refererer til antall input blokker for å bli kopiert. Kombinert med blokk-størrelse verdi, det viser den samlede størrelsen til å kopiere., For eksempel bs=1024k og count=500 gi en størrelse=1024K*500 =524288000 bytes =524MB

la oss Nå sjekke størrelsen på vår fil

# ls -lh /file-rw-r--r-- 1 root root 500M May 17 18:57 /file

Du kan se at vi har vår virtuelle filsystem som er opprettet med den størrelse som er angitt. Du kan nå bruke den til å lage sløyfe-enhet eller en virtuell disk eller noe annet.

b. Endre den første 512 byte av en fil med null data

Hvis under operasjonen du angi en eksisterende utgang fil, vil du miste sine data. For noen grunner, kan du trenge å skifte ut en blokk størrelsen på utdatafilen.,

dd if=/dev/zero of=file1 bs=512 count=1 conv=notrunc

notrunc alternativ refererer til ikke å avkorte filen, bare erstatte den første 512 byte, hvis det finnes. Ellers, du vil få en 512 byte-fil

c. Opprette en sikkerhetskopi iso-bilde av CD-eller DVD –

lurer Du kanskje på hvorfor ikke bare kopiere innholdet på CDEN til en mappe. Hvordan ville du takle boot sektor på en CD? Kan du ikke finne det som en fil på enheten, fordi det er bare den første sektor. Fordi dd kopier sektor etter sektor, på den annen side, det vil kopiere informasjonen som godt.,

# dd if=/dev/cdrom of=/mycd.iso

Du trenger å vite at du har til å bruke -o loop alternativ, som lar deg montere en fil som en vanlig enhet. Så, for å montere /mycd.iso/mnt/cd – katalogen, gjør du under

# mount -o loop /mycd.iso /mnt/cd

d) Opprette en oppstartbar USB-Stasjon

la oss anta at vi har lastet ned centos iso-bildet her til denne katalogen «~/Downloads/».

om=~/Downloads/CentOS-8-x86_64-1905-dvd1.iso – input filen er på enheten og banen ‘~/Downloads/CentOS-8-x86_64-1905-dvd1.,iso’

av=/dev/sdb – utgang filen er på enheten og banen ‘/dev/sdb’

bs=1 M – Les fra ‘~/Downloads/CentOS-8-x86_64-1905-dvd1.iso’ å skrive ‘/dev/sdb’ 1 Megabyte med data på en gang.

# dd if=~/Downloads/CentOS-8-x86_64-1905-dvd1.iso of=/dev/sdb bs=1M

Sikkerhetskopiere og gjenopprette MBR

GRUB bootloader er vanligvis lagret i MBR av oppstartbar stasjonen. MBR utgjør de første 512 byte av disken, slik at opp til 466 bytes lagringsplass for bootloader. Den ekstra plassen vil bli brukt til å lagre partisjonstabellen for at stasjonen., Hvis MBR blir ødelagt, vil vi ikke være i stand til å starte opp i Linux.

en. Sikkerhetskopiere MBR

Fordi MBR utgjør de første 512 byte av disken, vi trenger bare å kopiere blokk-størrelse

# dd if=/dev/sda of=/tmp/sdambr.img bs=512 count=1

Med count=1 og bs=512, bare 512 byte vil bli kopiert som tilsvarer størrelsen av våre MBR.,

Du kan vise det lagrede MBR med od-kommandoen som dump filer i oktale og andre formater som under

# od -xa /tmp/sdambr.img0000000 bf52 81f4 8b66 832d 087d 0f00 e284 8000 R ? t soh f vt - etx } bs nul si eot b nul nul0000020 ff7c 7400 6646 1d8b 8b66 044d 3166 b0c0 | del nul t F f vt gs f vt M eot f 1 @ 0

-a alternativet velger heter tegn og -x velger heksadesimale 2-byte-enheter

b. Sikkerhetskopiere boot data for MBR unntatt partition table

MBR 512 byte data er plassert på den første sektoren på harddisken. Det består av 446 bytes bootstrap, 64 bytes partisjonstabellen og 2 byte signatur., Det betyr at vi kan utelukke partisjonstabellen og byte signatur mens sikkerhetskopiering MBR med å bevare kun en blokk størrelse lik bootstrap-størrelse.

# dd if=/dev/sda of=/tmp/sdambr2.img bs=446 count=1

c. Gjenopprette MBR fra MBR bilde

Du kan gjenopprette MBR som vist på forrige kommandoer med

# dd if=/tmp/sdambr.img of=/dev/sda

Konvertering av data formater

Hvis en input-filen bruker et tegnsett som ikke er innfødt tegnsett for vertsmaskinen, import brukeren må utføre en konvertering., For eksempel, hvis ASCII er den opprinnelige formatet for strenger (string) på vertsdatamaskinen, men input data fil representerer strenger å bruke EBCDIC, må du konvertere EBCDIC til ASCII og vice versa.

en. Konvertere data formatet til en fil fra EBCDIC til ASCII

Hvis det er en ebcdic-fil med deg, for det meste hentet fra stormaskin systemer, så, du ønsker å konvertere dem til ASCII-for å gjøre endringer ved hjelp av tekst redaktører på UNIX-servere

# dd if=textfile.ebcdic of=textfile.ascii conv=ascii

conv verdi parameteren nå er ascii-fordi vi konverterer fra EBCDIC til ASCII

b., Konvertere data formatet til en fil fra ASCII til EBCDIC

Etter at du har endret ASCII-versjon, og når dette er gjort, kan du konvertere det tilbake til EBCDIC til å bli brukt av programmet.

# dd if=textfile.ascii of=textfile.ebcdic conv=ebcdic

conv verdi parameteren nå er ebcdic fordi vi konverterer fra ASCII til EBCDIC. Hvis du bare bytter bestemt antall byte med et tilsvarende antall byte som har forskjellige tegn, konvertering ville være glatt og program for å lese filen bør ikke ha noen problemer.,

Konvertering tilfelle av en fil

DD-kommandoen kan også brukes for en fantastisk ting. Det kan konvertere alle tekst (bokstaver) i en fil til store eller små bokstaver, og vice versa. For eksempel nedenfor, og vi vil finne en fil for tester.

# cat file10test dd convert

en. Konvertere en fil til store bokstaver

Fordi vår tekst fil eksempel er på små, vi vil gjøre det om til store bokstaver

# dd if=~/file10 of=~/file20 conv=ucase

– kommandoen vil opprette den nye filen er angitt. Ser at nå conv alternativet tar ucase verdi., La oss sjekke resultatet

# cat file20 TEST DD CONVERT

b. Konvertere en fil til små bokstaver

Nå vil vi gjøre det motsatte, noe som vil konvertere til små bokstaver

# dd if=~/file20 of=~/file30 conv=lcase

Se at vi bruker lcase av conv muligheten til å konvertere fra store bokstaver til små bokstaver.

# cat file30 test dd convert

dd-kommandoen ikke konvertere filen navn, bare dens innhold.

Konklusjon

dd kommando, selv om det ikke er teknisk sett en arkivering kommando, ligner på noen måter, fordi det kan kopiere en hel partisjon eller disk i en fil, og vice versa.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *