Depois de muita pesquisa, eu poderia corrigir o meu problema com o usbmount:
Adicionando NTFS ao usbmount
- Instale a montagem usb com
sudo apt-get install usbmount
.
Instale o pacote de driver NTFS ntfs-3g com sudo apt-get install ntfs-3g
.
Configure usbmount para montar sistemas de arquivos especificados, abrindo o arquivo usbmount com sudo nano /etc/usbmount/usbmount.conf
.
Aqui há uma linha chamada FILESYSTEMS=""
. Somente os sistemas de arquivos especificados nesta linha são montados via usbmount, portanto, alteramos para:FILESYSTEMS="vfat ntfs fuseblk ext2 ext3 ext4 hfsplus"
Se você deseja que o usbmount monte sistemas de arquivos NTFS, adicione
ntfs e fuseblk à linha. Às vezes, os dispositivos NTFS são listados como fusblk pelo pacote ntfs-3g; portanto, esses dois são iguais. Eu realmente não sei porque.
Além disso, se você não adicionar fuseblk na configuração, os Dispositivos NTFS desconectados não serão desmontados automaticamente. Eles permanecerão montados e manterão a pasta na qual estão montados até que o dispositivo seja manualmente desmontado unmount /dev/sda1
-> onde sda1 poderia ser outra variável .
A próxima linha importante é FS_MOUNTOPTIONS=""
. Aqui você especifica quais sistemas de arquivos devem ser montados e como eles devem ser montados.
Nós mudamos para: FS_MOUNTOPTIONS="-fstype=ntfs-3g,nls=utf8,umask=007,gid=46
-fstype=fuseblk,nls=utf8,umask=007,gid=46 -fstype=vfat,gid=1000,uid=1000,umask=007"
Com isso, os sistemas de arquivos vfat (fat32) ntfs-3g (NTFS) e
fuseblk (NTFS novamente) são montados. Eu acho que a maioria dos parâmetros pode permanecer a mesma. Novamente aqui, basta adicionar ntfs-3g ( adicionar ntfs-3g e não ntfs ) e fuseblk para poder montar todos os arquivos NTFS. Para mais sistemas de arquivos, adicione mais linhas começando com -fstype=
.
Mantenha o NTFS montado até que o dispositivo esteja desconectado
Aqui está uma solução para o problema, quando a unidade NTFS montada estiver acessível apenas por alguns segundos. Essa correção vem de Christian Weinberger .
- Crie o arquivo usbmount.rules em /etc/udev/rules.d/ com
sudo nano /etc/udev/rules.d/usbmount.rules
.
Este é o conteúdo:
KERNEL=="sd*", DRIVERS=="sbp2", ACTION=="add", PROGRAM="/bin/systemd-escape -p [email protected] $env{DEVNAME}", ENV{SYSTEMD_WANTS}+="%c"
KERNEL=="sd*", SUBSYSTEMS=="usb", ACTION=="add", PROGRAM="/bin/systemd-escape -p [email protected] $env{DEVNAME}", ENV{SYSTEMD_WANTS}+="%c"
KERNEL=="ub*", SUBSYSTEMS=="usb", ACTION=="add", PROGRAM="/bin/systemd-escape -p [email protected] $env{DEVNAME}", ENV{SYSTEMD_WANTS}+="%c"
KERNEL=="sd*", ACTION=="remove", RUN+="/usr/share/usbmount/usbmount remove"
KERNEL=="ub*", ACTION=="remove", RUN+="/usr/share/usbmount/usbmount remove"
- Crie o arquivo usbmount @ .service em / etc / systemd / system / com
sudo nano /etc/systemd/system/[email protected]
.
Este é o conteúdo:
[Unit]
BindTo=%i.device
After=%i.device
[Service]
Type=oneshot
TimeoutStartSec=0
Environment=DEVNAME=%I
ExecStart=/usr/share/usbmount/usbmount add
RemainAfterExit=yes
Agora reinicie e verifique cat /etc/mtab
em qual pasta os dispositivos USB estão montados. Por padrão, eles são montados em / media / usbstick0 .
Fonte:
Christian Fix
Por que fusblk?
A resposta do Untermoser está correta, mas quebrará algumas das funcionalidades da montagem por usb.
Como ele está usando unidades Systemd para gerar processos para montar (para habilitar o NTFS), a variável de ambiente
$DEVPATH
não é mais enviada aousbmount add
comando, resultando na falha na criação do link simbólico.Para corrigir isso, execute o seguinte:
O comando acima recria
$DEVPATH
se não estiver disponível.Há também outro bug no usbmount, com relação a
usbmount remove
. Ele faz um loop sobre os pontos de montagem e o que é definido em usmount config é desmontado. No entanto, se uma correspondência for encontrada, mas não estiver nessa lista, remova as quebras e não faça nada. Isso é particularmente crucial se você criar vários pontos de montagem para um USB, porque o usbmount vê o primeiro e não faz nada.Para corrigir, é necessária a seguinte alteração:
Isso moverá a interrupção dentro do loop interno (onde o sucesso é garantido e ocorrerá 2 etapas).
fonte
Para aqueles que estão tentando fazer o mesmo com o Stretch (Lite) mais recente e descobrem que as respostas da Untermoser e da AlbiusX não desmontam unidades vfat, você precisará seguir estas etapas extras, além das respostas fornecidas. :
Execute o seguinte comando no terminal:
sudo mkdir -p /etc/systemd/system/systemd-udevd.service.d/
Isso criará as pastas necessárias necessárias. Em seguida, crie um arquivo conf aqui, por exemplo:
sudo nano /etc/systemd/system/systemd-udevd.service.d/shared-mount-ns.conf
Dentro deste arquivo, adicione as seguintes linhas:
[Service] MountFlags=shared
Isso mudará o comportamento padrão do systemd-udevd dos espaços de nomes privados do sistema de arquivos para usar os compartilhados, o que é equivalente ao comportamento do udev em jessie.
(Fornecido em /unix/330094/udev-rule-to-mount-disk-does-not-work/330156#330156 )
fonte
Linux raspberrypi 4.14.79-v7+
no Pi, para referência