dd är ett kommandoradsverktyg för Unix och Unix-liknande operativsystem vars primära syfte är att konvertera och kopiera filer.
- På Unix visas drivrutiner för hårdvara (som hårddiskar) och speciella enhetsfiler (som /dev/zero och /dev/random) i filsystemet precis som vanliga filer.
- dd kan också läsa och/eller skriva från/till dessa filer, förutsatt att funktionen är implementerad i deras respektive drivrutiner
- Som ett resultat kan dd användas för uppgifter som att säkerhetskopiera startsektorn på en hårddisk och erhålla en fast mängd slumpmässiga data.
- dd-programmet kan också utföra omvandlingar av data när de kopieras, inklusive byteordningsbyte och konvertering till och från ASCII- och EBCDIC-textkodningarna.
Användning: Kommandoradssyntaxen för dd skiljer sig från många andra Unix-program, genom att den använder syntaxen option=värde för dess kommandoradsalternativ, snarare än de mer standardiserade -optionsvärde eller –alternativ=värde format. Som standard läser dd från stdin och skriver till stdout, men dessa kan ändras genom att använda alternativen if (indatafil) och av (utdatafil).
Några praktiska exempel på kommandot dd:
- För att säkerhetskopiera hela hårddisken: För att säkerhetskopiera en hel kopia av en hårddisk till en annan hårddisk ansluten till samma system, kör kommandot dd enligt bilden. I detta dd-kommandoexempel är UNIX-enhetsnamnet på källhårddisken /dev/hda och enhetsnamnet på målhårddisken är /dev/hdb.
- om representerar indatafil, och av representerar utdatafil. Så den exakta kopian av /dev/sda kommer att finnas tillgänglig i /dev/sdb .
- Om det finns några fel kommer kommandot ovan att misslyckas. Om du anger parametern conv=noerror sedan fortsätter den att kopiera om det finns läsfel.
- Indatafil och utdatafil bör nämnas mycket noggrant. Ifall du nämner källenhet i målet och vice versa, kan du förlora all din data.
- För att kopiera, hårddisk till hårddisk med hjälp av dd-kommandot nedan, sync-alternativet låter dig kopiera allt med synkroniserad I/O.
# dd if=/dev/sda of=/dev/sdb conv=noerror, sync>
# dd if=/dev/sda of=/dev/sdb>
# dd if=/dev/hda1 of=~/partition.img>Så här skapar du en bild av en hårddisk: Istället för att ta en säkerhetskopia av hårddisken kan du skapa en bildfil av hårddisken och spara den på andra lagringsenheter. Det finns många fördelar med att säkerhetskopiera dina data till en diskavbildning, en är enkel att använda. Denna metod är vanligtvis snabbare än andra typer av säkerhetskopior, vilket gör att du snabbt kan återställa data efter en oväntad katastrof. Den skapar bilden av en hårddisk /dev/hda.
# dd if=/dev/hda of=~/hdadisk.img>För att återställa med hjälp av hårddiskavbildningen: För att återställa en hårddisk med bildfilen från en annan hårddisk, kan följande dd-kommando användas
# dd if=hdadisk.img of=/dev/hdb>
Bildfilen hdadisk.img är bilden av en /dev/hda, så kommandot ovan kommer att återställa bilden av /dev/hda till /dev/hdb. För att skapa CDROM Backup: dd kommando låter dig skapa en iso-fil från en källfil. Så vi kan sätta in CD:n och ange kommandot dd för att skapa en iso-fil med CD-innehåll.
# dd if=/dev/cdrom of=tgsservice.iso bs=2048>
dd-kommandot läser ett block av input och bearbetar det och skriver det till en utdatafil. Du kan ange blockstorleken för in- och utdatafil. I ovanstående dd-kommandoexempel, parametern bs anger blockstorleken för både inmatnings- och utdatafilen. Så dd använder 2048 byte som en blockstorlek i kommandot ovan.
Referenser: