"dd" is een linux CLI-tool. Nu, de huidige versie van "dd" is een onderdeel van de GNU coreutils, is degene die elk UNIX/Linux-systeem heeft. Het primaire doel van deze tool is om bestanden te converteren en te kopiëren. Het is echter heel anders dan andere hulpprogramma's voor het kopiëren van bestanden, zoals "cp".
dd-functies “dd” kan voor verschillende doeleinden worden gebruikt:
Met behulp van "dd" is het mogelijk om rechtstreeks van/naar verschillende bestanden te lezen en/of te schrijven, op voorwaarde dat de functie al is geïmplementeerd in de gerespecteerde stuurprogramma's. Het is super handig voor doeleinden zoals het maken van een back-up van de opstartsector, het verkrijgen van willekeurige gegevens enz. Gegevensconversie, bijvoorbeeld het converteren van ASCII naar EBCDIC-codering. dd gebruik Hier zijn enkele van de meest voorkomende en interessante gebruik van "dd". Natuurlijk is "dd" veel beter in staat dan deze dingen. Als je geïnteresseerd bent, raad ik altijd aan om andere diepgaande bronnen op "dd" te bekijken.
Plaats
welke dd
Zoals de uitvoer aangeeft, start het bij het uitvoeren van "dd" vanaf "/usr/bin/dd".
Basisgebruik Dit is de structuur die "dd" volgt.
dd als=
van = Laten we bijvoorbeeld een bestand maken met willekeurige gegevens. Er zijn enkele ingebouwde speciale bestanden in Linux die verschijnen als normale bestanden zoals "/dev/zero" die een continue stroom van NULL produceert, "/dev/random" die continue willekeurige gegevens produceert.
dd if=/dev/urandom of=~/Desktop/random.txt bs=1M telling=5
De allereerste opties spreken voor zich. Het betekent het gebruik van "/dev/urandom" als een gegevensbron en "~/Desktop/random.txt" als de bestemming. Wat zijn de andere opties??
Hier staat "bs" voor "blokgrootte". Wanneer dd gegevens schrijft, schrijft het in blokken. Met deze optie kan de blokgrootte worden gedefinieerd. In dit geval zegt de waarde "1M" dat de blokgrootte 1 megabyte is.
"count" bepaalt het aantal te schrijven blokken. Indien niet opgelost, zal "dd" het schrijfproces voortzetten tenzij de invoerstroom eindigt. In dit geval zal "/dev/urandom" oneindig doorgaan met het genereren van gegevens, dus deze optie was van het grootste belang in dit voorbeeld.
Reservekopie van gegevens Met deze methode kan "dd" worden gebruikt om de gegevens van een hele schijf te dumpen! Het enige dat u nodig hebt, is de schijf als de bron vertellen.
dd als= van =
Als je voor dergelijke acties gaat, zorg er dan voor dat je bron geen directory is. "dd" heeft geen idee hoe een map moet worden verwerkt, dus dingen zullen niet werken.
"dd" kan alleen met bestanden werken. Dus als u een back-up van een map wilt maken, gebruik dan tar om deze eerst te archiveren en gebruik vervolgens "dd" om deze naar een bestand over te zetten.
tar cvJf-demo.teer.xz DemoDir/
dd if=demo.teer.xz of=~/Bureaublad/back-up.img
In het volgende voorbeeld voeren we een zeer gevoelige bewerking uit: een back-up maken van de MBR! Als uw systeem nu MBR (Master Boot Record) gebruikt, bevindt het zich op de eerste 512 bytes van de systeemschijf: 466 bytes voor de bootloader, andere voor de partitietabel.
Voer deze opdracht uit om een back-up te maken van het MBR-record.
dd if=/dev/sda of=~/Desktop/mbr.img bs=512 tellen=1
Gegevens herstellen Voor elke back-up is de manier om de gegevens te herstellen noodzakelijk. In het geval van "dd" is het herstelproces een beetje anders dan bij andere tools. U moet het back-upbestand opnieuw schrijven naar een vergelijkbare map/partitie/apparaat.
Ik heb bijvoorbeeld deze "back-up".img” bestand met de “demo.teer.xz" bestand. Om het uit te pakken, heb ik het volgende commando gebruikt:.
dd if=backup.img van=demo.teer.xz
Nogmaals, zorg ervoor dat u de uitvoer naar een bestand schrijft. "dd" is niet goed met mappen, onthoud?
Evenzo, als "dd" werd gebruikt om een back-up van een partitie te maken, zou het herstellen ervan de volgende opdracht vereisen:.
dd als= van =
Hoe zit het bijvoorbeeld met het herstellen van de MBR waarvan we eerder een back-up hebben gemaakt??
dd if=mbr.img of=/dev/sda
“dd” opties Op een bepaald punt in deze handleiding kreeg je te maken met enkele "dd" -opties zoals "bs" en "count", right? Nou, er zijn er meer. Hier is een shortlist over wat ze zijn en hoe ze te gebruiken.
obs: Bepaalt de grootte van de gegevens die tegelijk moeten worden geschreven. De standaardwaarde is 512 bytes.
cbs: bepaalt de grootte van de gegevens die tegelijk moeten worden geconverteerd.
ibs: bepaalt de grootte van de gegevens die tegelijk moeten worden gelezen. count: Kopieer alleen N blokken
zoeken: Sla N blokken over aan het begin van de uitvoer
overslaan: N blokken aan het begin van de invoer overslaan
conv=ascii: converteert de bestandsinvoer van EBCDIC naar ASCII
conv=ebcdic: converteert de bestandsinvoer van ASCII naar EBCDIC
conv=ibm: converteert de bestandsinvoer van ASCII naar alternatieve EBCDIC
conv=lcase: converteert bestandsinvoer van hoofdletters naar kleine letters
conv=ucase: converteert bestandsinvoer van kleine letters naar hoofdletters
conv=swab: verwissel elk invoerpaar
Toegevoegde opties:
nocreat: maak het uitvoerbestand niet aan nottruc: kap het uitvoerbestand niet af noerror: Ga door met de bewerking, zelfs nadat u een fout hebt gemaakt fdatasync: schrijf gegevens naar de fysieke opslag voordat het proces is voltooid fsync: vergelijkbaar met fdatasync, maar schrijft ook de metadata iflag: pas de bewerking aan op basis van verschillende vlaggen. Beschikbare vlaggen zijn: toevoegen aan Gegevens toevoegen aan de uitvoer
Toegevoegde opties:
directory: Als u naar een directory kijkt, mislukt de bewerking dsync: Gesynchroniseerde I/O voor data sync: vergelijkbaar met dsync maar bevat metadata nocache: verzoeken om cache te laten vallen. nofollow: volg geen enkele symbolische link
Toegevoegde opties:
count_bytes: vergelijkbaar met "count=N" seek_bytes: vergelijkbaar met "seek=N" skip_bytes: vergelijkbaar met "skip=N" Zoals je hebt gezien, is het mogelijk om meerdere vlaggen en opties in een enkele "dd" -opdracht te stapelen om het bewerkingsgedrag aan te passen.
dd if=demo.txt van=demo1.txt bs=10 count=100 conv=ebcdic iflag=toevoegen,nocache,nofollow,synchroniseren
Laatste gedachten De workflow van "dd" is vrij eenvoudig. Maar om "dd" echt te laten schitteren, is het aan jou. Er zijn talloze manieren waarop creatieve manieren "dd" kunnen worden gebruikt om slimme interacties uit te voeren.
Voor uitgebreide informatie over “dd” en al zijn opties, raadpleeg de man en info pagina.
man dd