stiziwik
Sie befinden sich hier: Willkommen » linux » dd
Zuletzt angesehen:

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.


—linux:dd [2022/04/28 10:32] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 +====== dd ======
 +Der Masterbootrecord, auch "MBR" genannt, ist 512 Bytes groß und liegt am Anfang eines Datenträgers.
 +Der Bootloader selbst belegt die ersten 446 Bytes, gefolgt von Partitionstabelleninformationen.
  
 +Mit dem Programm ''dd'' kann nicht nur ein Image einer Partition oder gar einer ganzen Festplatte gemacht werden.
 +Der Bootload sowie die Partitionstabelle lassen sich ebenso separat abspeichern.
 +
 +===== Bootloader sichern =====
 +Hiermit wird der Bootloader ohne Partitionstabelle gesichert
 +
 +<code bash>dd if=<Pfad_zu_Gerätedatei> of=<Pfad_zu_Sicherungsdatei> bs=446 count=1</code>
 +
 +Hiermit wird der gesamte MBR mit Partitionstabelle gesichert
 +
 +  dd if=<Pfad_zu_Gerätedatei> of=<Pfad_zu_Sicherungsdatei> bs=512 count=1
 +
 +===== Bootloader restore =====
 +
 +Zurückspielen kann man das ganze indem man die Pfade von "if" und "of" vertauscht.
 +
 +Ein Image das mit ''dd'' erstellt wurde lässt sich mit ''mount'' als Loop-Device einbinden.
 +
 +  mount -o loop <Pfad_zu_Imagedatei> <Pfad_zu_Mountpoint>
 +
 +===== Mount einzelner Partitionen =====
 +Dies gilt für Images einzelner Partitionen, doch was ist mit Images ganzer Festplatten.
 +Hier ist es nicht so einfach. Man kann nicht die ganze Festplatte aus dem Image als Loop-Device einbinden.
 +Man muss auch hier einzelne Partitionen einbinden.
 +
 +Um herauszufinden welche Partition sich wo im Image befindet, muß man den "Offset" wissen.
 +Der "Offset" gibt den Anfang der Partition an und wird mit dem Programm ''fdisk'' ausgelesen.
 +
 +  fdisk -l -u <Pfad_zu_Imagedaei>
 +
 +Die Ausgabe kann so aussehen:
 +
 +<code>
 +Platte /dev/sda: 500.1 GByte, 500107862016 Byte
 +255 Köpfe, 63 Sektoren/Spur, 60801 Zylinder, zusammen 976773168 Sektoren
 +Einheiten = Sektoren von 1 Ã 512 = 512 Bytes
 +Sector size (logical/physical): 512 bytes / 512 bytes
 +I/O size (minimum/optimal): 512 bytes / 512 bytes
 +Disk identifier: 0x000b4541
 +
 +Gerät  boot.     Anfang        Ende     Blöcke   Id  System
 +/dev/sda1              63      208844      104391   83  Linux
 +/dev/sda2          208845    30925124    15358140   83  Linux
 +/dev/sda3        30925186   976768064   472921439+   5  Erweiterte
 +/dev/sda5        30925188    35118089     2096451   82  Linux Swap / Solaris
 +/dev/sda6        35118153   976768064   470824956   83  Linux
 +</code>
 +
 +Der Wert unter "Anfang" ist der Offset der jew. Partition die man Mounten möchte.
 +Damit eine Partition aus dem Image gemountet werden kann muss der "Offset" noch mit der Sektorgröße multipliziert werden.
 +Also z.B. für die 6. Partition: 35118153 * 512 = 17980494336
 +
 +Nun können wir die 6. Partition mounten mit
 +
 +  mount -o loop,offset=55841425920 <Pfad_zu_Imagedatei> <Pfad_zu_Mountpoint>
 +
 +
 +Die hier aufgeführten Informationen habe ich von der Quelle: [[http://wiki.ubuntuusers.de/| Wiki-Ubuntuusers]]
 +
 +===== Testdatei =====
 +Manchmal braucht man Testdateien für irgendwelche Messungen und Tests.
 +Mit dem Device //urandom// kann //dd// eine solche Datei erzeugen.
 +Hier der Befehl
 +<code bash>dd if=/dev/zero of=./testfile bs=10M count=2</code>
 +oder mit ''urandom''
 +<code bash>dd if=/dev/urandom of=./testfile bs=10M count=2</code>
 +Mit diesem Befehl wird aktuellen Verzeichnis die Datei Testfile mit einer Größe von 20MB erstellt.
 +
 +===== Alles shreddern =====
 +siehe: [[linux:festplatten]]
 +===== Fortschritsanzeige =====
 +Bei langwirigen Vorgängen, weiß man nicht bei wieviel Megabyte sich ''dd'' gerade befindet.
 +
 +Dies kann mit einem ''kill''-Befehl ermittelt werden.
 +Diesem Befehl sendet man das Signals **-USR1**.
 +
 +**Informationen**, zu laufenden Prozessen, können mit den Befehlen ''ps'', ''pgrep'' oder ''pidof'' abgefragt werden.
 +**Signale** können dann mit den Befehlen ''kill'', ''pkill'' oder ''killall'' gesendet werden.
 +
 +Man ermittelt, in einem weiteren Terminalfenster, also zunächst die ProzessID oder den Prozessnamen und sendet diesen das Signal "-USR1".
 +
 +**Mit ''ps'' und ''kill''**
 +  * ProzessID der laufenden Terminal-Prozesse ermitteln.
 +
 +  ps -a 
 +
 +  * Signal senden
 +
 +  kill -USR1 <PROZESSID>
 + 
 +Der aktuelle Fortschritt von ''dd'' wird nun in dem Terminal-Fenster ausgegeben, in dem ''dd'' gestartet wurde.
 +
 +  * Schleife
 +<code bash>dd if=<PFAD_ZU_GERÄT> of=<PFAD_ZU_GERÄT> & ddpid=$! ; while [ $(ps -a | grep $ddpid) ]; do kill -SIGUSR1 $ddpid; sleep 10; done</code>
 +
 +**Mit ''pkill''**
 +Wenn nur ein ''dd'' Prozess läuft, kann man das Signal auch an den Prozessnamen übergeben.
 +
 +  * Signal senden
 +
 +<code>pkill -USR1 -x dd</code>
 +
 +  * Schleife
 +<code bash>dd if=<PFAD_ZU_GERÄT> of=<PFAD_ZU_GERÄT> & while [ ! $(pkill -USR1 -x dd) ]; do sleep 10 ; : ; done</code>

Webseiten-Werkzeuge

  • Letzte Änderungen
  • Medien-Manager
  • Übersicht

Seiten-Werkzeuge

  • Seite anzeigen
  • Ältere Versionen
  • Links hierher
  • Nach oben

Benutzer-Werkzeuge

  • Anmelden
stiziwik

Table of Contents

  • Android
  • Bild-und-video
  • Datenverarbeitung
  • Fahrzeuge
  • Hausautomatisation
  • linux
    • Alix-router
    • Icinga
    • Log-Server
    • Mail
    • Mysql
    • Nagios
    • Owncloud
    • Virtualisierung
    • Webcam
    • Accl Attr
    • Alternativen-System
    • Antivirus-live
    • Anzahl
    • Audacious
    • Audiodateien-umwandeln
    • Avira-Live-Rescue
    • Backupscript
    • Bash
    • Beep-mit-Ringtones
    • Benutzerpassword Deaktivieren
    • Bluetooth
    • Bootvorgang
    • CD-Ripper
    • Clonezilla
    • Coredump
    • Datenrettung
    • Datum Und Uhrzeit
    • dd
    • Desktop-dateien
    • Docker
    • Duplikate
    • Fail2ban
    • Festplatten
    • Fingerprintsensor
    • Gddrescue
    • Geda
    • Genisoimage mkisofs
    • Grub
    • Internetradio
    • Ipod
    • Journalctl
    • Keepass
    • Kernel Bauen
    • Keystore
    • Live-CD erstellen
    • Lnav
    • Lshw-hardware
    • Message-of-the-day
    • Midnight Commander
    • Mongodb
    • Nohup, Hintergrund, anhalten und Co
    • Openssl
    • Pakete bauen
    • Paketverwaltung
    • Passwort-Generator
    • Patches
    • Prüfsumme
    • Quota
    • Remote Desktop Verbindung
    • Request Tracker
    • Rsync
    • Samba
    • Scriptschnipsel
    • Serielle-Konsole
    • Smartmontools
    • Sms-gateway
    • Softwareraid
    • Squid
    • SSH
    • Stats
    • Stresstest
    • Strongswan VPN
    • Sudo
    • Supergrub2disk
    • Supervisord
    • Swap
    • Syslog
    • Systemrescue
    • Tftp
    • Thunderbird
    • Umbenennen
    • Unity Fenstermanager
    • Video-streaming
    • Virenscan-script
    • Virtualbox
    • Virtualisierung
    • Vnc-vino
    • Watchdog
    • Webmin
    • Wmctrl
    • Zeitsynchronisation Mit DCF-77 Empfänger
    • Zoneminder
  • Nas
  • Netzwerk
  • PlayGround
  • Programieren
  • Projekte
  • Raspberry Pi
  • sonstiges
  • VDR
  • Web
  • Werkstatt
  • Wiki
  • sidebar-acmenu
  • sidebar-indexmenu
  • sidebar-simplenavi