Como adicionar um novo kernel ao grub2

24

Como podemos adicionar um kernel ao grub2? Eu sabia o que poderíamos fazer com as versões anteriores, mas parece que mudou. Quais arquivos devemos editar?

Amir Zadeh
fonte

Respostas:

11

Para adicionar um novo kernel ao grub2:

  1. Mova seu kernel para / boot /
  2. Execute sudo update-grub

O update-grub examinará seu computador em busca de kernels e criará uma lista dos kernels disponíveis na inicialização.

Para você selecionar qual kernel inicializar no momento da inicialização, pode ser necessário manter o botão SHIFT pressionado logo após o lançamento da BIOS.

Você pode editar o arquivo / etc / default / grub para alterar as opções e parâmetros de inicialização padrão necessários.

Linux não Debian

Veja as notas do grub para sua distribuição, como esses documentos do Fedora GRUB 2 .

  • grub2-mkconfig -o /boot/grub2/grub.cfg
earthmeLon
fonte
E se você tiver duas distribuições Linux sem uma partição / inicialização separada? Você precisa copiar o kernel do rootfs secundário para o principal? Ou o 'grub-update' também verifica outras partições em busca de novos kernels?
precisa saber é
Esta é uma pergunta separada, mas o executável usado deve ler /boot/e gerar corretamente. O arquivo de configuração do grub (ex:) /etc/default/grubpode ser diferente por sistema operacional, portanto, sincronize-os. A prática recomendada pode ser que um único sistema operacional gere entradas grub para você, no entanto.
earthmeLon
Não é realmente uma pergunta separada, o OP não especificou sua configuração e as botas duplas a são comuns. Pensei que poderia agregar valor à sua resposta, o que já é bom. Portanto, em outras palavras, o sistema operacional secundário nem precisa de seu próprio grub, o grub do principal irá procurar por pastas de inicialização em todas as partições e encontrar os kernels.
precisa saber é
1
Como movo um kernel para / boot? mv kernel /boot? Onde encontro um kernel que pode ser movido para / boot?
Thomas Weller
3

Estou executando o Fedora 20, e o comando para atualizar o grub2 é grub2-mkconfig. Além disso, todo o processo pode ser realizado com a compilação do kernel make:

make xconfig (make config, etc)
make bzImage
make modules
sudo make modules_install
sudu make install

Esta (última etapa) copiará o kernel para / boot e atualizará o carregador de inicialização grub2. Muito fácil, e funcionou corretamente no meu caso. Meu único problema é que você realmente não aprende nenhum detalhe importante do processo, tudo é automatizado. Se você tiver problemas e precisar descobrir o que há de errado, poderá ficar preso.

philbrooksjazz
fonte
sudo make installme diz: Cannot find LILO.
René Nyffenegger 29/04
Possivelmente você está construindo uma versão muito mais antiga do kernel? O LILO foi usado na versão do kernel anterior à 3.x (versão não exata) Com qual distribuição você está trabalhando?
philbrooksjazz
Este foi no Arch Linux, com o mais recente rc (4.6.0-rc5) que eu git clonou no repositório Linux Torvalds.
René Nyffenegger
0

/boot/grub/grub.cfgé o arquivo que foi substituído menu.lstdo grub1

Nos sistemas Debian / Ubuntu, isso é gerado por update-grub, que executa os scripts /etc/grub.dusando algo semelhante ao run-parts.

Flexo
fonte
0

Se o novo kernel estiver instalado com o dpkg (como se fosse compilado com o make-kpkg), o update-grub2 é suficiente (ele também não remove mais kernels existentes)

Mr Shunz
fonte
0

Você não "edita" para adicionar mais kernels. Ele digitaliza e os adiciona dinamicamente. Se você DEVE adicionar um que uma digitalização não encontre, procure em /etc/grub.d e modifique ou copie e custom40 (ele foi adicionado por último, portanto, é um ótimo lugar para testar sua configuração antes de colocá-la no topo da tela. Lista).

RobotHumans
fonte
0

Tente update-grubou update-grub2dependendo da sua versão do grub. Você precisará executá-los como root sudo,. Isso funcionou para mim quando instalei uma segunda distribuição Linux sem reinstalar o grub.

beatgammit
fonte
Percebi que minha resposta é semelhante à resposta de Alan, mas adicionei o comando grub2.
beatgammit