La forma más fácil es revisar el registro del núcleo desde el inicio, ya que los nombres de los dispositivos de la unidad se mezclan desde varias fuentes (por ejemplo, unidades USB), o se asignan según el tipo de dispositivo (es decir, cdrom puede ser scdX en su lugar, y todo tiene un sgX ) En la práctica, a menos que haya mezclado diferentes tipos de buses (por ejemplo, SATA + USB), el dispositivo ata de menor número será sda a menos que sea un dispositivo cdrom.
Dependiendo de su sistema, puede adivinarse deambulando por sysfs. En mi sistema ls -l /sys/dev/block
revela que 8:0
(mayor: menor desde la entrada / dev) apunta a /sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda
Likewise, ls -l /sys/class/ata_port
revela los ata1
puntos a los /sys/devices/pci0000:00/0000:00:1f.2/ata1/ata_port/ata1
que está en el mismo subdispositivo PCI.
Como uso SATA, y solo hay una unidad en cada puerto, puedo deducir que ata1.00 = sda. Todas mis unidades son .00, sospecho que si usara un multiplicador de puerto, mis unidades recibirían .01, .02, .03, etc. Mirando los registros de otras personas, los controladores PATA usan .00 y .01 para maestro y esclavo , y según sus registros si tiene ataX.01, el .01 debe asignarse a la "ID" en el host: canal: ID: carpeta LUN de la /sys/dev/block/
lista. Si tiene varias carpetas ataX/
y hostY/
en la misma carpeta del dispositivo PCI, sospecho que la carpeta ataX con el número más bajo coincide con la carpeta hostY con el número más bajo.