logo

'dd' kommando i Linux

dd er et kommandolinjeverktøy for Unix- og Unix-lignende operativsystemer hvis primære formål er å konvertere og kopiere filer.

  • På Unix vises enhetsdrivere for maskinvare (som harddisker) og spesielle enhetsfiler (som /dev/zero og /dev/random) i filsystemet akkurat som vanlige filer.
  • dd kan også lese og/eller skrive fra/til disse filene, forutsatt at funksjonen er implementert i deres respektive drivere
  • Som et resultat kan dd brukes til oppgaver som å sikkerhetskopiere oppstartssektoren på en harddisk og skaffe en fast mengde tilfeldige data.
  • dd-programmet kan også utføre konverteringer på dataene etter hvert som de kopieres, inkludert byteordrebytte og konvertering til og fra ASCII- og EBCDIC-tekstkodingene.

Bruk: Kommandolinjesyntaksen til dd skiller seg fra mange andre Unix-programmer ved at den bruker syntaksen alternativ=verdi for kommandolinjealternativene, i stedet for de mer standard -alternativverdi eller –alternativ=verdi formater. Som standard leser dd fra stdin og skriver til stdout, men disse kan endres ved å bruke if (inndatafil) og av (utdatafil) alternativene.



Noen praktiske eksempler på dd-kommandoen:

    For å sikkerhetskopiere hele harddisken: For å sikkerhetskopiere en hel kopi av en harddisk til en annen harddisk koblet til samme system, kjør kommandoen dd som vist. I dette dd-kommandoeksemplet er UNIX-enhetsnavnet til kildeharddisken /dev/hda, og enhetsnavnet til målharddisken er /dev/hdb.
     # dd if=/dev/sda of=/dev/sdb>
    • hvis representerer inputfile, og av representerer utdatafil. Så den nøyaktige kopien av /dev/sda vil være tilgjengelig i /dev/sdb .
    • Hvis det er noen feil, vil kommandoen ovenfor mislykkes. Hvis du gir parameteren conv=noerror så vil den fortsette å kopiere hvis det er lesefeil.
    • Inndatafil og utdatafil bør nevnes veldig nøye. Bare i tilfelle du nevner kildeenheten i målet og omvendt, kan du miste alle dataene dine.
    • For å kopiere, harddisk til harddisk ved hjelp av dd-kommandoen gitt nedenfor, lar synkroniseringsalternativet deg kopiere alt ved hjelp av synkronisert I/O.
       # dd if=/dev/sda of=/dev/sdb conv=noerror, sync>
    For å sikkerhetskopiere en partisjon: Du kan bruke enhetsnavnet til en partisjon i inndatafilen, og i utdataene kan du enten spesifisere målbanen eller bildefilen som vist i dd-kommandoen.
     # dd if=/dev/hda1 of=~/partition.img>
    Slik lager du et bilde av en harddisk: I stedet for å ta en sikkerhetskopi av harddisken, kan du lage en bildefil av harddisken og lagre den på andre lagringsenheter. Det er mange fordeler med å sikkerhetskopiere dataene dine til et diskbilde, en er brukervennligheten. Denne metoden er vanligvis raskere enn andre typer sikkerhetskopier, og lar deg raskt gjenopprette data etter en uventet katastrofe. Den lager bildet av en harddisk /dev/hda.
     # dd if=/dev/hda of=~/hdadisk.img>
    For å gjenopprette ved hjelp av harddiskbildet: For å gjenopprette en harddisk med bildefilen til en annen harddisk, kan følgende dd-kommando brukes
     # dd if=hdadisk.img of=/dev/hdb>

    Bildefilen hdadisk.img-filen er bildet av en /dev/hda, så kommandoen ovenfor vil gjenopprette bildet av /dev/hda til /dev/hdb. For å lage CDROM Backup: dd-kommandoen lar deg lage en iso-fil fra en kildefil. Så vi kan sette inn CD-en og skrive inn dd-kommandoen for å lage en iso-fil med et CD-innhold.

     # dd if=/dev/cdrom of=tgsservice.iso bs=2048>

    dd-kommandoen leser en blokk med input og behandler den og skriver den inn i en utdatafil. Du kan spesifisere blokkstørrelsen for inn- og utdatafilen. I eksemplet over dd-kommando, parameteren bs spesifiserer blokkstørrelsen for både inndata- og utdatafilen. Så dd bruker 2048 byte som en blokkstørrelse i kommandoen ovenfor.

Referanser: