-
Você deve obter mais informações do dmesg:
dmesg | grep ata
Algo como:
[ 2.345126] ata2.00: ATA-8: WDC WD20EARX-00PASB0, 51.0AB51, max UDMA/133
Esse seria meu disco rígido da Wester Digital.
-
Aqui está uma maneira se você tem várias unidades de um modelo (quando acima não vai ajudar):
-
Encontre um mapeamento do host SCSI para o ID *:
$ egrep "^[0-9]{1,}" /sys/class/scsi_host/host*/unique_id /sys/class/scsi_host/host0/unique_id:1 /sys/class/scsi_host/host1/unique_id:2 /sys/class/scsi_host/host2/unique_id:3 /sys/class/scsi_host/host3/unique_id:4
-
Encontre um mapeamento do host SCSI para o ID sd *:
$ ls -l /sys/block/sd* ... /sys/block/sda -> ../devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda ... /sys/block/sdb -> ../devices/pci0000:00/0000:00:1f.2/host1/target1:0:0/1:0:0:0/block/sdb
Agora você pode vincular esses dois resultados por meio do identificador host *. Então, se nesse caso eu estou tendo problemas com o ata2, eu procuraria o unique_id 2 → host1 e, em seguida, qual sd * é host1 → sdb.
-
-
Eu também tentei criar um one-liner. Não faço ideia se é robusto. Você primeiro tem que definir o ata * como uma variável:
FAIL=ata1
execute:
echo "$FAIL -> $(ls -l /sys/block/ | grep $(grep "^$(echo $FAIL | cut -c 4-)" /sys/class/scsi_host/host*/unique_id | sed "s/.*\(host[0-9]\{1,\}\).*//") | awk '{print }')"
que deve retornar algo como:
ata1 -> sda