O local correto para fazer isso parece ser um dos seguintes:
-
/etc/init.d/checkroot-bootclean.sh
: executado quando a partição raiz ( /
) é montada, mas antes de outras partições se tornarem disponíveis. Este é provavelmente o local mais apropriado para o caso descrito, uma vez que os alvos dos links simbólicos de outros sistemas de arquivos estão no local antes de serem montados - e especialmente, por exemplo. um /var/log
terceirizado estaria lá quando o sistema começar a gravar logs
-
/etc/init.d/mountall-bootclean.sh
: executado quando todos os sistemas de arquivos locais são montados. É onde, por exemplo /tmp
será limpo - mas aqui não tenho certeza se os registros já precisam estar acessíveis.
Idealmente, nosso roteiro seria colocado "entre os dois". E dependendo do sistema, pode haver outros lugares.
No Debian (e derivadas, como no meu caso) há /etc/init/mountall.conf
onde o material de montagem está configurado:
# This helper mounts filesystems in the correct order as the devices
# and mountpoints become available.
Este chama mountall
para cuidar da "ordem correta", então alguns detalhes podem ser encontrados em man mountall
- mas infelizmente nem isso nem /usr/share/doc/mountall/*
dá detalhes sobre como se conectar. Emitindo um find
para mountall
mostrou mais alguns arquivos para mim, mas nada me deu mais pistas - então, a menos que eu aprenda outra coisa, os dois locais acima seriam os "ganchos atuais".
Antes de perguntar: Não, colocar um "script de inicialização" em /etc/rc.X
(ou o equivalente com o que for usado em vez do SYS-V) não funcionaria - já que a montagem é feita pelo kernel antes do início do processo init , e essas montagens precisam estar lá antes que o sistema comece a escrever, por exemplo registra no disco.