Megzavarodott pendrive megmentése

 ( Fisher | 2016. április 1., péntek - 10:57 )

Adott egy 500G-s pendrive, aki szomorú módon kissé megzavarodott. A ddrescue egész jól boldogul vele, ám egy idő után a pendrive eltűnik az USB buszról.

Ami nem segített: unbind/bind, rmmod/modprobe, reboot. Csak az vált be hogy ha kihúzom a pendrive-ot és visszadugom, ami kissé vontatottá teszi a mentés folyamatát, mert 1-200 másodperc után hal meg, mikor hogy. Viszont utána folytatódik a mentés, és látok reményt arra, hogy elegendően sok iterációval akár 100%-ban is helyre lehessen állítani az adatokat.

Azon töprengek, hogy van-e valami mód arra, hogy kikapcsoljam egy-egy USB vezérlő (vagy akár az összes) tápellátását. Az egyelőre rendelkezésre álló eszközök egy barebone pc és esetleg egy Raspberry PI (mindkettőn Debian). Azt pontosan nem tudom hogy mennyi keret van, pl. lehetne építeni egy vezérelt USB hubot, amit akár relével galvanikusan is le lehetne választani (már persze ha van esély hogy az nem csapja agyon a kommunikációt).

Most viszont nyitott vagyok bármilyen ötletre, legfeljebb nem lesz belőle semmi :D
Update:

Cucc működik:

root@dd:~# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 004: ID abcd:1234 Unknown
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Cucc kampeca:

root@dd:~# lsusb
Bus 001 Device 002: ID 1e3d:198a Chipsbank Microelectronics Co., Ltd
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Ezen felbátorodva lekapcsoltam a biosban az usb2 supportot, úgy viszont egyáltalán nem megy. (Mármint a kernel megtalálja, megjelenik mint sdb, de olvasni már nem lehet raula.

Kicsit zavaros a történet, lehet hogy benézek valamit, de egyelőre ez van...

A releváns logrészlet, mintha az usb2-vel nem boldogulna:

Apr 01 21:29:50 dd kernel: usb 2-5: new full-speed USB device number 3 using ohci-pci
Apr 01 21:29:50 dd kernel: usb 2-5: not running at top speed; connect to a high speed hub
Apr 01 21:29:50 dd kernel: usb 2-5: New USB device found, idVendor=1e3d, idProduct=198a
Apr 01 21:29:50 dd kernel: usb 2-5: New USB device strings: Mfr=0, Product=0, SerialNumber=0
Apr 01 21:29:50 dd kernel: usb-storage 2-5:1.0: USB Mass Storage device detected
Apr 01 21:29:50 dd kernel: scsi5 : usb-storage 2-5:1.0
Apr 01 21:30:12 dd kernel: usb 2-5: reset full-speed USB device number 3 using ohci-pci
Apr 01 21:30:38 dd kernel: usb 2-5: USB disconnect, device number 3
Apr 01 21:30:38 dd kernel: usb 1-5: new high-speed USB device number 7 using ehci-pci
Apr 01 21:30:39 dd kernel: usb 1-5: device not accepting address 7, error -71
Apr 01 21:30:41 dd kernel: usb 1-6: new high-speed USB device number 9 using ehci-pci
Apr 01 21:30:41 dd kernel: usb 1-6: device not accepting address 9, error -71
Apr 01 21:30:42 dd kernel: usb 2-6: new full-speed USB device number 4 using ohci-pci
Apr 01 21:30:42 dd kernel: usb 2-6: not running at top speed; connect to a high speed hub
Apr 01 21:30:42 dd kernel: usb 2-6: New USB device found, idVendor=abcd, idProduct=1234
Apr 01 21:30:42 dd kernel: usb 2-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Apr 01 21:30:42 dd kernel: usb 2-6: Product: UDisk
Apr 01 21:30:42 dd kernel: usb 2-6: Manufacturer: General
Apr 01 21:30:42 dd kernel: usb 2-6: SerialNumber: 1402281134040121120304
Apr 01 21:30:42 dd kernel: usb-storage 2-6:1.0: USB Mass Storage device detected
Apr 01 21:30:42 dd kernel: scsi6 : usb-storage 2-6:1.0
Apr 01 21:30:43 dd kernel: scsi 6:0:0:0: Direct-Access     General  UDisk            5.00 PQ: 0 ANSI: 2
Apr 01 21:30:43 dd kernel: sd 6:0:0:0: Attached scsi generic sg1 type 0
Apr 01 21:30:43 dd kernel: sd 6:0:0:0: [sdb] 1048576000 512-byte logical blocks: (536 GB/500 GiB)
Apr 01 21:30:43 dd kernel: sd 6:0:0:0: [sdb] Write Protect is off
Apr 01 21:30:43 dd kernel: sd 6:0:0:0: [sdb] Mode Sense: 0b 00 00 08
Apr 01 21:30:43 dd kernel: sd 6:0:0:0: [sdb] No Caching mode page found
Apr 01 21:30:43 dd kernel: sd 6:0:0:0: [sdb] Assuming drive cache: write through
Apr 01 21:30:43 dd kernel:  sdb: sdb1
Apr 01 21:30:43 dd kernel: sd 6:0:0:0: [sdb] Attached SCSI removable disk
Apr 01 21:31:15 dd kernel: usb 2-6: reset full-speed USB device number 4 using ohci-pci
Apr 01 21:31:15 dd kernel: usb 2-6: device firmware changed
Apr 01 21:31:15 dd kernel: usb 2-6: USB disconnect, device number 4
Apr 01 21:31:15 dd systemd-udevd[481]: inotify_add_watch(6, /dev/sdb, 10) failed: No such file or directory
Apr 01 21:31:15 dd kernel: sd 6:0:0:0: [sdb] Unhandled error code
Apr 01 21:31:15 dd kernel: sd 6:0:0:0: [sdb]
Apr 01 21:31:15 dd kernel: Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK
Apr 01 21:31:15 dd kernel: sd 6:0:0:0: [sdb] CDB:
Apr 01 21:31:15 dd kernel: Read(10): 28 00 3e 7f fc 70 00 00 08 00
Apr 01 21:31:15 dd kernel: end_request: I/O error, dev sdb, sector 1048575088
Apr 01 21:31:15 dd kernel: Buffer I/O error on device sdb, logical block 131071886
Apr 01 21:31:15 dd kernel: Buffer I/O error on device sdb, logical block 131071886
Apr 01 21:31:16 dd kernel: usb 2-6: new full-speed USB device number 5 using ohci-pci
Apr 01 21:31:16 dd kernel: usb 2-6: not running at top speed; connect to a high speed hub
Apr 01 21:31:16 dd kernel: usb 2-6: New USB device found, idVendor=1e3d, idProduct=198a
Apr 01 21:31:16 dd kernel: usb 2-6: New USB device strings: Mfr=0, Product=0, SerialNumber=0
Apr 01 21:31:16 dd systemd-udevd[481]: inotify_add_watch(6, /dev/sdb1, 10) failed: No such file or directory
Apr 01 21:31:16 dd kernel: usb-storage 2-6:1.0: USB Mass Storage device detected
Apr 01 21:31:16 dd kernel: scsi7 : usb-storage 2-6:1.0
Apr 01 21:31:16 dd systemd-udevd[481]: inotify_add_watch(6, /dev/sdb, 10) failed: No such file or directory

Talán1: http://blog.andrew.net.au/2009/01/17 & https://github.com/codazoda/hub-ctrl.c
Talán2: https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=93463

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

A tápelvétel nen jó. Először a tápnak kell csatlakoznia és utána a busznak.
Erre itt egy példa.

Most nézem, hi-speedre nem jó. Tán az analóg kapcsoló túl nagy ellenállása és kapacitása miatt...

Az rmmod/modprobe kombó melyik modult vette ki, tette vissza? Az usb-storage lenne a logikus választás, lévén hogy blokk eszközről van szó - de szerintem magának az usb vezérlőnek a driverét is érdemes megpróbálni (usb-uhci, uhci-hcd, ehci-hcd, stb.), mert ezek inicializálják az USB buszt, szerencsés esetben a tápellátást is kapcsolhatják. Vagy nem, mérget nem veszek rá de egy próbát megér.

A reboot se volt elég :D

Szerk.: megnéztem, igen, ezeket (is) kiszedtem. Betöltés után viszont:

Apr 01 20:38:53 dd kernel: work still pending
Apr 01 20:39:13 dd kernel: usb 1-5: reset high-speed USB device number 2 using ehci-pci

Legalábbis gondolom összefügg.