Dd: Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
Ingen redigeringssammanfattning
Rad 1: Rad 1:
== dd - Konvertera och kopiera filer ==
Kommandot `dd` används för att konvertera och kopiera filer med specifika blockstorlekar i ett Unix-liknande operativsystem.


= dd (Unix kommando) =
=== Syntax ===
dd [OPERAND]...


'''dd''' är ett kommando på Unix och Unix-liknande operativsystem som används för lågnivåkopiering och konvertering av rå data. På grund av dess kraft och potential för förstörande resultat om det används felaktigt, bör det hanteras med försiktighet.
=== 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.


== Användningsområden ==
=== Operander ===
* Skapa exakta kloner av diskpartitioner och enheter.
Kommandot `dd` stöder flera operander som kan användas för att justera hur kopieringen och konverteringen utförs:
* Konvertera dataformat, inklusive byteordning och teckenkodning.
* Skapa bootbara USB-enheter från ISO-filer.
* Säkert radera data från lagringsenheter genom att skriva över dem med slumpmässiga data eller nollor.


== Syntax ==
* if=FIL - Ange indatafil.
Syntaxen för `dd` kommandot är:
* of=FIL - Ange utdatafil.
<pre>
* ibs=BYTES - Ange indata blockstorlek (standard är 512 byte).
dd if=input_file of=output_file [options]
* obs=BYTES - Ange utdata blockstorlek (standard är 512 byte).
</pre>
* bs=BYTES - Ange både indata och utdata blockstorlek (överstyr ibs och obs).
där ''input_file'' är källfilen eller enheten och ''output_file'' är målfilen eller enheten.  
* 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.


== Viktiga alternativ ==
=== Exempel ===
* '''if=''' - Anger indatatfilen eller enheten (''input file'').
Här är några praktiska exempel som visar hur du kan använda `dd`-kommandot:
* '''of=''' - Anger utdatafilen eller enheten (''output file'').
* '''bs=''' - Anger blockstorlek för både läsning och skrivning.
* '''conv=''' - Specificerar konverteringsalternativ som ''noerror'', ''sync'', och ''notrunc''.
* '''count=''' - Begränsar antalet kopierade block.
* '''status=''' - Kontrollerar hur utförandestatus visas, exempelvis ''progress''.


== Exempel ==
* För att skapa en avbild av en disk:
För att skapa en bootbar USB från en ISO-bild:
<code>
<pre>
dd if=/dev/sda of=/path/to/image.img bs=4M
dd if=/path/to/distribution.iso of=/dev/sdx bs=4M status=progress
</code>
</pre>
Notera att ''/dev/sdx'' ska ersättas med den korrekta enhetsbeteckningen för USB-enheten.


== Säkerhetsvarning ==
* För att återställa en avbild till en disk:
''dd'' kan orsaka oåterkallelig dataförlust om det används felaktigt. Användaren bör vara säker på att ''of='' pekar på rätt enhet och att ingen viktig data skrivs över.
<code>
dd if=/path/to/image.img of=/dev/sda bs=4M
</code>


= Manual sidan för dd - konvertera och kopiera en fil =
* För att skapa en fil fylld med nollor:
<code>
dd if=/dev/zero of=/path/to/file bs=1M count=100
</code>


* För att kopiera en fil med en specifik blockstorlek:
<code>
dd if=/path/to/inputfile of=/path/to/outputfile bs=512
</code>


==== NAMN ====
* För att klona en CD/DVD till en ISO-fil:
dd - konvertera och kopiera en fil
<code>
dd if=/dev/cdrom of=/path/to/image.iso bs=2048
</code>


==== SYNOPSIS ====
* För att skriva en ISO-fil till ett USB-minne:
''dd [OPERAND]...''
<code>
dd if=/path/to/image.iso of=/dev/sdX bs=4M
</code>


''dd ALTERNATIV''
=== 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:


==== BESKRIVNING ====
* 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.
Kopiera en fil, konvertera och formatera enligt operanderna.
* 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.


===== bs=BYTES =====
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.
läs och skriv upp till BYTES byte åt gången (standard: 512); åsidosätter ibs och obs


===== ''cbs=BYTES'' =====
=== Felsökning ===
konvertera BYTES byte åt gången
Om du får ett felmeddelande när du använder `dd`, kontrollera följande:


===== conv=CONVS =====
* Att indata- och utdatafilerna är korrekt angivna och tillgängliga.
konvertera filen enligt den kommaseparerade symbollistan
* 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.


===== count=N =====
=== Se även ===
kopiera endast N inmatningsblock
* [[cp]] - Kopiera filer och kataloger.
* [[tar]] - Arkivera och extrahera filer.
* [[rsync]] - Synkronisera filer och kataloger över nätverket.


===== ibs=BYTES =====
=== Källor ===
läs upp till BYTES byte åt gången (standard: 512)
* [https://www.gnu.org/software/coreutils/manual/coreutils.html#dd-invocation GNU coreutils manual]
* [https://man7.org/linux/man-pages/man1/dd.1.html dd manual (Linux)]
* [https://www.freebsd.org/cgi/man.cgi?query=dd dd manual (macOS)]


===== if=FIL =====
[[Kategori:Linuxkommandon]]
läs från FILE istället för stdin
 
===== iflag=FLAGGAR =====
läs enligt den kommaseparerade symbollistan
 
===== obs=BYTES =====
skriv BYTES byte åt gången (standard: 512)
 
===== of=FIL =====
skriv till FILE istället för stdout
 
===== oflag=FLAGGAR =====
skriv enligt den kommaseparerade symbollistan seek=N hoppa över N obs-stora block vid början av utdata
 
===== skip=N hoppa över N ibs-stora block vid början av inmatningen =====
 
===== status=NIVÅ =====
Nivån av information att skriva ut till stderr; 'ingen' undertrycker allt utom felmeddelanden, 'noxfer' undertrycker den slutliga överföringsstatistiken, 'framsteg' visar periodisk överföringsstatistik N och BYTES kan följas av följande multiplikativa suffix: c =1, w =2, b =512, kB =1000, K =1024, MB =1000*1000, M =1024*1024, xM =M, GB = 1000*1000*1000, G =1024*1024*1024, och så vidare för T, P, E, Z, Y.
 
Varje CONV-symbol kan vara:
 
====== ascii  från EBCDIC till ASCII ======
 
====== ebcdic från ASCII till EBCDIC ======
 
====== ibm    från ASCII till alternativ EBCDIC ======
 
====== blockera poster som avslutats på nya rader med mellanslag till cbs-storlek ======
 
====== unblock ======
ersätt efterföljande utrymmen i cbs-storleksposter med newline
 
lcase  ändra versaler till gemener
 
ucase  ändra gemener till versaler
 
glesa försök att söka istället för att skriva utdata för NUL-ingångsblock
 
swab   byt varje par indatabyte
 
synkronisera   pad varje ingångsblock med NUL:er till ibs-storlek; när den används med blockera eller avblockera, pad med mellanslag snarare än NUL
 
excl   misslyckas om utdatafilen redan finns
 
nocreat
 
skapa inte utdatafilen
 
notrunc trunkera inte utdatafilen
 
noerror fortsätt efter läsfel
 
fdatasync
 
skriv utdatafildata fysiskt innan du avslutar
 
====== fsync  likaså, men skriv även metadata ======
Varje FLAGGA-symbol kan vara:
 
append append-läge (ger mening endast för utdata; conv=notrunc föreslås)
 
direkt använd direkt I/O för data
 
directory misslyckas om inte en katalog
 
dsync använder synkroniserad I/O för data
 
sync   lika, men även för metadata fullblock ackumulera hela block av indata (endast iflagga)
 
nonblock
 
använd icke-blockerande I/O
 
noatime
 
uppdatera inte åtkomsttiden
 
nocache
 
Begäran att släppa cache. Se även oflag=sync
 
noctty tilldelar inte styrande terminal från fil
 
nofollow
 
följ inte symbollänkar
 
antal_bytes
 
behandla 'count=N' som ett byteantal (endast iflag)
 
skip_bytes
 
behandla "skip=N" som en byte (endast iflagga)
 
seek_bytes
 
behandla "seek=N" som ett byteantal (endast avlag)
 
Att skicka en USR1-signal till en pågående 'dd'-process gör att den skriver ut I/O-statistik till standardfel och återupptar sedan kopieringen.
 
===== Alternativen är: =====
--help visa denna hjälp och avsluta
 
--version
 
mata ut versionsinformation och avsluta
 
==== FÖRFATTARE ====
Skrivet av Paul Rubin, David MacKenzie och Stuart Kemp.
 
==== RAPPORTERING AV BUGGAR ====
GNU coreutils onlinehjälp: <<nowiki>https://www.gnu.org/software/coreutils/</nowiki>>
 
Rapportera dd översättningsfel till <https://translationproject.org/team<nowiki/>/>
 
==== UPPHOVSRÄTT ====
Copyright © 2018 Free Software Foundation, Inc.  Licens GPLv3+: GNU GPL version 3 eller senare <https://gnu.org/licenses/gpl.html>.
 
Detta är fri programvara: du är fri att ändra och distribuera den. Det finns INGEN GARANTI, i den utsträckning som lagen tillåter.
 
==== SE ÄVEN ====
Fullständig dokumentation på: <https://www.gnu.org/software/coreutils/dd> eller tillgänglig lokalt via: info '(coreutils) dd invocation'
 
[[Fullbeskrivning av dd]]
 
[[Kategori:Linux kommando]]
[[Kategori:Linux filkommando]]

Versionen från 26 maj 2024 kl. 09.34

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