Ich habe einen Einzeiler basierend auf der Antwort von Tobi Hahn geschrieben.
Sie möchten beispielsweise wissen, welches Gerät für ata3 steht:
ata=3; ls -l /sys/block/sd* | grep $(grep $ata /sys/class/scsi_host/host*/unique_id | awk -F'/' '{print $5}')
Es wird so etwas produzieren
lrwxrwxrwx 1 root root 0 Jan 15 15:30 /sys/block/sde -> ../devices/pci0000:00/0000:00:1f.5/host2/target2:0:0/2:0:0:0/block/sde
Verwenden Sie diesen Befehl:
ls -l /sys/block/sd* | sed 's/.*\(sd.*\) -.*\(ata.*\)\/h.*/\2 => \1/'
Auf meinem System erzeugt dies die Ausgabe:
ata1 => sda
ata2 => sdb
ata3 => sdc
ata4 => sdd
ata7 => sde
ata8 => sdf
Dies funktioniert auch dann, wenn alle Festplatten das gleiche Laufwerksmodell haben (zwischen diesen 6 Festplatten gibt es nur zwei verschiedene Modelle). Beachten Sie, dass dies von der sysfs-Benennung abhängt und in meinem Kernel 3.10.17 funktioniert. Ich weiß, dass es irgendwann in der Vergangenheit nicht so sauber war, die Zuordnungen abzurufen, aber ich bin mir nicht sicher, für welche früheste Kernel-Version dies funktionieren wird.
Wenn es bei Ihnen nicht funktioniert, finden Sie unter diesem Link einen umständlicheren Weg, um die Zuordnungen zu ermitteln:http://www.miriup.de/index.php?option=com_content&view=article&id=84:mapping-linux-kernel- ata-errors-to-a-device&catid=8:linux&Itemid=25
Es stellte sich heraus, dass das Mapping einfacher war, als ich dachte.
dmesg | grep ata2 | head
gibt die Kernel-Zuordnung des Laufwerks während des Startvorgangs an. Oder Sie entscheiden sich einfach für ata2.00
sofort.
[ 2.448300] ata2: SATA max UDMA/133 abar [email protected] port 0xfeb0b180 irq 19
[ 2.940139] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[ 2.942143] ata2.00: ATA-8: ST31000340NS, SN05, max UDMA/133
[ 2.942149] ata2.00: 1953525168 sectors, multi 16: LBA48 NCQ (depth 31/32)
[ 2.944573] ata2.00: configured for UDMA/133
(and some stuff I'd rather never have to see about drive errors)
Wie Sie sehen können, enthält eine dieser Zeilen die Modellnummer meines Laufwerks (ST31000340NS
), die ich dann verwenden kann, um sie einem /dev
zuzuordnen Datei:
$ readlink /dev/disk/by-id/*ST31000340NS* | head -n1
../../sda