Eu tenho um ponto de montagem - deixe estar /media/question
- e dois dispositivos possíveis: um HDD físico e uma pasta NFS remota. Às vezes eu conecto o dispositivo fisicamente, em outros casos eu monto via NFS.
Existe uma maneira de especificar ambos de fstab
forma que a execução mount /media/question
escolha preferencialmente o volume físico e quando não estiver disponível - NFS?
Responder1
Você precisa fazer um script Bash que verifique se o dispositivo físico existe, se existir, monte o dispositivo, caso contrário, monte o compartilhamento NFS.
Algo assim :
if [ -d /media/disk ] ; then {
mount /media/disk ...
}
else{ ...
você pode colocar este script em /etc/init.d para execução na inicialização ou pode adicionar ao cron para verificação a cada 5 minutos ou outro intervalo de tempo ...
Responder2
Você também pode consultar o udev se estiver instalado. Isto permite que ações ocorram quando um dispositivo é adicionado ou removido; como quando uma interface de rede é ativada. Para ver isso em ação, procure nos arquivos que cobrem o acesso à rede em /etc/udev/rules.d/ (chamados 77-network.rules na minha caixa SuSE). Você pode definir ações quando uma interface fica ativa/desativada:
/etc/udev/rules.d/77-network.rules
# SUBSYSTEM=="rede",
ENV{INTERFACE}=="ppp*|ippp*|isdn*|plip*|lo*|irda*|dummy*|ipsec*|tun*|tap*|bond*|br*|vlan*|modem*|dsl *",GOTO="skip_ifup"
SUBSYSTEM=="net", ACTION=="adicionar", RUN+="/sbin/ifup $env{INTERFACE} -o hotplug"
SUBSYSTEM=="net", ACTION=="remover", RUN+="/sbin/ifdown %k -o hotplug"
LABEL="skip_ifup"
(a linha “ENV(INTERF...” é usada para ignorar interfaces de rede não padrão, se correspondida, salta para a instrução LABEL correspondente. As linhas SUBSYTEM são acionadas quando a instrução ACTION corresponde - ou seja, uma interface é ADDed ou REMOVed ")
Portanto, se você alterar a AÇÃO “adicionar/remover” para chamar seu script, que chamaria ifup/ifdown, execute o que mais quiser depois disso. .por exemplo, chame “ifup $@” e verifique o IP da interface e monte as entradas correspondentes. Se as montagens foram listadas no fstab com a opção “noauto”, então você só precisa de uma simples convenção de nomenclatura para localizar a entrada e emitir uma montagem.
De maneira semelhante, o script /etc/udev/rules.d/56-idedma.rules cobre IDE (ou unidades sata) e seria executado quando as unidades fossem detectadas. Este script permitiria que montagens locais fossem iniciadas com base na presença, usando um script RUN alternativo.
A nomenclatura e a ordem das regras são semelhantes às usadas no sistema init. Dê uma olhada nos arquivos de ajuda e regras para obter mais exemplos e opções.