Hacer coincidir los números de puerto con los dispositivos

Hacer coincidir los números de puerto con los dispositivos

Tenemos una computadora con múltiples unidades de arranque, todas las cuales contienen el mismo software. La selección del disco de arranque se realiza mediante un interruptor de múltiples posiciones en el panel frontal. Si se selecciona el disco 1, se inicia el disco en el puerto SATA 0. Si se selecciona el disco 2, se inicia el disco en el puerto SATA 1. Etc.

El administrador de discos en RH puede mostrar en qué puerto SATA están conectados los discos duros. Es una interfaz de usuario gráfica encima dealgo, y esoalgoes lo que quiero.

¿Cómo puedo obtener esta información en la línea de comando? Me conecto a través de una conexión ssh y me gustaría saber a qué está conectado el disco de arranque. ¿Dónde se guarda esta información?

¡Gracias!

Respuesta1

Hacer coincidir los números de puerto con los dispositivos

Encontré esta pregunta porque estaba tratando de descubrir lo mismo. Esto es lo que descubrí; debería funcionar en bash o zsh:

for i in /dev/disk/by-path/*;do [[ ! "$i" =~ '-part[0-9]+$' ]] && echo "Port $(basename "$i"|grep -Po '(?<=ata-)[0-9]+'): $(readlink -f "$i")";done

La salida debería verse así:

Port 1: /dev/sda
Port 2: /dev/sdb
Port 3: /dev/sdc

Estos números de puertoDEBERÍAcorresponden con los números impresos en su placa base, aunque esto supone que el proveedor de su placa base fue lo suficientemente considerado al hacer coincidir los números impresos en la placa con los números de puerto en el chip del controlador SATA. Como mínimo, las rutas de los dispositivos permanecen estables, por lo que una vez que establezca una asignación entre los números de puerto enumerados y los números en el panel, nunca cambiará.

Este fragmento se repite sobre el /dev/disk/by-pathdirectorio. Omite los archivos que terminan en -part<number>ya que son solo particiones y extrae el número de puerto al -ata<number>final de los nombres de archivos restantes. Estos archivos son enlaces simbólicos a los /dev/sdXnodos tradicionales, que utiliza readlink -f.

Si tiene varios controladores SATA, obtendrá varios dispositivos enumerados para los mismos números de puerto, porque cada controlador tiene su propio puerto 1, puerto 2, etc. Por lo tanto, simplemente ejecútelo ls -l /dev/disk/by-pathy analícelo manualmente.

Averiguar qué dispositivo es su dispositivo de arranque

Para saber cuál es su dispositivo de arranque, ejecute mount | grep ' on / ' | cut -f 1 -d ' '. Esto muestra el dispositivo montado en /.

Respuesta2

La asignación adecuada de puertos SATA es la que ha mencionado "user371366".

Aunque recomiendo encarecidamente no confiar en el número de puerto SATA impreso en la PCB de la placa base.

Porque hay problemas o errores de hardware/software que los hacen poco confiables.

Habrá ocasiones en las que el puerto SATA n.º 1, etiquetado en la PCB de la placa base, se mostrará como SDB o SDx (donde x es cualquier letra que se muestra en el terminal de su PC o cualquier otra cosa) y no como SDA.

Esto me sucedió algunas veces, como al usar el software de respaldo "clonezilla", donde muestra el puerto SATA n.° 1 como SDB cuando debería ser SDA.

El mejor enfoque es anotar el número de serie del disco duro y utilizarlo como referencia del disco duro al que se dirige.

información relacionada