Dispositivos de armazenamento externos não listados enquanto o script de inicialização está em execução

1

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?

    
por John Allard 05.10.2016 / 01:08

1 resposta

1

Eu não descobri exatamente o que deu errado, mas encontrei uma maneira muito mais fácil de realizar a mesma coisa. Basta adicionar esta linha a /etc/fstab

/dev/sda1 /mnt/usbstorage auto defaults,user,rw,uid=pi,gid=pi 0 0

A palavra-chave auto detectará automaticamente a formatação do dispositivo, que é o que meu último script estava fazendo. Definir o uid e gid explicitamente faz com que ele funcione também com unidades formatadas em FAT.

    
por 05.10.2016 / 01:54