Login
Login-Name Passwort


 
Newsletter
Do, 4. Oktober 2001, 23:18

Floppys schneller schreiben

Eine der vielen Verwendungsmöglichkeiten von dd ist es, ein Floppy-Image (z.B.Bootdisk einer Distribution) auf eine Floppy zu kopieren.

Das Kommando

dd if=floppy.image of=/dev/fd0

benötigt auf Rechnern, die ich getestet habe, 90-100 Sekunden. Mit einer simplen Option kann man diese Zeit halbieren. dd kopiert die Daten nämlich blockweise, wobei die Standardgröße eines Blocks 512 Bytes ist. Obwohl dies genau der Sektorgröße einer Diskette entspricht, ist das nicht sehr effizient. Vielleicht deshalb, weil jeder Sektor in diesem Fall einzeln geschrieben wird.

Besagte Option ist das Ändern der Blockgröße mit bs:

dd if=floppy.image of=/dev/fd0 bs=1k

Mit einer Blockgröße von 1024 Bytes (1k) sinkt die Zeit tatsächlich auf 45-48 Sekunden. Noch höhere Blockgrößen bringen allerdings keine Verbesserung mehr. Vielleicht deshalb, weil das virtuelle Dateisystem von Linux intern mit Blöcken von 1024 Bytes arbeitet.

Beim Lesen dagegen spielt die Blockgröße keine Rolle. Auch hier kann ich nur eine Vermutung anstellen, warum. Wahrscheinlich werden aufeinanderfolgende Sektoren der Diskette schon im Voraus gelesen (Read-ahead), so daß die Zahl der benötigten Suchvorgänge/Rotationen minimiert wird.

Als echte Shell-Experten halten wir diese Erkenntnis gleich in ein paar praktischen Shell-Funktionen fest:

function fromfloppy() { dd if=/dev/fd0 of="$1"; }
function tofloppy() { dd if="$1" of=/dev/fd0 bs=1k; }

Beide Funktionen arbeiten mit der ersten Floppy (/dev/fd0) und benötigen einen Image-Namen als Parameter. Die Anführungszeichen um $1 sind natürlich nötig, damit seltsame Dateinamen nicht falsch interpretiert werden. Ein besserer Name für fromfloppy wäre vielleicht mkimage (aufpassen, daß ein Programm dieses Namens noch nicht im System vorhanden ist). tofloppy könnte man auch writeimage oder - wenn's gefällt - rawrite nennen.

  • Dieses Werk wurde von seinem Urheber zur uneingeschränkten Nutzung freigegeben und ist damit gemeinfrei (»public domain«).

Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten