Hallo,
ich hab' da ein Problem(chen) mit dd und dazu eine möglicherweise dusselige Frage.
Beim Benutzen eines (auch schnellen) USB-Sticks gibt dd bereits eine "fertig" Meldung obwohl der Stick noch lange beschäftigt ist -ich vermute mal, alle Daten sind bereits in irgendeinem cache und für dd ist der Job tatsächlich schon beendet. Auch die Abfrage über die &pid=$!; kill -USR1 $pid Funktion liefert dann natürlich nix mehr.
Das ist unproblematisch wenn ich einen Stick mit einer Diodenanzeige benutze. Hat ein Stick keine hab ich keine Ahnung wann der Vorgang wirklich abgeschlossen ist, vermutlich habe ich mir durch zu frühes Abziehen bereits einen Stick gekillt.
Wie finde ich raus wann der Stick tatsächlich keine Zugriffe mehr hat?
Gruß
ayla
Ich nutze ganz gerne mal 'pv' dafür (pipeview), das gibt eine Art Fortschrittsanzeige:
dd if=/dev/input | pv -brt | dd of=/dev/output
Siehe z.B. hier: http://www.catonmat.net/blog/unix-utilities-pipe-viewer/ oder Kommentare hier: http://blog.christophersmart.com/2009/11/28/checking-the-progress-of-dd/
hi ayla,
das Kommandozeilen-Tool lsof könnte noch helfen.
Danke euch,
zwei interessante Kommandos und die Tests mit einem alten 2.0er Stick lassen sich gut an.
pv gibt die Information laufend aus, gut um die Übertragungsrate und den Fortschritt sehen zu können, lsof +d /dev |grep dd oder lsof |grep dd kann man gut nachträglich nehmen wenn man z.B. vergessen hat pv einzubauen.
Mal schauen, ich nehm' meine 3.0er Sticks, bei denen das Problem am häufigsten und mit der längsten "Nachlaufzeit"auftritt, nicht so gern zum Testen, aber demnächst sollte sich ja wieder die Gelegenheit gehäuft ergeben :)
Gruß
ayla