Diskhantering

Linux dd-kommando

Linux dd-kommando
“Dd” är ett Linux CLI-verktyg. Nu är den nuvarande versionen av "dd" en del av GNU-kärnanvändarna, är den som varje enskilt UNIX / Linux-system har. Det primära syftet med detta verktyg är att konvertera och kopiera filer. Det är dock helt annorlunda än andra filkopieringsverktyg som "cp".

dd-funktioner

"Dd" kan användas för olika ändamål:

dd-användning

Här är några av de vanligaste och mest intressanta användningarna av “dd”. Naturligtvis är "dd" mycket mer kapabel än dessa saker. Om du är intresserad rekommenderar jag alltid att du tittar på andra fördjupade resurser på “dd”.

Plats

vilken dd

Som utgången indikerar startar den från "/ usr / bin / dd" när du kör "dd".

Grundläggande användning

Här är strukturen som "dd" följer.

dd if = av =

Låt oss till exempel skapa en fil med slumpmässiga data. Det finns några inbyggda specialfiler i Linux som visas som vanliga filer som "/ dev / zero" som ger en kontinuerlig ström av NULL, "/ dev / random" som ger kontinuerlig slumpmässig data.

dd if = / dev / urandom of = ~ / Desktop / random.txt bs = 1M antal = 5

De allra första alternativen är självförklarande. Det betyder att använda “/ dev / urandom” som en datakälla och “~ / Desktop / random.txt ”som destination. Vilka är de andra alternativen?

Här står "bs" för "blockstorlek". När dd skriver data skriver den i block. Med detta alternativ kan blockstorleken definieras. I detta fall säger värdet “1M” att blockstorleken är 1 megabyte.

"Räkna" bestämmer antalet block som ska skrivas. Om det inte fixas fortsätter "dd" skrivprocessen såvida inte inmatningsströmmen slutar. I det här fallet fortsätter "/ dev / urandom" att generera data oändligt, så detta alternativ var avgörande i detta exempel.

Säkerhetskopiering av data

Med den här metoden kan "dd" användas för att dumpa data för en hel enhet! Allt du behöver är att berätta om enheten som källa.

dd if = av =

Om du vill göra sådana åtgärder, se till att din källa inte är en katalog. “Dd” har ingen aning om hur en katalog ska bearbetas, så saker och ting fungerar inte.

“Dd” vet bara hur man arbetar med filer. Så om du behöver säkerhetskopiera en katalog, använd tar för att arkivera den först och använd sedan "dd" för att överföra den till en fil.

tar cvJf demo.tjära.xz DemoDir /

dd if = demo.tjära.xz av = ~ / Desktop / backup.img

I nästa exempel kommer vi att utföra en mycket känslig operation: säkerhetskopiera MBR! Nu, om ditt system använder MBR (Master Boot Record), ligger det vid de första 512 bytes på systemdisken: 466 byte för bootloader, andra för partitionstabellen.

Kör det här kommandot för att säkerhetskopiera MBR-posten.

dd if = / dev / sda of = ~ / Desktop / mbr.img bs = 512 antal = 1

Dataåterställning

För varje säkerhetskopia är sättet att återställa data nödvändigt. I fallet med "dd" är återställningsprocessen lite annorlunda än andra verktyg. Du måste skriva om säkerhetskopian på en liknande mapp / partition / enhet.

Till exempel har jag den här "säkerhetskopian.img-fil som innehåller "demo.tjära.xz ”-fil. För att extrahera det använde jag följande kommando.

dd if = säkerhetskopia.img av = demo.tjära.xz

Återigen, se till att du skriver utdata till en fil. "Dd" är inte bra med kataloger, kom ihåg?

På samma sätt, om “dd” användes för att skapa en säkerhetskopia av en partition, skulle följande kommando krävas för att återställa den.

dd if = av =

Till exempel vad sägs om att återställa MBR som vi säkerhetskopierade tidigare?

dd if = mbr.bild av = / dev / sda

"Dd" -alternativ

Vid någon tidpunkt i den här guiden stod du inför några "dd" -alternativ som "bs" och "count", eller hur? Det finns fler av dem. Här är en kortlista om vad de är och hur man använder dem.

  • obs: Bestämmer storleken på data som ska skrivas åt gången. Standardvärdet är 512 byte.

  • cbs: Bestämmer storleken på data som ska konverteras åt gången.

  • ibs: Bestämmer storleken på data som ska läsas åt gången.
  • count: Kopiera endast N-block

  • sök: Hoppa över N-block i början av utgången

  • hoppa över: Hoppa över N-block i början av inmatningen

conv = ascii: Konverterar filinmatningen från EBCDIC till ASCII

conv = ebcdic: Konverterar filinmatningen från ASCII till EBCDIC

conv = ibm: konverterar filinmatningen från ASCII till alternativ EBCDIC

conv = lcase: konverterar filinmatning från versaler till gemener

conv = ucase: konverterar filinmatning från gemener till versaler

conv = swab: Byt varje ingångspar

Ytterligare alternativ:

  • nocreat: Skapa inte utdatafilen
  • notruc: Avkorta inte utdatafilen
  • noerror: Fortsätt operationen, även efter att ha uppstått fel
  • fdatasync: Skriv data till den fysiska lagringen innan processen är klar
  • fsync: Liknar fdatasync, men skriver också metadata
  • iflag: Justera operationen baserat på olika flaggor. Tillgängliga flaggor inkluderar: lägg till Lägg till data till utdata

Ytterligare alternativ:

  • katalog: Att möta en katalog misslyckas med åtgärden
  • dsync: Synkroniserad I / O för data
  • sync: Liknar dsync men innehåller metadata
  • nocache: Begäran om att tappa cache.
  • nofollow: Följ inte någon symlink

Ytterligare alternativ:

  • count_bytes: Liknar "count = N"
  • seek_bytes: Liknar “seek = N”
  • skip_bytes: Liknar "skip = N"

Som du har sett är det möjligt att stapla flera flaggor och alternativ i ett enda “dd” -kommando för att justera funktionsbeteendet.

dd if = demo.txt av = demo1.txt bs = 10 räkna = 100 conv = ebcdic
iflag = append, nocache, nofollow, sync

Slutgiltiga tankar

Arbetsflödet för “dd” är ganska enkelt. Men för att "dd" verkligen ska lysa, är det upp till dig. Det finns många sätt kreativa sätt "dd" kan användas för att utföra smarta interaktioner.

För detaljerad information om “dd” och alla dess alternativ, se man- och infosidan.

man dd
Hur man laddar ner och spelar Sid Meier's Civilization VI på Linux
Introduktion till spelet Civilization 6 är ett modernt intag av det klassiska konceptet som introducerades i serien Age of Empires-spel. Idén var gans...
Hur man installerar och spelar Doom på Linux
Introduktion till Doom Doom-serien har sitt ursprung på 90-talet efter att den ursprungliga Doom släpptes. Det blev en omedelbar hit och från den tide...
Vulkan för Linux-användare
Med varje ny generation grafikkort ser vi spelutvecklare driva gränserna för grafisk trohet och komma ett steg närmare fotorealism. Men trots all kred...