Tuve un script la semana pasada que esperaba que mi usb fuera sdc, estaba usando este comando
usb_path=`lsblk | grep sdc1 | awk '{print $7}'`
pero luego volví y vi que el dispositivo estaba vacío, porque el dispositivo se llamaba sdb. Entonces, ¿qué depende del nombre que reciba el palo? No tenía ningún otro disco conectado cuando obtuve sdc y ningún otro disco está conectado ahora que es sdb. Entonces la única diferencia que pude ver es el tiempo, pero eso parece una estupidez. Ah, y es la misma memoria USB que la semana pasada.
Respuesta1
La letra b
/ c
en sdb
/ sdc
es un contador.
El primer disco detectado recibe sda
, el segundo sdb
y así sucesivamente.
Es posible que se omitan letras si, por ejemplo, se pierde la conexión temporalmente mientras conecta su memoria USB. Al principio, la memoria USB se desconecta sdb
, luego la conexión se interrumpe y se restablece y se desconecta sdc
, porque sdb
aún no se ha liberado.
Como no se puede contar con que el mismo dispositivo reciba el mismo nombre cada vez, Ubuntu tiene un directorio con enlaces simbólicos a discos que están vinculados a una ID del sistema de archivos en el disco:
/dev/disk/by-uuid/
Cada partición de cada disco que conecta obtiene una entrada en este directorio y siempre permanece igual para la misma partición.
Si prefiere acceder a una memoria USB que está conectada a un puerto USB específico en lugar de utilizar la identidad de la memoria USB, puede utilizar las entradas en /dev/disk/by-path
.
lsblk
acepta un argumento si desea información sobre un dispositivo específico. Entonces, en lugar de usar, lsblk | grep …
puedes usar, por ejemplo lsblk /dev/disk/by-id/1234-5678
, olsblk /dev/disk/by-path/pci-0000:00:2.0-usb-0:1:1.0-scsi-0:0:0:0