Eu tenho um script /etc/init.d que supostamente detecta uma unidade externa montada em / dev / sda1, se estiver lá, monta-a. Isso funciona bem no meu dispositivo odroid com as seguintes especificações:
pi@odroid64:~$ uname -a
Linux odroid64 3.14.65-73 #1 SMP PREEMPT Tue Aug 2 08:21:02 BRT 2016 aarch64 aarch64 aarch64 GNU/Linux
Mas quando eu executo o mesmo script no meu pi de framboesa com estas especificações:
pi@box:~ $ uname -a
Linux box 4.4.13-v7+ #894 SMP Mon Jun 13 13:13:27 BST 2016 armv7l GNU/Linux
Não é possível terminar. Ao emitir lsblk
no meu script ao detectar uma falha, posso ver que o dispositivo ainda precisa aparecer em /dev/sda
no momento em que o script está sendo executado. Aqui está a saída de lsblk
quando o script é executado
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
mmcblk0 179:0 0 7.4G 0 disk
├─mmcblk0p1 179:1 0 63M 0 part /boot
└─mmcblk0p2 179:2 0 7.3G 0 part /
E aqui está a saída de lsblk
no momento em que faço o login
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 111.8G 0 disk
└─sda1 8:1 0 111.8G 0 part
mmcblk0 179:0 0 7.4G 0 disk
├─mmcblk0p1 179:1 0 63M 0 part /boot
└─mmcblk0p2 179:2 0 7.3G 0 part /
Então, se eu fizer login, eu corro
sudo /etc/init.d/usbstorage restart
Monta a unidade como esperado e lsblk
outputs
pi@camio-box:~ $ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 111.8G 0 disk
└─sda1 8:1 0 111.8G 0 part /mnt/usbstorage
mmcblk0 179:0 0 7.4G 0 disk
├─mmcblk0p1 179:1 0 63M 0 part /boot
└─mmcblk0p2 179:2 0 7.3G 0 part /
E monta a unidade conforme o esperado.
Então, eu acho que tenho os cabeçalhos incorretos no meu init-script, como se eu não estivesse esperando o sistema detectar unidades externas antes do script ser executado. Aqui está o cabeçalho do meu script.
#! /bin/bash
### BEGIN INIT INFO
# Provides: usbstorage
# Required-Start: $local_fs $remote_fs $network $named $portmap
# Required-Stop:
# Default-Start: S
# Default-Stop: 0 6
# Short-Description: Mounts an external drive to /mnt/usbstorage for the cam process
### END INIT INFO
O que estou fazendo de errado?