Tengo una llave USB que se usará para guardar datos diariamente a través de un script bash. Logré montarlo para que un usuario específico pueda escribir carpetas en él usando el comando:
mount /dev/sdc1 /media/usb -o rw,uid=sysop,gid=sysop
El script puede ejecutarse y crear directorios como quiera y es perfecto. En algún momento, la llave USB se desconectará y se reemplazará por una nueva (mismo modelo). ¿La nueva memoria USB seguirá teniendo el nombre /dev/sdc1
o será diferente?
Si es diferente, ¿cómo puedo incluir la parte de montaje en mi script para que se realice automáticamente?
Respuestas:
Si bien acceder a él
/dev/sdXy
es arriesgado, se puede realizar una identificación más precisaUUID
.Como menciona (en algún momento) cambiar el dispositivo USB, para mantener la compatibilidad, es posible que desee identificar su dispositivo USB con una etiqueta. Para ello, se puede:
/dev/disk/by-label/YourLabelHere
.Tenga en cuenta que debe establecer la etiqueta en un nuevo dispositivo USB antes de ejecutar el script, y además,
/dev/disk/by-label
solo está disponible si (al menos) está conectado un dispositivo USB (de lo contrario, se eliminará).Los detalles sobre cómo configurar la etiqueta usb se pueden encontrar aquí: /ubuntu/194510/how-to-edit-label-of-usb-drive
fuente
/dev/disk/by-id/
pueden ser útiles (es lo que uso para mis sistemas de archivos).Así es como abordo este problema, pero en general, como te dijo Sato Katsura, debes escribir una regla de udev.
udevadm info --query all /dev/sdc
(o lo que sea).Configure una regla de udev, aquí hay un ejemplo para mi billetera. Los campos
ID_SERIAL_SHORT
yID_FS_UUID
yo leímos la información en el paso 2:Configuré PROPIETARIO aquí, para poder montarlo con mi cuenta de usuario principal. También con mi billetera no tengo particiones, pero monte los discos simples. Si tiene particiones, cambie:
para la partición número 1, en las líneas de reglas de udev.
Las reglas de udev se encuentran en
/etc/udev/rules.d
, si tiene un sistema sano.Ahora usted puede
para recargar las reglas y
para monitorear lo que sucede durante el paso 5.
Conecte y conecte su dispositivo usb (por supuesto, después de desmontarlo antes si lo montó). El monitor debe informarle sobre el nuevo dispositivo cuando se inicializa.
Compruebe si
/dev/
contiene los enlaces simbólicos correctos. En mi ejemplo, obtuve esto:Ahora puede definir reglas persistentes con los enlaces simbólicos
/dev/pocketbook
y/dev/pocketbook-sd
, o cualesquiera que sean sus nombres, en el campo SYMLINK del archivo de reglas udev.fuente
Solo para agregar a la respuesta de @ alextartan.
Hice rodar mi propio sistema de respaldo que usa unidades USB para objetivos. Necesito estar seguro de qué va a dónde. Como los UUID no son particularmente fáciles de usar, confío en las etiquetas de disco.
Los UUID también son un poco problemáticos porque cada vez que reformatea una partición, obtiene un nuevo UUID único, por lo que cualquier script que use ese UUID debe modificarse. Puedo asignar la misma etiqueta que antes a la partición reformateada (o incluso a una partición en una unidad nueva / de reemplazo) y dejar mis scripts solos.
Se me ocurrió mi propia convención de etiquetado única (amigable para los humanos) y uso gparted para etiquetar las diversas particiones cuando las creo.
Cuando mis scripts necesitan acceder a una partición en particular, busco el nombre del dispositivo usando la etiqueta.
fuente