udev: como esperar que um dispositivo específico apareça em um shell script

1

Eu tenho um sistema embarcado com um minúsculo initramfs que precisa montar um overlayfs sobre a partição rootfs e switch_root para o novo sistema de arquivos mesclado.

São apenas algumas operações executadas a partir do script de inicialização, portanto, não quero extrair toda a infraestrutura do systemd, mas quero garantir que todos os dispositivos de bloco relevantes já estejam presentes no sistema ou aguardem a exibição deles. Eu adicionei o componente systemd-udevd ao meu initramfs (considerando mesmo a mudança para o eudev se eu conseguir obter os mesmos resultados).

Não consegui encontrar nenhum exemplo ou descobrir como usar o udevadm para bloquear e esperar até que um dispositivo específico seja exibido. Parece-me que alguma combinação do udevadm desencadear e resolver deve fazê-lo, mas nenhuma combinação pareceu funcionar no meu caso.

Eu posso codificá-lo facilmente usando o libudev em C ou pyudev em Python, mas acho que deve haver uma maneira de conseguir isso usando ferramentas existentes.

Eu preferiria evitar uma espera ocupada com a verificação manual se o arquivo já existir.

    
por Bartosz Golaszewski 14.09.2018 / 14:04

0 respostas