Hvordan bruke DD -kommando i Linux

Hvordan bruke DD -kommando i Linux
De dd Kommando brukes til å gjøre mange viktige ting. Den vanligste og utbredte bruken av dd Kommandoen er å lage oppstartbare USB -stasjoner fra en ISO eller Img bildefil. Jeg bruker det mye for å lage oppstartbare USB -stasjoner med forskjellige Linux -distribusjoner. Men det er andre bruksområder av dd Kommando også. For eksempel dd Kommando kan brukes til å lage en sikkerhetskopi av partisjonstabellen, konvertere tekster og filer, installere en bootloader til en harddisk, SSD eller USB -stasjon. De dd Kommando kan også brukes til å gjøre test ytelsen til lagringsenheter som latens på harddisken din, lese og skrive hastigheten på harddisken din osv.

I denne artikkelen vil jeg vise deg noen av de vanlige bruken av dd Kommando i Linux. Jeg vil bruke Debian 9 Strekk for demonstrasjonen. Men det skal fungere med annen Linux -distribusjon. La oss komme i gang.

Å lage en oppstartbar USB -stasjon med DD:

Lage en oppstartbar USB -stasjon av favorittoperativsystemet ditt med dd Kommandoen er veldig enkelt. Alt du trenger er en USB -stasjon og en ISO eller Img Bilde av operativsystemet du vil lage en oppstartbar USB av.

La oss anta at du har lastet ned en ISO Bilde av alpin linux og filen lagres i ~/Nedlastinger Katalog som Alpine-standard-3.8.0-x86_64.ISO

Nå kan du liste opp alle tilkoblede lagrings- eller blokkeringsenheter med følgende kommando:

$ SUDO LSBLK

Som du kan se, er alle tilkoblede lagrings- eller blokkenheter oppført. Her, /dev/sdb er USB -stasjonen min. Den har to partisjoner, /dev/sdb1 og /dev/sdb2. Men når du lager USB -oppstartbare stasjoner, må du bruke /dev/sdb, hele blokkapparatet, ikke noen partisjoner.

Lag nå oppstartbar USB -stasjon av Alpine Linux med følgende kommando:

$ sudo dd if = ~/nedlastinger/alpine-standard-3.8.0-x86_64.iso av =/dev/sdb bs = 1m

Her, hvis =~/Nedlastinger/Alpine-Standard-3.8.0-x86_64.ISO Alternativet brukes til å fortelle dd at inndatafilen er i banen ~/Nedlastinger/Alpine-Standard-3.8.0-x86_64.ISO og av =/dev/sdb Alternativet brukes til å fortelle dd at utgangsfilen er i banen /dev/sdb. BS =1m forteller dd å lese fra ~/Nedlastinger/Alpine-Standard-3.8.0-x86_64.ISO og skriv til /dev/sdb 1 megabyte med data om gangen.

Som du kan se, kopieres ISO -filen til blokkeringsenheten /dev/sdb. Nå kan du bruke den til å installere alpine linux.

Denne kommandoen er veldig ødeleggende. De dd Kommando tørker partisjonstabellen og andre metadata, flagg fra blokkeringsenheten. Så du må være forsiktig.

Viser fremdriftslinje:

Som standard, den dd Kommandoen viser ingen fremdriftslinjer. Men du kan fortelle dd å vise det med Status = fremgang alternativ.

For eksempel å kopiere data fra /dev/sda til /dev/sdb 1 megabyte om gangen og viser også fremdriftslinjen, kjør følgende kommando:

$ sudo dd if =/dev/sda av =/dev/sdb bs = 1m status = fremgang

Som du ser vises fremdriftslinjen. Du kan se hvor mye av dataene som er kopiert og hastigheten som de kopieres.

Måling av lese- og skriveytelse av en lagringsenhet med DD:

Du kan måle lese- og skrivehastigheten til en lagringsenhet med dd veldig lett. Selvfølgelig er det mange grafiske programvare som gir denne informasjonen, men kommandolinjeelskere vil synes dette er veldig interessant.

Først må du montere partisjonen eller lagringsenheten på filsystemet ditt. Hvis du ikke har en partisjon på lagringsenheten din, kan du alltid opprette den med fdisk kommando og format det til ønsket filsystem (for eksempel FAT32, Ext4, NTFS, Xfs etc). Her antar jeg at du har en partisjon /dev/sdb1 og det er formatert som Ext4.

La oss si, du vil montere /dev/sdb1 partisjon til /mnt Katalog, kjør deretter følgende kommando:

$ sudo mount /dev /sdb1 /mnt

Som du kan se, partisjonen /dev/sdb1 er montert på /mnt katalog.

$ df -h

La oss nå opprette en 1 GB -fil Testrw i /mnt katalog med dd:

$ sudo dd if =/dev/null av =/mnt/testrw bs = 1g count = 1 ofag = direkte

Her, telling = 1 betyr, les BS = 1G som er 1 gigabyte fra /dev/null, og skriv det til /mnt/testrw fil.

De Oflag = direkte Alternativet brukes til å deaktivere diskbufring. Hvis diskbufring er aktivert, vil du ikke få veldig nøyaktige resultater.

MERK: Husk at for denne operasjonen må du ha minst 1 GB gratis minne eller RAM på datamaskinen din. Hvis du ikke har råd til så mye gratis RAM, kan du redusere BS -størrelsen. For eksempel sett BS = 128m eller enda mindre, BS = 64m.

Som du kan se, er skrivehastigheten på USB -stasjonen min omtrent 6.1 MB per sekund.

Du kan også teste lesehastigheten til lagringsenheten din med følgende kommando:

$ sudo dd if =/mnt/testrw av = ~/nedlastinger/test bs = 1g count = 1 oflag = direkte

Som du kan se, kan jeg lese klokka 4.3 MB per sekund.

Testing av lagringsenhet latens med DD:

Latensen til en lagringsenhet er tiden det tar å få tilgang til enheten. Det er en viktig parameter som vi kan bestemme ved hjelp av dd kommando.

For å teste for latens, kan vi skrive eller lese små biter av data (ca. 512 byte om gangen) x ganger og se hvor lang tid det tar. Da kan vi beregne hvor lang tid det tar å lese eller skrive en enkelt del av data veldig enkelt. Dette kalles latensen til lagringsenheten.

La oss for eksempel si at du vil beregne skriveforsinkelsen. Kjør nå følgende kommando for å skrive 512 Byte Chunk ca 1000 ganger:

$ sudo dd if =/dev/null av =/mnt/testx bs = 512 telling = 1000 oflag = direkte

Som du ser, tar det rundt 16.4541 sekunder å skrive 1000 biter av 512 byte data. Nå, for å skrive en enkelt del av data, tar det omtrent (16.4541s / 1000 = 0.0164 S) 0.0164 sekunder. Så skriveforsinkelsen er omtrent 0.0164 sekunder for denne lagringsenheten.

Du kan beregne lesens latens på samme måte.

Så det er slik du bruker DD og testytelse av en I/O -enhet med den. Takk for at du leste denne artikkelen.