Eu escrevi algumas informações sobre como usar o udev como montador automático em um resposta anterior ; ele (ou os recursos aos quais ele se vincula) pode lançar alguma luz para você.
Não está claro para mim qual é exatamente a sua pergunta
-
Em relação a adicionar & remover regras: você pode consolidá-las se eliminar a correspondência ACTION , mas isso pode fazer com que a regra seja acionada com muita frequência. Acho melhor combinar explicitamente cada regra. Ou melhor ainda (por razões discutidas na seção desmontar abaixo), elimine completamente a regra "remover" .
-
Com relação às ações RUN nas regras do uDev: a ação RUN na sua regra do uDev precisa ser concluída . Dê uma olhada no exemplo ao qual me vinculei; você verá que existem dois scripts - o uDev chama um, o que faz o outro rodar para fazer a montagem real, permitindo que o primeiro retorne o controle de processamento de volta ao uDev em tempo hábil. Se você já está fazendo isso, ótimo; caso contrário, considere ajustar seus scripts de maneira semelhante.
-
Em relação a desmontagens: eu tive muitos problemas ao desmontar automaticamente a remoção de dispositivos, e finalmente decidi não usar "remover" regra em tudo. Em vez disso, escrevi um script unmounter separado que substituiu a regra "remover" .
Isso é porque você deve realmente dar ao sistema o tempo necessário para fechar o dispositivo antes de removê-lo fisicamente. Uma coisa é arrancar uma unidade se você montou o sistema de arquivos somente leitura, mas um sistema de arquivos de leitura e gravação completo deve ser desmontado sempre que possível. (Isso é o que a opção "Remover a unidade com segurança" no Windows faz - é um mecanismo para desmontar a unidade antes que o dispositivo seja fisicamente removido do sistema).
Com um sistema de arquivos regular, eu consegui algumas desmontagens funcionando "apropriadamente" usando a opçãosync
no tempo de montagem eumount -l
(desmontagens lentas) ao desmontar. As desordens preguiçosas dizem ao kernel para desanexar o sistema de arquivos imediatamente, mas limpando as referências ao sistema de arquivos mais tarde, quando elas não estiverem mais ocupadas. Esse tipo de trabalho funciona, mas não é tão seguro para os dados fazer uma desmontagem completa antes de remover o dispositivo.
Você pode ter dificuldade em fazer com que as desmontagens ociosas funcionem com um sistema de arquivos criptografado, pelas mesmas razões. O mapeador de dispositivos adiciona mais uma camada de complexidade sobre os problemas padrão do sistema de arquivos. Parece-me que isso tornaria um sistema de arquivos criptografado ainda mais sensível a desmontagens impuras. (Eu não sou muito experiente com FSs criptografados, então eles podem ser capazes de tolerar isso.)
Espero que isso lhe dê algumas dicas. Francamente, para fins de montagem automática, o uDev é viável, mas não ideal. O HalEvt daemon ou o mais novo DeviceKit provavelmente seria mais apropriado.