regra do udev com links simbólicos não funciona na inicialização do sistema operacional

1

Eu tenho uma regra de udev que monta um determinado dispositivo USB em um ponto de montagem personalizado em /media . Confirmo o funcionamento e ele fica no espaço do meu usuário (digamos /home/myuser/a.rules ). E criei um link simbólico de digamos /etc/udev/rules.d/52-link-a.rules para ele. Agora, o sistema operacional inicia, então, parece falhar a montagem nesse ponto em particular e, em vez disso, é montado em algo genérico /media/myuser/CMSTICKM e vejo o nautilus aparecer com a pasta na porta USB aberta.

Consegui corrigir isso parando o link simbólico e, em vez disso, copiei a regra do udev no mesmo /etc/udev/rules.d/ . Eu só posso supor, mas quando o Ubuntu inicializa, a ligação simbólica ocorre antes de systemd-udevd iniciar, assim a regra do udev customizada vinculada não é lida, então a montagem falha, mas não inteiramente certa. Alguém poderia explicar por quê?

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.5 LTS
    
por IsaacS 31.01.2018 / 01:38

1 resposta

2

Acabei de encontrar esse problema também. Eu suspeito que o udev carrega tão cedo no processo de inicialização que apenas a partição raiz está disponível, antes de /home ter sido montado. Então, quando o udev carrega, seus links simbólicos aparecem quebrados, pois os arquivos de destino ainda não existem.

Eu acho que uma solução é recarregar a configuração do udev após a partição ter sido montada, mas isso não aplicará nenhuma nova regra ao hardware que já foi detectado.

A melhor solução (se você precisa das regras para aplicar ao hardware presente durante a inicialização) é provavelmente descobrir outra maneira de aplicar as regras, como usar o rsync para copiá-las em /etc/udev/rules.d/ e esquecer os links simbólicos.

    
por 26.05.2018 / 13:11

Tags