Grub não listando o novo kernel durante a inicialização

0

Atualizei recentemente meu kernel no CentOS 6.7. Isso também limpou todas as versões mais antigas, que também atualizaram meu /boot/grub/grub.conf, ele tem uma única entrada (do novo kernel). Agora, quando eu reiniciei, a inicialização falha com um erro "arquivo não encontrado", a razão é que ele ainda está tentando inicializar com o kernel antigo, que não está mais lá em / boot. Quando eu vou para a lista de páginas de kernels, ele lista apenas o kernel antigo (que não está mais lá), nenhum sinal do novo kernel nesta lista. Finalmente, eu tive que inicializar usando a linha de comando do grub, funcionou bem. Eu verifiquei o /etc/grub.conf, é um link sym para /boot/grub/grub.conf. Há também mais um grub.conf em / boot / efi / EFI / redhat /, mas isso também é idêntico ao /boot/grub/grub.conf. Eu procurei pela string da versão do kernel para verificar se ela ainda é referida em algum lugar, não é. Então eu descobri que isso estava além de mim, algo ainda não é bom. Por favor, me aconselhe.

Atualizar Isso pode ter algo a ver com a atualização mais recente do BIOS, onde a inicialização do uefi está ativada agora. Quando seleciono manualmente a unidade de inicialização, vejo duas opções, uma começando com UEFI aaaaaa OS Bootloader e outra que começa com SATA aaaaaaaa Boot Drive. Quando seleciono a unidade de inicialização, ela está inicializando com o kernel mais recente. Devo modificar alguma coisa após a atualização do BIOS?

    
por Mahesh H Viraktamath 30.03.2016 / 13:17

2 respostas

0

Você pode inicializar através da linha de comando do grub? Basta editar o grub.conf para coincidir com as correções que você fez para o seu one-time-boot, fazer um backup e veja abaixo sobre o grub-mkconfig.

---- eu re-li e encontrei mais detalhes; a seção abaixo presume que você não conseguiu inicializar ----

Como você não pode inicializar, você pode tentar duas coisas: Edite o boot.cfg manualmente ou inicialize um rescue-disk / live-cd e execute o grub-mkconfig.

A primeira opção requer que você saiba o nome do novo arquivo do kernel ou possa encontrá-lo (como em um disco de recuperação / live-cd). Edite /boot/grub/grub.cfg (ou pressione a tecla de atalho no menu grub para editar a linha de inicialização para uma inicialização) e encontre a linha [...] que inclui "linux vmlinuz [...]. Você precisa alterar a seção vmlinuz da linha para corresponder ao novo nome do arquivo.Se aplicável, você também precisará alterar a seção initramfs para o novo nome de arquivo apropriado.Salve-o e veja se você pode inicializar (ou fazer a edição em grub e veja se ele inicializa, depois edite-o assim que estiver dentro.)

O grub-mkconfig irá apagar essas mudanças se não funcionar direito, então, se você trabalhar com algo que inicialize, salve o trabalho grub.cfg como backup.

A etapa final é garantir que o (sudo) grub-mkconfig -o /boot/grub/grub.cfg gere corretamente as linhas de inicialização corretas. Se você estiver em um live-cd e ainda não tiver conseguido inicializar o sistema operacional, use o chroot para mudar o root para o seu disco real para que ele pegue os arquivos de inicialização corretos (e não se esqueça de montar / boot se estiver uma partição separada). Execute o comando e veja se ele inicializa.

O passo grub-mkconfig não é estritamente necessário se você conseguir torná-lo um sistema inicializável, mas é uma boa prática e as atualizações provavelmente irão destruir sua inicialização novamente se o grub-mkconfig não estiver funcional.

Se o grub-mkconfig não estiver funcionando, você precisará fazer um mergulho no /etc/grub(.d) para descobrir qual arquivo de configuração não está se comportando corretamente. Esses arquivos de configuração são muito complicados para lidar com muitas situações, para que você possa simplificar, comentar e codificar suas próprias coisas para que funcione novamente.

Boa sorte.

    
por 30.03.2016 / 14:04
0

My env still uses the legacy grub (0.97) so there is no option to do grub-mkconfig.

Você concorda em atualizar o fromgrub legacy para o grub2?

Então você pode atualizá-lo com o apt-get, então:

sudo grub-install /dev/sdX --boot-directory=/your_boot_folder.

Então, faça o comando já falado: sudo grub-update (grub-mkconfig ...)

    
por 01.04.2016 / 10:40