Hallo Linux-Community.
Ich möchte gerne von EIDE-Festplatten, die in einem externen Gehäuse mit USB-Anschluss eingebaut sind, das Modell sowie die Seriennummer auslesen. Das gestaltet sich jedoch schwieriger als man denkt. Ich habe bereits die nachfolgenden Erkenntnisse gewonnen.
Wird eine EIDE-Festplatte beispielsweise über die Gerätedatei “/dev/hda” angesprochen, so lassen sich diese Informationen mit “hdparm -i /dev/hda” auslesen.
[…]
/dev/hda:
Model=WDC WD800JB-00ETA0, FwRev=77.07W77, SerialNo=WD-WMAKL2658481
[…]
Da die USB Mass Storage Devices unter Linux als SCSI-Laufwerke angesprochen werden, lautet die Gerätedatei meines ext. Gehäuses “/dev/sde” (mein 4-Port-Card-Reader belegt die ersten vier SCSI-Festplattendevices). Sobald ich den Befehl “hdparm -i /dev/sde” absetze, erhalte ich nur die folgende Fehlermeldung:
/dev/sde:
HDIO_GET_IDENTITY failed: Invalid argument
Nun gibt es für SCSI-Festplatten das Kommando “scsiinfo”, um zumindest den Hersteller und das Modell auszulesen. Die Ausgabe von “scsiinfo -i /dev/sde” enthält u. a. folgende drei Zeilen:
Vendor: Genesys
Product: USB to IDE Disk
Revision level: 0033
Schon beim ersten Blick sieht man, dass das nicht die Daten der Festplatte sind, sondern die des EIDE-Controllers im Festplattengehäuse.
Der Gerätemanager von Windows XP zeigt hingegen bei dem gleichen Gerät (ebenfalls per USB angeschlossen) den korrekten Namen an (“Quantum Fireball CX10.2A USB Device”). Also muss es irgendwie möglich sein, an die Daten heranzukommen.
Hat jemand eine Idee? Die Pseudo-Filesysteme “/proc” und “/sys” lieferten mir leider keine besseren Informationen (getestet mit Debian GNU/Linux 3.1 unter Kernel 2.6.8).
Martin Rasp
hi,
du könntest sdparm[0] noch probieren. bei meiner sata platte hat folgendes funktioniert:
fejf@fejfs:[~] > sdparm /dev/sda -a -l -v –inquiry
/dev/sda: ATA ST3160827AS 3.42
Supported VPD pages VPD page:
[0x00] Supported VPD pages
[0x80] Unit serial number
[0x83] Device identification
fejf@fejfs:[~] > sdparm /dev/sda -a -l -v –inquiry –page=0x80
/dev/sda: ATA ST3160827AS 3.42
Unit serial number VPD page:
5MT0EHMX
fejf@fejfs:[~] > sdparm /dev/sda -a -l -v –inquiry –page=0x83
/dev/sda: ATA ST3160827AS 3.42
Device identification [0x83] VPD page:
Addressed logical unit:
id_type: vendor specific [0x0], code_set: ASCII
00 4c 69 6e 75 78 20 41 54 41 2d 53 43 53 49 20 73 Linux ATA-SCSI s
10 69 6d 75 6c 61 74 6f 72 imulator
allerdings hab ich es mit meinem USB-Stick getestet und dort ging es nicht (allerdings ist ein USB-Stick ja auch keine Festplatte ;)
Hallo.
Danke für den Tipp. Allerdings scheint mir das Projekt “sdparm” etwas suspekt zu sein. Die Version 0.95 lässt sich unter Debian Sarge nicht compilieren. Das DEB-Paket lässt sich auch nicht direkt installieren (nur mit der dpkg-Option –force-all). Die auf der Projektseite verlinkte Version 0.96 existiert nicht.
Wenn ich sdparm 0.95 aus der forcierten Installation aufrufe, erhalte ich folgende Ausgabe:
$ sdparm -i /dev/sde
/dev/sde: Genesys USB to IDE Disk 0033
malformed VPD response, VPD pages probably not supported
Das Auslesen der Seriennummer einer richtigen SCSI-Festplatte hat hingegen funktioniert.
Martin Rasp