logo

‘dd’-opdracht in Linux

dd is een opdrachtregelhulpprogramma voor Unix en Unix-achtige besturingssystemen met als voornaamste doel het converteren en kopiëren van bestanden.

  • Op Unix verschijnen apparaatstuurprogramma's voor hardware (zoals harde schijven) en speciale apparaatbestanden (zoals /dev/zero en /dev/random) in het bestandssysteem, net als normale bestanden.
  • dd kan ook van/naar deze bestanden lezen en/of schrijven, op voorwaarde dat deze functie in hun respectievelijke stuurprogramma's is geïmplementeerd
  • Als gevolg hiervan kan dd worden gebruikt voor taken zoals het maken van een back-up van de opstartsector van een harde schijf en het verkrijgen van een vaste hoeveelheid willekeurige gegevens.
  • Het dd-programma kan ook conversies uitvoeren op de gegevens terwijl deze worden gekopieerd, inclusief het wisselen van bytevolgorde en conversie van en naar de ASCII- en EBCDIC-tekstcoderingen.

Gebruik: De opdrachtregelsyntaxis van dd verschilt van veel andere Unix-programma's doordat het de syntaxis gebruikt optie=waarde vanwege de opdrachtregelopties, in plaats van de meer standaard -Optie waarde of –optie=waarde formaten. Standaard leest dd van stdin en schrijft naar stdout, maar deze kunnen worden gewijzigd met behulp van de opties if (invoerbestand) en of (uitvoerbestand).



Enkele praktische voorbeelden van het dd-commando:

    Een back-up maken van de gehele harde schijf: Om een ​​back-up te maken van een volledige kopie van een harde schijf naar een andere harde schijf die op hetzelfde systeem is aangesloten, voert u de opdracht dd uit, zoals weergegeven. In dit voorbeeld van de dd-opdracht is de UNIX-apparaatnaam van de bronharde schijf /dev/hda, en de apparaatnaam van de doelharde schijf /dev/hdb.
     # dd if=/dev/sda of=/dev/sdb>
    • als vertegenwoordigt invoerbestand, en van vertegenwoordigt uitvoerbestand. Dus de exacte kopie van /dev/sda zal beschikbaar zijn binnen /dev/sdb .
    • Als er fouten optreden, mislukt de bovenstaande opdracht. Als u de parameter conv=geen fout dan zal het doorgaan met kopiëren als er leesfouten zijn.
    • Invoerbestand en uitvoerbestand moeten zeer zorgvuldig worden vermeld. Voor het geval u het bronapparaat in het doel vermeldt en omgekeerd, kunt u al uw gegevens kwijtraken.
    • Om van harde schijf naar harde schijf te kopiëren met behulp van de onderstaande opdracht dd, kunt u met de synchronisatieoptie alles kopiëren met behulp van gesynchroniseerde I/O.
       # dd if=/dev/sda of=/dev/sdb conv=noerror, sync>
    Een back-up maken van een partitie: U kunt de apparaatnaam van een partitie in het invoerbestand gebruiken, en in de uitvoer kunt u uw doelpad of afbeeldingsbestand opgeven, zoals weergegeven in de opdracht dd.
     # dd if=/dev/hda1 of=~/partition.img>
    Een image van een harde schijf maken: In plaats van een back-up van de harde schijf te maken, kunt u een imagebestand van de harde schijf maken en dit op andere opslagapparaten opslaan. Er zijn veel voordelen verbonden aan het maken van een back-up van uw gegevens op een schijfkopie, waaronder het gebruiksgemak. Deze methode is doorgaans sneller dan andere soorten back-ups, waardoor u snel gegevens kunt herstellen na een onverwachte catastrofe. Er wordt een afbeelding gemaakt van een harde schijf /dev/hda.
     # dd if=/dev/hda of=~/hdadisk.img>
    Om te herstellen met behulp van de harde schijf-image: Om een ​​harde schijf te herstellen met het imagebestand van een andere harde schijf, kan de volgende dd-opdracht worden gebruikt
     # dd if=hdadisk.img of=/dev/hdb>

    Het afbeeldingsbestand hdadisk.img is de afbeelding van een /dev/hda, dus het bovenstaande commando zal de afbeelding van /dev/hda herstellen naar /dev/hdb. Om een ​​CDROM-back-up te maken: Met de opdracht dd kunt u een ISO-bestand maken van een bronbestand. We kunnen dus de CD plaatsen en de opdracht dd invoeren om een ​​ISO-bestand met CD-inhoud te maken.

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

    De opdracht dd leest één invoerblok, verwerkt het en schrijft het naar een uitvoerbestand. U kunt de blokgrootte voor het invoer- en uitvoerbestand opgeven. In het bovenstaande dd-opdrachtvoorbeeld is de parameter bs specificeert de blokgrootte voor zowel het invoer- als het uitvoerbestand. Dus dd gebruikt 2048 bytes als blokgrootte in de bovenstaande opdracht.

Referenties: