
Estoy ejecutando Raspbian 7.4 en una Raspberry PI que tiene dos dispositivos de almacenamiento USB conectados. Esta Raspberry PI seguirá funcionando durante un corte de energía porque tiene un cable de consola conectado que proporciona una fuente de energía continua.
Mi problema es que cuando mi casa experimenta un corte de energía, la Raspberry PI ve que el dispositivo de almacenamiento USB desaparece. " USB disconnect
" aparece el mensaje; sin embargo, cuando se restablece la energía y los dispositivos USB se vuelven a conectar, se les asignan nuevos nombres de dispositivo.
El problema es que mount
muestra las unidades con sus nombres de dispositivos anteriores que ya no existen. En este punto, cualquier intento de acceder a las unidades utilizando sus nombres de puntos de montaje falla con un error de E/S. Tengo que umount
volver a montar manualmente las unidades.
Utilizo el UUID de las unidades /etc/fstab
para evitar problemas con los nombres de los dispositivos y para mantener la coherencia sobre cómo se montan las unidades en los puntos de montaje.
¿Debería usar udev
reglas para crear un alias SYMLINK para cada unidad usando el número de serie único de la unidad y cambiar /etc/fstab
para usar estos alias de unidad en lugar de UUID para el montaje?
El siguiente syslog muestra las unidades que salen y luego regresan como sdc
y sdd
. Lo eran sda
y sdb
antes del corte de energía.
Por supuesto, podría simplemente colocar las unidades USB en un UPS pequeño, lo cual probablemente haré de todos modos, pero me gustaría saber cuál es la mejor manera de manejar este tipo de problema, es decir, tener nombres consistentes para los dispositivos de disco USB.
Dec 31 06:45:46 raspberrypi kernel: [8332934.611538] smsc95xx 1-1.1:1.0 eth0: link down
Dec 31 06:45:47 raspberrypi ifplugd(eth0)[27446]: Link beat lost.
Dec 31 06:45:48 raspberrypi kernel: [8332935.871532] usb 1-1.2.3: USB disconnect, device number 47
Dec 31 06:45:48 raspberrypi kernel: [8332936.048631] usb 1-1.2.4: USB disconnect, device number 48
Dec 31 06:45:57 raspberrypi ifplugd(eth0)[27446]: Executing '/etc/ifplugd/ifplugd.action eth0 down'.
Dec 31 06:45:57 raspberrypi ifplugd(eth0)[27446]: client: /sbin/ifdown: interface eth0 not configured
Dec 31 06:45:57 raspberrypi ifplugd(eth0)[27446]: Program executed successfully.
Dec 31 06:46:22 raspberrypi kernel: [8332970.159145] usb 1-1.2.3: new high-speed USB device number 52 using dwc_otg
Dec 31 06:46:22 raspberrypi kernel: [8332970.176208] smsc95xx 1-1.1:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
Dec 31 06:46:22 raspberrypi kernel: [8332970.261060] usb 1-1.2.3: New USB device found, idVendor=0480, idProduct=d010
Dec 31 06:46:22 raspberrypi kernel: [8332970.261096] usb 1-1.2.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Dec 31 06:46:22 raspberrypi kernel: [8332970.261111] usb 1-1.2.3: Product: External USB 3.0
Dec 31 06:46:22 raspberrypi kernel: [8332970.261128] usb 1-1.2.3: Manufacturer: TOSHIBA
Dec 31 06:46:22 raspberrypi kernel: [8332970.261142] usb 1-1.2.3: SerialNumber: 20131223xxxxxx
Dec 31 06:46:22 raspberrypi kernel: [8332970.267325] usb-storage 1-1.2.3:1.0: USB Mass Storage device detected
Dec 31 06:46:22 raspberrypi kernel: [8332970.268372] scsi16 : usb-storage 1-1.2.3:1.0
Dec 31 06:46:22 raspberrypi kernel: [8332970.509204] usb 1-1.2.4: new high-speed USB device number 53 using dwc_otg
Dec 31 06:46:22 raspberrypi kernel: [8332970.611100] usb 1-1.2.4: New USB device found, idVendor=0480, idProduct=d010
Dec 31 06:46:22 raspberrypi kernel: [8332970.611136] usb 1-1.2.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Dec 31 06:46:22 raspberrypi kernel: [8332970.611154] usb 1-1.2.4: Product: External USB 3.0
Dec 31 06:46:22 raspberrypi kernel: [8332970.611171] usb 1-1.2.4: Manufacturer: TOSHIBA
Dec 31 06:46:22 raspberrypi kernel: [8332970.611186] usb 1-1.2.4: SerialNumber: 20131223xxxxxx
Dec 31 06:46:22 raspberrypi kernel: [8332970.612810] usb-storage 1-1.2.4:1.0: USB Mass Storage device detected
Dec 31 06:46:22 raspberrypi kernel: [8332970.616236] scsi17 : usb-storage 1-1.2.4:1.0
Dec 31 06:46:23 raspberrypi ifplugd(eth0)[27446]: Link beat detected.
Dec 31 06:46:31 raspberrypi kernel: [8332979.800679] scsi 17:0:0:0: Direct-Access TOSHIBA External USB 3.0 0201 PQ: 0 ANSI: 6
Dec 31 06:46:31 raspberrypi kernel: [8332979.803181] sd 17:0:0:0: Attached scsi generic sg0 type 0
Dec 31 06:46:31 raspberrypi kernel: [8332979.804978] sd 17:0:0:0: [sdc] Very big device. Trying to use READ CAPACITY(16).
Dec 31 06:46:32 raspberrypi kernel: [8332979.828186] sd 17:0:0:0: [sdc] 732566645 4096-byte logical blocks: (3.00 TB/2.72 TiB)
Dec 31 06:46:32 raspberrypi kernel: [8332979.828999] sd 17:0:0:0: [sdc] Write Protect is off
Dec 31 06:46:32 raspberrypi kernel: [8332979.829037] sd 17:0:0:0: [sdc] Mode Sense: 2b 00 00 00
Dec 31 06:46:32 raspberrypi kernel: [8332979.831227] sd 17:0:0:0: [sdc] Write cache: disabled, read cache: enabled, doesn't sup
port DPO or FUA
Dec 31 06:46:32 raspberrypi kernel: [8332979.834218] sd 17:0:0:0: [sdc] 732566645 4096-byte logical blocks: (3.00 TB/2.72 TiB)
Dec 31 06:46:32 raspberrypi kernel: [8332979.865016] sdc: sdc1
Dec 31 06:46:32 raspberrypi kernel: [8332979.871007] sd 17:0:0:0: [sdc] 732566645 4096-byte logical blocks: (3.00 TB/2.72 TiB)
Dec 31 06:46:32 raspberrypi kernel: [8332979.872197] sd 17:0:0:0: [sdc] Attached SCSI disk
Dec 31 06:46:32 raspberrypi kernel: [8332980.064257] scsi 16:0:0:0: Direct-Access TOSHIBA External USB 3.0 0201 PQ: 0 ANSI: 6
Dec 31 06:46:32 raspberrypi kernel: [8332980.065680] sd 16:0:0:0: Attached scsi generic sg1 type 0
Dec 31 06:46:32 raspberrypi kernel: [8332980.067627] sd 16:0:0:0: [sdd] Very big device. Trying to use READ CAPACITY(16).
Dec 31 06:46:32 raspberrypi kernel: [8332980.092080] sd 16:0:0:0: [sdd] 732566645 4096-byte logical blocks: (3.00 TB/2.72 TiB)
Dec 31 06:46:32 raspberrypi kernel: [8332980.092708] sd 16:0:0:0: [sdd] Write Protect is off
Respuesta1
Su problema se resolvería si tanto el Pi como el dispositivo de almacenamiento con alimentación estuvieran en un UPS.
Este es un problema común con /media. Tomará el nombre asignado y comenzará a agregar dígitos si no ha borrado su caché (generalmente requiere un reinicio) antes de desconectar y volver a conectar (o apagar y volver a encender el dispositivo de almacenamiento).
Por el contrario, una cosa siempre permanece constante: la conexión USB al (primer) Arduino Nano siempre se llama /dev/ttyUSB0 y la (primera) conexión USB a un Arduino Uno es /dev/ttyACM0. Simplemente desaparecen cuando se desconecta. luego regresa inmediatamente cuando lo vuelves a enchufar.
La única forma de confundirlos es si tienes más de uno del mismo tipo (Nano o Uno) y los vuelves a conectar en un orden diferente al que se hizo inicialmente.
Esto solo importa en el IDE de Arduino en Rpi porque si tiene más de uno del mismo tipo, no hay forma de distinguirlos aparte de saber el orden en el que usó para enchufarlos.
Si lo olvida, cierre el IDE, desconéctelo y luego use
ls /dev/tty*
repetidamente para observar qué cambia a medida que los vuelve a enchufar.
Luego puedes reiniciar el IDE y aparecerán como puertos disponibles.