Como posso modificar o comportamento padrão do Ubuntu 12.04 (& 12.10) para evitar que um link simbólico de / dev / shm para / run / shm seja criado na inicialização?

3

Ao instalar o Oracle 11gR2 Express Edition no Ubuntu 12.04, siga o Oracle 11gR2 Express Edition no Linux Ubuntu 11.10 e encontrou o problema de destino da memória Oracle com /dev/shm (conforme documentado na seção 7. desse guia), pois /dev/shm agora é implementado por padrão como um link simbólico nas notas de lançamento do Ubuntu 11.10 de /dev/shm para /run/shm . O link simbólico é incompatível com o que a Oracle espera e isso resulta em um erro do Oracle (ORA-00845: MEMORY_TARGET) na inicialização do banco de dados.

Seção 7) do 'Oracle 11gR2 Express Edition no Linux Ubuntu 11.10 howto' documenta um script de inicialização /etc/init.d/oracle-shm que serve para configurar /dev/shm para usar o /run/shm do Ubuntu, mas isso não parece ter o efeito desejado no Ubuntu 12.04 e /dev/shm não está montado como esperado - presumivelmente funcionou em 11.10. Embora isso já tenha sido observado e várias soluções propostas , resolvi contornar o problema de forma um pouco mais clara. de maneira diferente, adicionando uma entrada a /etc/fstab e modificando o script /etc/init.d/oracle-shm da seguinte forma:

  1. Adicionando uma entrada para o sistema de arquivos temporários de memória compartilhada a /etc/fstab , digamos (para um arquivo de 2 gigabytes)

    shm /dev/shm    tmpfs   size=2g 0   0
    
  2. Alterando a linha mount em /etc/init.d/oracle-shm de:

    rm -f /dev/shm  
    mkdir /dev/shm
    mount -B /run/shm /dev/shm
    

    para simplesmente

    rm -f /dev/shm
    mkdir /dev/shm 
    mount /dev/shm
    

Independentemente disso, todas as soluções propostas envolvem desfazer o comportamento padrão do Ubuntu na inicialização, primeiro removendo o link simbólico e, em seguida, implementando o comportamento desejado.

Eu gostaria de poder configurar o sistema de arquivos de memória compartilhada uma vez por todas por:

  1. Adicionando uma entrada para o sistema de arquivos temporários de memória compartilhada a /etc/fstab , digamos (para um arquivo de 2 gigabytes)

    shm /dev/shm    tmpfs   size=2g 0   0
    
  2. Remova o link simbólico existente para / dev / shm e crie como um diretório, como sudo.

    rm –f /dev/shm
    mkdir /dev/shm
    
  3. Montando o sistema de arquivos temporários de memória compartilhada

    mount /dev/shm
    

Isso tudo funciona bem até que você reinicialize, ponto em que o link simbólico de /dev/shm para /run/shm reaparece em vez de /dev/shm sendo montado como um sistema de arquivos temporários de memória compartilhada.

Aqui está a pergunta.

Como posso modificar o comportamento padrão do Ubuntu 12.04 (& amp; 12.10) para evitar que um link simbólico de /dev/shm to /run/shm seja criado em primeiro lugar na inicialização?

action = show & amp; redirect = OneiricOcelot / TechnicalOverview # Upgrades

    
por Paul Hudson 12.01.2013 / 17:28

1 resposta

5

Em /etc/init/mounted-dev.conf , remova a linha

 [ -e /dev/shm ] || ln -s /run/shm /dev/shm
    
por Florian Diesch 12.01.2013 / 17:39