Dd: Unterschied zwischen den Versionen
Admin (Diskussion | Beiträge) |
Admin (Diskussion | Beiträge) |
||
Zeile 1: | Zeile 1: | ||
= | = Image erstellen = | ||
Mit dd lassen sich Images erstellen oder schreiben. Die Syntax sieht | Mit dd lassen sich Images erstellen oder schreiben. Die Syntax sieht wie folgt aus: | ||
<source lang="bash"> | <source lang="bash"> | ||
sudo dd if=/dev/mmcblk0 of=olimex-noworking.img | sudo dd if=/dev/mmcblk0 of=olimex-noworking.img | ||
</source> | </source> | ||
Dabei wird vom Gerät ''mmcblk0'' (eine SD-Karte) ein Image im selben Verzeichnis mit Namen ''olimex-noworking.img'' erzeugt. | |||
Nach der ProzessID von dd suchen: | == Den Prozess überwachen == | ||
Das Image Erstellen dauert eine ganze Weile und es gibt keine Rückmeldung. Wenn man sich den Fortschritt anzeigen lassen möchhte, geht das folgendermaßen: | |||
* Nach der ProzessID von dd suchen: | |||
<source lang="bash"> | <source lang="bash"> | ||
ps -ef | grep dd | ps -ef | grep dd | ||
Zeile 17: | Zeile 21: | ||
</source> | </source> | ||
In einer weiteren Shell den Befehl mit der ProzessID aufrufen: | * In einer weiteren Shell den Befehl mit der ProzessID aufrufen: | ||
<source lang="bash"> | <source lang="bash"> | ||
while true; do sudo kill -USR1 24502; sleep 30; done | while true; do sudo kill -USR1 24502; sleep 30; done | ||
</source> | </source> | ||
In diesem Beispiel gibt ''dd'' alle 30 Sekunden eine Meldung aus, die z.B. so aussehen kann: | |||
<source lang="bash"> | <source lang="bash"> |
Version vom 1. Oktober 2015, 07:11 Uhr
Image erstellen
Mit dd lassen sich Images erstellen oder schreiben. Die Syntax sieht wie folgt aus:
sudo dd if=/dev/mmcblk0 of=olimex-noworking.img
Dabei wird vom Gerät mmcblk0 (eine SD-Karte) ein Image im selben Verzeichnis mit Namen olimex-noworking.img erzeugt.
Den Prozess überwachen
Das Image Erstellen dauert eine ganze Weile und es gibt keine Rückmeldung. Wenn man sich den Fortschritt anzeigen lassen möchhte, geht das folgendermaßen:
- Nach der ProzessID von dd suchen:
ps -ef | grep dd
Das sieht dann in etwa so aus:
root 24502 23885 0 10:20 pts/1 00:00:00 sudo dd if=a20_release5.img of=/dev/mmcblk0
root 24503 24502 8 10:20 pts/1 00:00:05 dd if=a20_release5.img of=/dev/mmcblk0
kluge 24511 24142 0 10:21 pts/4 00:00:00 grep --color=auto dd
- In einer weiteren Shell den Befehl mit der ProzessID aufrufen:
while true; do sudo kill -USR1 24502; sleep 30; done
In diesem Beispiel gibt dd alle 30 Sekunden eine Meldung aus, die z.B. so aussehen kann:
5314678+0 Datensätze ein
5314678+0 Datensätze aus
2721115136 Bytes (2,7 GB) kopiert, 493,896 s, 5,5 MB/s
5637466+0 Datensätze ein
5637466+0 Datensätze aus
2886382592 Bytes (2,9 GB) kopiert, 523,922 s, 5,5 MB/s
5917121+0 Datensätze ein
5917121+0 Datensätze aus
3029565952 Bytes (3,0 GB) kopiert, 553,939 s, 5,5 MB/s
Extended Version
Nun kann es vorkommen, dass man ein Image von etwas erzeugen möchte, was noch viel freien Platz ausweist. Diesen braucht man natürlich nicht in das Image übernehmen. Daher mit fdisk die Partitionen abfragen:
> fdisk -l /dev/mmcblk0
Platte /dev/mmcblk0: 7948 MByte, 7948206080 Byte
4 Köpfe, 16 Sektoren/Spur, 242560 Zylinder, zusammen 15523840 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
Festplattenidentifikation: 0x6f20736b
Gerät boot. Anfang Ende Blöcke Id System
/dev/mmcblk0p1 2048 34815 16384 83 Linux
/dev/mmcblk0p2 34816 7774207 3869696 83 Linux
Das Ende der zweiten Partition liegt in diesem Fall bei 7774207. Daraus folgt der folgende Befehl zum Erstellen des komprimierten Images. Bei count musst die Anzahl der zu kopierenden Blöcke angeben werden. Diese berechnet sich aus "Ende der zweiten Partition + 1 = 7774208". Die Blocksize (bs) findet man ebenfalls in der Ausgabe von fdisk (hier 512 Bytes).
sudo dd if=/dev/mmcblk0 bs=512 count=7774208 | gzip > raspberry.dump.gz