dd auf dev USB angewendet, bevor die Verbindung mit / dev / sdX fehlerhaft ist und nicht funktioniert

357
vgonisanz

Ich habe einen USB-Anschluss, bei dem ich eine ISO-Größe von ca. 5 MB mit einem kleinen Betriebssystem mit eigener Grube verwende. Wenn ich das Gerät schließe und es mit sudo fdisk -l überprüfe, bekomme ich:

... Device Boot Start End Sectors Size Id Type /dev/sdb1 * 1 9551 9551 4.7M cd unknown 

Wenn ich mit dd das ISO sudo dd kopiere, wenn = mein_os.iso von = / dev / sdb

14852+0 records in 14852+0 records out 7604224 bytes (7.6 MB) copied, 0.538487 s, 14.1 MB/s 

Es funktioniert perfekt. Ein Boot vom BIOS in einem anderen PC.

Das Problem ist, irgendwann vergesse ich, den USB nach einem Update des BIOS anzuschließen, also mache ich ff OHNE den USB-Anschluss, die Ausgabe lautet:

14852+0 records in 14852+0 records out 7604224 bytes (7.6 MB) copied, 0.00987684 s, 770 MB/s 

Jetzt ist das / dev / sdb-Register beschädigt, die Kopiergeschwindigkeit (770 MB / s) hat keinen Sinn und kann erst nach einem Neustart erneut verwendet werden.

Ich habe versucht, es mit ddrescue zu reparieren, und es funktioniert nicht

sudo ddrescue /dev/zero /dev/sdb conv=noerror,sync 

Meine Frage ist, was genau passiert und wenn möglich, wie / dev / sdb repariert werden kann, um einen Neustart zu vermeiden und dd wieder zu funktionieren?

Vielen Dank.

1

1 Antwort auf die Frage

5
grawity

Geräteknoten werden /dev/sd*nur in / dev angezeigt, nachdem das Gerät angeschlossen wurde, nicht vorher. (Sie werden auch nicht als "Register" bezeichnet.) Bei der dd of=/dev/sdbAusführung wurden also keine Geräte berührt. Stattdessen dd erstellte sie eine neue Datei mit diesem Namen, da die Ausgabedatei nicht vorhanden war .

$ sudo dd if = archlinux-2016.04.01-dual.iso von = / dev / sdc 1482752 + 0 Datensätze in 1482752 + 0 zeichnet aus 759169024 Byte (759 MB, 724 MiB) kopiert, 0,941926 s, 806 MB / s  $ ls -l / dev / sd * brw-rw ---- 1 root disk 8, 0 15. juni 08:54 / dev / sda brw-rw ---- 1 root disk 8, 16 Jun 15 14:14 / dev / sdb -rw-r - r-- 1 wurzel wurzel 724M 15. juni 15:06 / dev / sdc 

Es gibt also wirklich nichts, was "beschädigt" sein könnte, und nichts, was für "Reparatur" oder "Rettung" sinnvoll ist. Sie haben einfach eine riesige Datei mit dem Namen /dev/sdb, und da sie existiert, kann der Kernel dort keinen echten Geräteknoten erstellen.

(Die Schreibgeschwindigkeit ist absolut sinnvoll - /devwird im RAM gespeichert, Sie haben also das Bild aus dem RAM, in dem es zwischengespeichert wurde, wieder in den RAM gespeichert, wo / dev lebt.)

Wenn Sie /dev/sdbdas Gerät löschen und erneut anschließen, sollte der reale Geräteknoten wieder angezeigt werden.