¿Cómo puedo eliminar el núcleo compilado?

21

Instalé 14.10 en mi laptop Lenovo E455.

Y compilado kernel 3.19 con el siguiente orden

ya que parecía que 14.10 no quiere trabajar con el mío (vi movimientos lentos)

Kernel actual descargado de http://www.kernel.org/

make oldconfig
make
sudo make install

Finalmente, no se pudo iniciar con el nuevo núcleo.

¿Cómo puedo eliminar el núcleo compilado de grub y recuperarme?

Oh mi niña
fuente
¿Qué intentaste hasta ahora para eliminarlo y dónde salió mal? ¿Dónde hay mensajes de advertencia o error?
David Foerster
Gracias a tu ayuda Me recuperé y esperaba Ubuntu 15.XX.
Ohmygirl

Respuestas:

33

El metodo facil:

Si se compila a través del método debian, puede ver el núcleo instalado con lo siguiente:

dpkg --list | grep kernel-image

Y luego desinstale el paquete de kernel deseado con apt-get:

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

El método difícil:

Si se compila e instala a través de make install, deberá eliminar manualmente las siguientes 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*/

Luego actualice la configuración de grub:

sudo update-grub2
Mudit Kapil
fuente
1
No tengo el directorio / var / lib / initramfs /, pero ¿es porque no tengo núcleos compilados en mi sistema?
jarno
1
/var/lib/initramfs-tools/*KERNEL-VERSION*en Debian
Csaba Toth
1
Considere una edición para los núcleos más nuevos (año 2018) que contenga: /boot/abi*KERNEL-VERSION*y/boot/retpoline*KERNEL-VERSION*
WinEunuuchs2Unix
9

Gracias a la pregunta de Jarno aquí , descubrí una forma de implementar la respuesta de Mudit Kapil que requiere muy poco tipeo y atrapa cualquier trozo extra por ahí.

Dado que todo lo que se necesita para eliminar el kernel es eliminar todos sus archivos y directorios, y todos esos archivos y directorios tendrán la cadena de liberación del kernel en sus rutas, podemos usar locatepara encontrar todos los archivos con la cadena de liberación del kernel y eliminarlos para quitar el kernel

(Primero verifique uname -rpara encontrar el nombre del kernel actualmente en ejecución y asegúrese de no eliminarlo)

Digamos que desea eliminar un núcleo llamado 4.4.6-my-kernel. Puede encontrar todos sus archivos y directorios existentes (sin enumerar los archivos en todos los directorios nombrados) con locate -b -e 4.4.6-my-kernel. Agregar rm -resto también le xargspermite eliminar los archivos. Agrego -ppara hacer xargsobjetivos de visualización y pedir confirmación antes de ejecutar

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

luego escriba ypara ejecutar rm -ren los objetivos que se muestran. Se quejará de que los archivos que no son directorios no existen porque intentas eliminarlos de forma recursiva ( -r) pero está bien, aún se eliminarán junto con los directorios y sus contenidos. Cuando termines, solo corre

sudo update-grub

et voila.

Zanna
fuente
+1 porque esto captura más archivos de la respuesta aceptada. Por ejemplo todas las dkmscosas. Lo ejecutaría primero sin la rmopción solo para ver todo lo que se eliminaría.
WinEunuuchs2Unix
¿Por qué no debería eliminar el núcleo actualmente en ejecución? ¿Qué pasa si ese es el núcleo que quiero eliminar? ¿Es posible eliminar el núcleo actualmente en ejecución sin antes reiniciar la máquina con otro núcleo?
Liran Funaro
1
@LiranFunaro es posible sí. Vea mi respuesta ¿Cómo desinstalo el kernel en ejecución solo por comando? lo que también explica por qué probablemente no sea una buena idea
Zanna