Sie finden das entsprechende / dev / sdY-Gerät, indem Sie den /sysBaum durchlaufen :
$ find /sys/devices | grep '/ata[0-9]\+/.*/block/s[^/]\+$' \
| sed 's@^.\+/\(ata[0-9]\+\)/.\+/block/\(.\+\)$@\1 => /dev/\2@'
Mit einer effizienteren /sysDurchquerung (vgl. Lsata.sh ):
$ echo /sys/class/ata_port/ata*/../../host*/target*/*/block/s* | tr ' ' '\n' \
| awk -F/ '{printf("%s => /dev/%s\n", $5, $NF)}'
Beispielausgabe von einem 2-Platten-System:
ata1 => /dev/sda
ata2 => /dev/sdb
Um die tatsächliche Hardware zuverlässig zu identifizieren, müssen Sie / dev / sdY der Seriennummer zuordnen, z.
$ ls /dev/disk/by-id -l | grep 'ata.*sd[a-zA-Z]$'
lssci
Das lssciDienstprogramm kann auch verwendet werden, um die Zuordnung abzuleiten:
$ lsscsi | sed 's@^\[\([^:]\+\).\+\(/dev/.\+\)$@\1,\2@' \
| awk -F, '{ printf("ata%d => %s\n", $1+1, $2) }'
Beachten Sie, dass die relevante lsscsi-Aufzählung bei 0 beginnt, während die ata-Aufzählung bei 0 beginnt.
Syslog
Wenn nichts anderes funktioniert, kann man sich das Syslog / Journal ansehen, um das Mapping abzuleiten.
Die /dev/sdYGeräte werden in derselben Reihenfolge erstellt, in der die ataX-Kennungen aufgelistet sind, kern.logwährend Nicht-Festplattengeräte (ATAPI) und nicht verbundene Links ignoriert werden.
Der folgende Befehl zeigt daher die Zuordnung an:
$ grep '^May 28 2' /var/log/kern.log.0 | \
grep 'ata[0-9]\+.[0-9][0-9]: ATA-' | \
sed 's/^.*\] ata//' | \
sort -n | sed 's/:.*//' | \
awk ' { a="ata" $1; printf("%10s is /dev/sd%c\n", a, 96+NR); }'
ata1.00 is /dev/sda
ata3.00 is /dev/sdb
ata5.00 is /dev/sdc
ata7.00 is /dev/sdd
ata8.00 is /dev/sde
ata10.00 is /dev/sdf
(Beachten Sie, dass ata4 nicht angezeigt wird, da die obigen Protokollmeldungen von einem anderen System stammen.)
Ich benutze /var/log/kern.log.0und nicht, /var/log/kern.logweil die Boot-Meldungen bereits gedreht sind. Ich greife nach, May 28 2weil dies die letzte Startzeit war und ich vorherige Nachrichten ignorieren möchte.
Um die Zuordnung zu überprüfen, können Sie einige Überprüfungen durchführen, indem Sie die Ausgabe von:
$ grep '^May 28 2' /var/log/kern.log.0 | \
grep 'ata[0-9]\+.[0-9][0-9]: ATA-'
May 28 20:43:26 hn kernel: [ 1.260488] ata1.00: ATA-7: SAMSUNG SV0802N, max UDMA/100
May 28 20:43:26 hn kernel: [ 1.676400] ata5.00: ATA-5: ST380021A, 3.19, max UDMA/10
[..]
Und Sie können diese Ausgabe mit der hdparmAusgabe vergleichen, z.
$ hdparm -i /dev/sda
/dev/sda:
Model=SAMSUNG SV0802N [..]
(mit Kernel 2.6.32-31)