Como posso remover o kernel compilado?

21

Eu instalei a 14.10 no meu laptop Lenovo E455.

E compilou o kernel 3.19 com a seguinte ordem

já que parecia que a 14.10 não quer trabalhar com a minha (vi movimentos lentos)

Download do kernel atual em http://www.kernel.org/

make oldconfig
make
sudo make install

Finalmente, falhou ao inicializar com o novo kernel.

Como posso remover o kernel compilado do grub e me recuperar?

Oh minha garota
fonte
O que você tentou até agora para removê-lo e onde deu errado? Onde existem mensagens de aviso ou erro?
David Foerster
Graças à sua ajuda. Foi recuperado e aguardou o Ubuntu 15.XX.
Ohmygirl

Respostas:

33

O método fácil:

Se compilado através do método debian, você pode ver o kernel instalado com o seguinte:

dpkg --list | grep kernel-image

E então desinstale o pacote do kernel desejado com apt-get:

sudo apt-get remove kernel-image-your-kernel-image

O método difícil:

Se compilado e instalado via make install, você precisará remover manualmente as seguintes entradas:

/boot/vmlinuz*KERNEL-VERSION*
/boot/initrd*KERNEL-VERSION*
/boot/System-map*KERNEL-VERSION*
/boot/config-*KERNEL-VERSION*
/lib/modules/*KERNEL-VERSION*/
/var/lib/initramfs/*KERNEL-VERSION*/

Atualize a configuração do grub:

sudo update-grub2
Mudit Kapil
fonte
11
Eu não tenho o diretório / var / lib / initramfs /, mas é porque eu não tenho kernels compilados no meu sistema?
jarno
11
/var/lib/initramfs-tools/*KERNEL-VERSION*no Debian
Csaba Toth
11
Considere uma edição para kernels mais recentes (ano 2018) contendo: /boot/abi*KERNEL-VERSION*e/boot/retpoline*KERNEL-VERSION*
WinEunuuchs2Unix
9

Graças à pergunta de jarno aqui, criei uma maneira de implementar a resposta de Mudit Kapil, que requer muito pouca digitação e capta quaisquer bits extras por aí

Como tudo o que é necessário para remover o kernel é excluir todos os seus arquivos e diretórios, e todos esses arquivos e diretórios terão a string de liberação do kernel em seus caminhos, podemos usar locatepara encontrar todos os arquivos com a string de liberação do kernel e excluí-los para remover o kernel.

(Primeiro, verifique uname -ro nome do kernel em execução no momento e não o apague)

Digamos que você queira remover um kernel chamado 4.4.6-my-kernel. Você pode encontrar todos os seus arquivos e diretórios existentes (sem listar os arquivos em todos os diretórios nomeados) com locate -b -e 4.4.6-my-kernel. Anexar rm -ra isso também xargspermite excluir os arquivos. Eu adiciono -ppara criar xargsalvos de exibição e pedir confirmação antes de executar

locate -b -e 4.4.6-my-kernel | xargs -p sudo rm -r

digite ypara executar rm -rnos destinos mostrados. Ele reclamará que os arquivos que não são diretórios não existem porque você está tentando excluí-los recursivamente ( -r), mas tudo bem, eles ainda serão removidos junto com os diretórios e seu conteúdo. Quando terminar, basta executar

sudo update-grub

et voila.

Zanna
fonte
+1 porque captura mais arquivos do que a resposta aceita. Por exemplo, todas as dkmscoisas. Eu o rodaria primeiro sem a rmopção apenas para ver tudo o que seria excluído.
WinEunuuchs2Unix
Por que não devo excluir o kernel atualmente em execução? E se esse for o kernel que eu quero excluir? É possível excluir o kernel atualmente em execução sem primeiro reiniciar a máquina com outro kernel?
Liran Funaro 15/01
11
@LiranFunaro é possível sim. Veja minha resposta Como eu desinstalo o kernel em execução apenas por comando? o que também explica por que provavelmente não é uma boa ideia
Zanna 15/01