Kann nicht raw auf fd0 schreiben.

cirad

Well-Known Member
Hiho!
Ich kann nicht direkt auf fd0 schreiben:

cat irgendwas > /dev/fd0
cat: stdout: Input/output error

dd if=irgendwas of=/dev/fd0
dd: /dev/fd0: Invalid argument
12+1 records in
12+0 records out
6144 bytes transferred in 1.229562 secs (4997 bytes/sec)

mounten, davon direkt lesen (cat /dev/fd0) und auch newfs /dev/fd0 funktionieren problemlos.

google sagt überhaupt nichts und im IRC konnte mir bis jetzt auch niemand helfen. (FBSD 5.1)
 
Sorry, war ein falsches Beispiel (da war die Diskette wirklich hinüber):

cat irgendwas > /dev/fd0
cat: stdout: Invalid argument

So muß es aussehen (also gleiche Meldung wie bei dd). Die Diskette ist definitiv ganz, denn ich kann sie komplett auslesen (cat /dev/fd0) und auch problemlos mounten und beschreiben und wieder lesen. Außedem habe ich es mit mehreren Disketten probiert.

PS: Außerdem mußte es newfs_msdos heissen. (:
 
Zum Schreiben auf die Diskette benutzt du am besten dd mit einer Blocksize die ein Vielfaches von 512 (oder 1024?) ist, z.B.
Code:
dd if=blubber of=/dev/fd0 bs=512

Das "invalid argument" heisst, dass der device driver für /dev/fd0 einen Parameter nicht mag, welchen genau kann truss klären (meistens ist es die blocksize).

Übrigens kannst du mit dd auch CD's rippen:
Code:
dd if=/dev/acd0t01 of=track.raw bs=2352
Auch hier ist die bs Angabe (2352) wichtig, sonst bekommst du auch wieder "Invalid argument"...
 
"dd if=file of=/dev/fd0 conv=osync" tuts. Man darf wohl nur komplette Blöcke schreiben, also ein Vielfaches von 512. Wäre schön, wenn mir jemand den Sinn erklären könnte.
 
Code:
Wäre schön, wenn mir jemand den Sinn erklären könnte.
Vermutlich kann der letzte Block auch kleiner < 512 Bytes sein. Hintergrund ist natürlich, dass die Blocksize der Diskette eben 512 Bytes ist.
 
Naja, der letzte geschriebene Block muß "komplett" (512B) sein und wird notfalls aufgefüllt. Aber warum muß man auf Disketten komplette Blöcke schreiben? Auf HDD geht es ja auch ohne (wäre mir sonst zumindest recht neu <: ).

Naja, in Zukunft weiß ich wenigstens mit "stdout: Invalid argument" etwas anzufangen. (:
 
Auf HDD geht es ja auch ohne (wäre mir sonst zumindest recht neu <: ).
Na ja, auf die Platte schreibst Du vermutlich eher selten direkt drauf (Ausnahme vielleicht Bootblöcke). Typischerweise hast Du ja ein Filesystem auf deiner Platte. Das kannst Du (und willst Du?) auch auf Deinen Disketten verwenden (siehe emulator/mtools in den ports, bzw. mount -t msdos).
Naja, in Zukunft weiß ich wenigstens mit "stdout: Invalid argument" etwas anzufangen. (:
Vorsicht, das was in diesem Thread diskutiert wurde gilt auch nur in diesem Zusammenhang. Die Fehlermeldung kann in anderem Zusammenhang etwas komplett anderes bedeuten...
 
Zurück
Oben