Como posso especificar a ordem na qual os sistemas de arquivos são montados automaticamente?

11

Eu preciso que uma linha específica em /etc/fstab seja montada sempre depois de duas outras linhas:

# Always mount these first
UUID=fdf38dd4-9e9d-479d-b830-2a6989958503 / ext4 noatime,discard,errors=remount-ro 0 1
UUID=2b548eb8-fa67-46ce-a998-91d587dba62f /home/.hdd ext4 errors=remount-ro 0 2

# Always mount this second
none /home/ak aufs br:/home/.ssd/ak=rw:/home/.hdd/ak=rw 0 0

O comportamento atual é freqüentemente inverter a ordem das duas últimas linhas de maneira imprevisível. Como posso especificar o pedido necessário?

    
por ændrük 05.05.2011 / 03:10

4 respostas

14

Uma opção é adiar a montagem até que /etc/fstab seja concluído, isso dá a você controle total sobre a ordem de montagem.

Basta adicionar noauto às opções de montagem no fstab e montar em rc.local .

De acordo com a página de manual , mount -a monta as entradas em fstab sequencialmente, adicionando as A opção -F ('fork') irá montá-los em paralelo. Parece que a inicialização padrão está usando 'fork', presumivelmente para reduzir o tempo de inicialização, então acho que montar (semi-) manualmente depois é a maneira mais simples de recuperar o controle da ordem de montagem.

    
por j-g-faustus 16.06.2011 / 01:40
4

Eu poderia considerar a configuração de um script que monta o segundo disco depois que o script de montagem é chamado. No Ubuntu, o initd é o serviço que inicia todos os componentes do seu sistema operacional, e é chamado de upstart .

É baseado em eventos, ou seja, parece / aguarda e emite eventos durante o processo de inicialização. Como este post apontou fora do serviço initd tente fazer coisas em paralelo, que é provavelmente o que está causando seus problemas. Assim, você pode definir seu script para ser executado logo após a conclusão da montagem e conclusão dos processos.

Os scripts de montagem são mantidos no diretório / etc / init /. Eu adicionaria seu script de montagem adicional também. Veja esta descrição do processo de inicialização. Esse site provavelmente ajudará você a ficar com o seu próprio script mais rápido.

Você precisa ter uma seção start no seu próprio script. Veja esta seção para iniciar um trabalho depois que um outro terminar.

Eu ainda estou olhando como criar meus próprios scripts de inicialização, então eu não posso ser mais útil. Se você encontrar uma solução de trabalho, poste-a aqui.

    
por nelaaro 10.06.2011 / 09:18
4

O Ubuntu usa mountall no momento da inicialização, não mount -a . Mountall espera que os dispositivos subjacentes apareçam e então monta o fs neles imediatamente, a menos que o fs em que está sendo montado ainda não tenha sido montado, então ele espera por esse fs.

Você deve conseguir a ordem desejada definindo os pontos de montagem dos 3 sistemas de arquivos para que eles sejam empilhados um sob o outro. Em vez de montar todos os três em /home/.alguma coisa, coloque o primeiro em /home/.xe o segundo em /home/.x/.y e o terceiro em /home/.x/.y/ .z.

    
por psusi 16.06.2011 / 04:18
1

De acordo com man fstab , a opção showthrough pode ser o que você está procurando. Tente configurá-lo em / home / ak e ver se funciona.

É possível que mount forks ao montar sistemas de arquivos durante a inicialização; se assim for, a ordem em que suas partições são montadas seria indefinida.

    
por Scott Severance 05.05.2011 / 15:10

Tags