Site Overlay

Linu.dd Command – 15 eksempler med alle muligheder

Linu. dd-kommandoen er et af de mest kraftfulde værktøjer, der kan bruges på forskellige måder. Dette værktøj bruges hovedsageligt til kopiering og konvertering af data, og det står derfor for data duplicator. Dette værktøj kan bruges til:

  • Sikkerhedskopiering og gendannelse af en hel harddisk eller en partition.oprettelse af virtuelt filsystem og sikkerhedskopieringsbilleder af CD eller dvd ‘ er kaldet ISO-filer
  • Kopier regioner af RA. – enhedsfiler som sikkerhedskopiering af MBR (master boot record).konvertering af dataformater som ASCII til EBCDIC.,
  • konvertering af små bogstaver til store og vice versa.

kun superbrugeren kan udføre denne kommando. Du bør være meget forsigtig, mens du bruger denne kommando som forkert brug kan forårsage enorme tab af data. Så nogle mennesker betragter dette værktøj som data destroyer.

syntaks for dd-kommando

den grundlæggende brug af DD-kommandoen er temmelig let, fordi det kun kræver to argumenter: if= at specificere inputfilen og af= at specificere outputfilen. Argumenterne til disse muligheder kan enten være filer eller blokere enheder., Jeg vil dog ikke anbefale at bruge dd til at kopiere filer, fordi cp gør det på en meget enklere måde. Du kan dog bruge den til at klone en harddisk. Syntaksen er

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

Vi lærer forskellige muligheder, mens vi gennemgår dd-kommandoeksempler.

Sikkerhedskopiering og gendannelse af en hel disk eller en partition

Det er muligt at gemme alle data fra en hel disk/partition til en anden disk/partition. Ikke en simpel kopi som CP-kommando, men en blokstørrelseskopi.

A., Backup hele disk til disk

Du kan kopiere alle data (hele disken) fra disken /dev/sda til /dev/sdb. dd ved ikke noget om filsystemet eller partitionerne; det vil bare kopiere alt fra /dev/sda til /dev/sdb. Du skal angive den blokstørrelse, der skal kopieres til tiden med bs mulighed. Så dette vil klone disken med de samme data på den samme partition.

dette virker kun, hvis den anden enhed er så stor som eller større end den første., Ellers får du afkortet og værdiløse partitioner på den anden. Her, hvis står for input file, står for output file og bs står for blokstørrelsen (antal byte, der skal læses/skrives ad gangen). Sørg for at bruge blokstørrelser i multipla af 1024 bytes, som er lig med 1KB. Hvis du ikke angiver blokstørrelse, bruger dd en standardblokstørrelse på 512 byte. conv værdiparameter noerror tillader værktøjet at fortsætte med at kopiere dataene, selvom det støder på fejl. Synkroniseringsindstillingen gør det muligt at bruge synkroniseret i/O.

B., Oprettelse af dd disk image (file image)

Du kan oprette et billede af en disk eller et filbillede. Sikkerhedskopiering af en disk til et billede vil være hurtigere end at kopiere de nøjagtige data. Diskbillede gør også restaureringen meget lettere.

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

Du kan gemme outputfilen, hvor du vil, men du skal give et filnavn, der slutter med .img udvidelse som ovenfor. I stedet for /tmp/sdadisk.img, kan du gemme det for eksempel på /sdadisk.img hvis du vil.

c., Oprettelse af et komprimeret diskbillede

fordi dd opretter det nøjagtige indhold på en hel disk, betyder det, at det tager for meget Størrelse. Du kan beslutte at komprimere diskbilledet med kommandoen nedenfor

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

røret / operatøren får output til venstre kommando til at blive input til højre kommando. Indstillingen-c skriver output på standard output og holder originale filer uændrede.

d. sikkerhedskopier en partition eller klon en partition til en anden

i stedet for en hel disk kan du kun sikkerhedskopiere en simpel partition., Du skal blot angive partitionsnavnet i inputfilen som nedenfor

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

Dette vil synkronisere partitionen /dev/sda1til /dev/sdb1. Du skal kontrollere, at størrelsen af /dev/sdb1 skal være større end /dev/sda1. Eller du kan oprette en partition billede som nedenfor

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

e. At genoprette en disk eller en partition image

Gem en disk eller en partition, der hjælper med at gendanne alle data, hvis der er noget problem med vores originale drev., For at gendanne skal du vende inputfilen med outputfilen angivet under backup-drift som nedenfor.

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

vil Du hente data, der var til stede før backup drift og ikke efter operationen

e. Genskaber komprimerede billede

Du er nødt til først at angive den komprimerede fil og output-fil, som er den disk komprimeret før.

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

– d-indstillingen her er at komprimere. Bemærk uddatafilen. Du kan montere den gendannede disk for at se indholdet., Bemærk, at du vil data tilføjet efter den sidste komprimering backup operation.

Oprettelse af virtuelle filsystem/Backup af billeder på CD eller Dvd som iso-filer

Du kan bruge til at skabe et virtuelt filsystem på Linux for nogle grunde skabe en virtuel maskine på din Linux-vært. Du kan også få brug for at oprette et backup iso-billede af en CD eller DVD

A. oprettelse af et virtuelt filsystem

et virtuelt filsystem er et filsystem, der findes i en fil, som igen findes på en fysisk disk. Du kan bruge det til at oprette for eksempel en ekstra s .ap-eller loop-enhed eller en virtuel maskine., Vi har brug for /dev/zero, som er en fil, der bruges til at oprette en fil uden data, men med den krævede størrelse (en fil med alle nul). Med andre ord vil dette oprette en datafil med alle nuller i filen, som vil give størrelsen til 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

indstillingen count henviser til antallet af inputblokke, der skal kopieres. Kombineret med blokstørrelsesværdi angiver den samlede størrelse, der skal kopieres., For eksempel bs=1024k og count=500 give en størrelse=1024K*500 =524288000 bytes =524MB

lad os Nu se størrelsen af vores fil

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

Du kan se, at vi har vores virtuelle filsystem, der er oprettet med den angivne størrelse. Du kan nu bruge den til at oprette loop enhed eller en virtuel disk eller noget andet.

b. Rediger de første 512 byte af en fil med null-data

Hvis du under operationen angiver en eksisterende outputfil, mister du dens data. Af nogle grunde, kan du nødt til at erstatte en blok størrelse af outputfilen.,

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

notrunc valgmulighed refererer til Afkort ikke filen, Udskift kun de første 512 bytes, hvis den findes. Ellers får du en 512 byte fil

c. oprettelse af et backup iso-billede af CD eller DVD

Du kan undre dig over, hvorfor ikke bare kopiere indholdet af din CD til en mappe. Hvordan ville du håndtere boot sektor af en CD? Du kan ikke finde det som en fil på enheden, fordi det bare er den første sektor. Fordi dd kopierer sektor for sektor, vil den på den anden side også kopiere disse oplysninger.,

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

Du skal vide, at du skal bruge -o loop, som giver dig mulighed for at montere en fil som enhver normal enhed. Så, for at montere /mycd.iso om /mnt/cd mappe, skal du gøre som nedenfor

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

d) Oprette en bootbar USB-Drev

lad os antage, at vi har hentet centos iso-billedet her til mappen “~/Downloads/”.

if=~/do .nloads / CentOS-8-886_64-1905-dvd1.iso-input-filen er i stien ‘ ~/do .nloads/CentOS-8-~86_64-1905-dvd1.,iso’

af=/dev/sdb – output filen er på vej “/dev/sdb ”

bs=1M – Læs fra ‘~/Downloads/CentOS-8-x86_64-1905-dvd1.iso ‘og skriv til’/dev / sdb ‘ 1 megabyte data ad gangen.

# dd if=~/do .nloads / CentOS-8-886_64-1905-dvd1.iso of=/dev/sdb BS=1M

Sikkerhedskopiering og gendannelse af MBR

GRUB bootloader gemmes oftest i MBR på det bootbare drev. MBR udgør de første 512 byte på disken, hvilket giver mulighed for op til 466 byte lagerplads til bootloaderen. Den ekstra plads vil blive brugt til at gemme partitionstabellen for det pågældende drev., Hvis MBR bliver ødelagt, vil vi ikke kunne starte op i Linu..

et. Sikkerhedskopiering af MBR

på Grund af MBR gør op den første 512 bytes af disken, er vi bare nødt til at kopiere, at blok størrelse

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

Med count=1 og bs=512, kun 512 bytes vil blive kopieret, der svarer til størrelsen af vores MBR.,

Du kan få vist de gemte MBR med od-kommando, som dump-filer i oktal 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 indstilling vælger navngivne tegn og -x vælger hexadecimal 2-byte-enheder

b. Sikkerhedskopiering af boot data af MBR-bortset fra partitionstabellen

MBR 512 bytes af data er placeret på den første sektor på harddisken. Den består af 446 bytes bootstrap, 64 bytes partitionstabel og 2 bytes signatur., Det betyder, at vi kan ekskludere partitionstabellen og bytes-signaturen, mens vi sikkerhedskopierer MBR med kun at bevare en blokstørrelse svarende til bootstrap-størrelsen.

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

c. Gendannelse af MBR fra MBR billede

Du kan gendanne din MBR, som vist på de forrige kommandoer med

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

Konvertering af dataformater

Hvis en input-fil bruger et tegnsæt, der er ikke de indfødte tegnsæt af værtscomputeren, import operatøren skal udføre en konvertering., For eksempel, hvis ASCII er det oprindelige format for strenge på din værtscomputer, men inputdatafilen repræsenterer strenge ved hjælp af EBCDIC, skal du konvertere EBCDIC til ASCII og vice versa.

et. Konvertere dataformatet af en fil fra EBCDIC til ASCII

Hvis der er en ebcdic-fil med dig, for det meste hentet fra mainframe-systemer, så, du vil gerne konvertere dem til ASCII-for at foretage ændringer ved hjælp af tekst-editorer på UNIX-servere

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

conv værdi parameter nu er ascii-fordi vi konvertere fra EBCDIC til ASCII

b., Konverter dataformatet for en fil fra ASCII til EBCDIC

efter ændring af ASCII-versionen og når det er gjort, kan du konvertere det tilbage til EBCDIC, der skal bruges af din ansøgning.

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

conv værdiparameter er nu ebcdic, fordi vi konverterer fra ASCII til EBCDIC. Hvis du bare erstatter bestemt antal bytes med et tilsvarende antal bytes med forskellige tegn, ville konverteringen være glat, og applikationslæsning af filen skulle ikke have nogen problemer.,

konvertering tilfælde af en fil

DD kommando kan også bruges til en fantastisk ting. Det kan konvertere al tekst (alfabeter) i en fil til store eller små bogstaver og omvendt. For eksemplet nedenfor har vi en fil til testene.

# cat file10test dd convert

a. konvertering af en fil til store bogstaver

da vores tekstfileksempel er på små bogstaver, konverterer vi den til store bogstaver

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

kommandoen opretter den nye angivne fil. Se, at nu conv mulighed tager ucase værdi., Lad os se resultatet

# cat file20 TEST DD CONVERT

b. Konvertere en fil til små bogstaver

Nu vil vi gøre det omvendte operation, som vil konvertere til små bogstaver

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

Se, at vi bruger lcase af conv mulighed for at konvertere fra store bogstaver til små bogstaver.

# cat file30 test dd convert

dd-kommandoen konverterer ikke filnavne, kun dens indhold.

konklusion

dd-kommandoen, selvom den ikke teknisk set er en arkiveringskommando, ligner på nogle måder, fordi den kan kopiere en hel partition eller disk til en fil og vice versa.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *