Desabilitando o modo de recuperação do grub programaticamente

1

Eu preciso ser capaz de atualizar a configuração do grub para remover a opção de inicialização do modo de recuperação, programaticamente. Recebi as informações iniciais de como fazer isso (manualmente) desta pergunta / resposta:

Como desabilitar o modo de recuperação / modo de usuário único?

Então eu escrevi um script simples, que é empacotado com um arquivo grub de substituição. O script simples faz:

# Move the new grub file contents into place
cat /path/to/replacement/grub > /etc/default/grub
# Update grub with the new settings
update-grub

Neste script, o "/ caminho / para / substituição / grub" tem estes conteúdos: link , e substitui o padrão arquivo link que está no sistema. O sistema é o Ubuntu 12.04, e o script acima é executado como sudo.

O problema é que na maior parte do tempo ele funciona, mas a maior parte do tempo nerf completamente o grub, e quando o sistema é reinicializado, ele cai na linha de comando do grub, ao invés de inicializar normalmente. A partir da linha de comando do grub, posso carregar o kernel, o boot linux e, quando estiver na linha de comando do bash, posso executar:

sudo update-grub

Em seguida, reinicie e tudo está bem. Mas alguém pode me dizer por que às vezes não funciona apenas como parte do roteiro?

Notas:

  1. O objetivo é simplesmente remover a opção de inicialização do modo de recuperação do menu grub, sem nenhuma intervenção do usuário além de executar o script - as razões para isso são complexas, mas é assim:)

  2. A única diferença entre os 2 arquivos grub deve ser o descomentamento da linha 'GRUB_DISABLE_RECOVERY="true"'

  3. Eu insiro o conteúdo no arquivo correto (em vez de copiar ou mv'ing) porque eu percebi que era a maneira mais fácil de garantir que o arquivo Permanentes não foram confundidos.

  4. O processo geralmente funciona e a reinicialização do sistema remove a opção do menu grub no modo de recuperação (conforme desejado). Mas apenas às vezes ... não funciona

por David Downes 28.04.2014 / 12:40

1 resposta

0

sed -i "s,#GRUB_DISABLE_RECOVERY,GRUB_DISABLE_RECOVERY,g" /etc/default/grub
    
por Adrien Horgnies 28.04.2014 / 13:01