Dd

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

dd - Konvertera och kopiera filer

Kommandot `dd` används för att konvertera och kopiera filer med specifika blockstorlekar i ett Unix-liknande operativsystem.

Syntax

dd [OPERAND]...

Beskrivning

Kommandot `dd` kopierar en fil, konverterar innehållet enligt specificerade operander och skriver ut resultatet. Det används ofta för att skapa diskavbilder, säkerhetskopior och för att skriva data direkt till och från blockenheter.

Operander

Kommandot `dd` stöder flera operander som kan användas för att justera hur kopieringen och konverteringen utförs:

  • if=FIL - Ange indatafil.
  • of=FIL - Ange utdatafil.
  • ibs=BYTES - Ange indata blockstorlek (standard är 512 byte).
  • obs=BYTES - Ange utdata blockstorlek (standard är 512 byte).
  • bs=BYTES - Ange både indata och utdata blockstorlek (överstyr ibs och obs).
  • cbs=BYTES - Ange konverteringsblockstorlek.
  • count=N - Kopiera endast N indata block.
  • skip=N - Hoppa över N block i indatafilen innan kopiering.
  • seek=N - Hoppa över N block i utdatafilen innan kopiering.
  • conv=CONVS - Ange konverteringsalternativ. Separera flera alternativ med kommatecken:
 * ascii - Konvertera EBCDIC till ASCII.
 * ebcdic - Konvertera ASCII till EBCDIC.
 * ibm - Konvertera ASCII till alternativ EBCDIC.
 * block - Packa poster i fasta längder.
 * unblock - Gör poster av fasta längder.
 * lcase - Konvertera versaler till gemener.
 * ucase - Konvertera gemener till versaler.
 * sparse - Gör utdatafilen gles genom att skriva block med endast nollor som hål.
 * swab - Byt byte-ordning.
 * noerror - Fortsätt vid läsfel.
 * notrunc - Trunkera inte utdatafilen.
 * sync - Fyll varje indata block med nollor för att fylla upp blockstorleken.

Exempel

Här är några praktiska exempel som visar hur du kan använda `dd`-kommandot:

  • För att skapa en avbild av en disk:

dd if=/dev/sda of=/path/to/image.img bs=4M

  • För att återställa en avbild till en disk:

dd if=/path/to/image.img of=/dev/sda bs=4M

  • För att skapa en fil fylld med nollor:

dd if=/dev/zero of=/path/to/file bs=1M count=100

  • För att kopiera en fil med en specifik blockstorlek:

dd if=/path/to/inputfile of=/path/to/outputfile bs=512

  • För att klona en CD/DVD till en ISO-fil:

dd if=/dev/cdrom of=/path/to/image.iso bs=2048

  • För att skriva en ISO-fil till ett USB-minne:

dd if=/path/to/image.iso of=/dev/sdX bs=4M

Skillnader mellan macOS och Linux

Det finns några viktiga skillnader att tänka på när man använder `dd`-kommandot på macOS jämfört med Linux:

  • Tillgänglighet: `dd` är tillgängligt som standard på både macOS och Linux som en del av GNU coreutils på Linux och BSD coreutils på macOS.
  • Alternativ och funktioner: Medan grundläggande funktioner i `dd` är liknande på båda plattformarna, kan vissa konverteringsalternativ och operander skilja sig åt beroende på implementationen av `dd` i GNU och BSD versioner.
  • Blockenheter: Enhetsnamn och sökvägar kan variera mellan macOS och Linux. Till exempel används `/dev/diskX` för blockenheter på macOS, medan `/dev/sdX` används på Linux.

Det är alltid bra att konsultera `man`-sidan för `dd` på din specifika plattform för att se vilka alternativ och funktioner som är tillgängliga och hur de används.

Felsökning

Om du får ett felmeddelande när du använder `dd`, kontrollera följande:

  • Att indata- och utdatafilerna är korrekt angivna och tillgängliga.
  • Att du har nödvändiga rättigheter för att läsa från indatafilen och skriva till utdatafilen (vissa operationer kräver root-rättigheter).
  • Att syntaxen för ditt kommando är korrekt. Kontrollera att du använder rätt operander och parametrar.
  • Att blockstorlekarna och räkningarna är rimliga för den data du arbetar med.

Se även

  • cp - Kopiera filer och kataloger.
  • tar - Arkivera och extrahera filer.
  • rsync - Synkronisera filer och kataloger över nätverket.

Källor