GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo eliminar versiones antiguas del kernel del arranque en Ubuntu 18.04

Canonical proporciona actualizaciones periódicas para el sistema Ubuntu 18.04, incluidas actualizaciones del kernel para administrar los recursos del sistema de la mejor manera posible. Este artículo le proporcionará algunos métodos diferentes para eliminar kernels antiguos del menú de inicio de su Ubuntu 18.04. Cuando instala un kernel nuevo, los antiguos no se eliminan porque puede ayudarlo a arrancar si comete un error con el nuevo o por alguna otra razón. Tenga en cuenta que el kernel anterior consume algunos espacios que pueden ser útiles para otra cosa. A veces necesitamos actualizar el kernel para compatibilidades porque es responsable de interconectar todas las aplicaciones.

Busca núcleos antiguos

Para evitar errores con el kernel de arranque actual de su sistema Ubuntu 18.04, asegúrese de verificar su versión

# uname -r
4.15.0-23-generic

Antes de intentar eliminar el núcleo anterior, primero debe verificar si hay núcleos antiguos presentes en los sistemas. Para hacer eso, puede mirar el grub cuando se inicia el sistema

puede seleccionar "opción avanzada para Ubuntu". Puede ver el kernel actual en la parte superior de la lista con el kernel anterior justo después de 4.15.0.13- gegenérico

Hay otro método para verificar el kernel anterior en la línea de comando. Esto le ayudará a enumerar el kernel antiguo y no el actual

# dpkg -l | grep -E 'linux-image-[0-9]+' | grep -Fv $(uname -r)
ii  linux-image-4.15.0-13-generic    4.15.0-13.14        amd64      Linux kernel image for version 4.15.0 on 64 bit x86 SMP

Puede ver que efectivamente tiene instalado un kernel antiguo marcado con ii. Puede ver más núcleos antiguos si ha realizado alguna actualización o instalación manual. Hay algún estado cuando revisas el kernel

  • ii :significa que el núcleo/los paquetes están instalados y son elegibles para su eliminación.
  • rc :indica que el kernel ya ha sido eliminado.
  • IU :es algo así como una advertencia que dice NO QUITAR. Eso significa que no está instalado pero está en cola para instalarlo en apt .

Asegúrate de ver el estado antes de hacer nada. Ahora que hemos encontrado algunos núcleos instalados, ahora veamos los diferentes métodos para eliminar cada uno o la totalidad.

1) Eliminar núcleos antiguos en la línea de comandos

Hay algunos comandos útiles para eliminar los núcleos antiguos, ya sea que los haya instalado manualmente o directamente a través de las actualizaciones del sistema. Normalmente lo instala a través de las actualizaciones periódicas del sistema, pero por algunas razones, puede decidir realizar una instalación manual.

a) comando apto

El apto comando de ayuda para desinstalar paquetes que incluyen los núcleos antiguos que no necesita en sus sistemas Ubuntu 18.04. Puede verificar los que se instalaron automáticamente como se muestra a continuación

# apt-mark showauto 'linux-image-.*'
linux-image-4.15.0-13-generic
linux-image-4.15.0-23-generic
linux-image-extra-4.15.0-13-generic
linux-image-generic

y puede verificar aquellos que se instalaron manualmente como se muestra a continuación

# apt-mark showmanual 'linux-image-.*'

Como puede ver, no tenemos ningún kernel instalado manualmente. Puede eliminar todo el kernel anterior con remove parámetro de la siguiente manera:

# apt remove linux-image-4.15.0-13-generic
Reading package lists... Done
Building dependency tree 
Reading state information... Done
The following packages will be REMOVED:
 linux-image-4.15.0-13-generic* linux-image-extra-4.15.0-13-generic
....
....
you may need to re-run your boot loader[grub]

Cuando elimine un kernel, asegúrese de actualizar el grub para ver si ocurre algún error al generar el grub

# update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.15.0-23-generic
Found initrd image: /boot/initrd.img-4.15.0-23-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
done

Ahora puedes comprobar de nuevo si se ha eliminado

# dpkg -l | grep -E 'linux-image-[0-9]+' | grep -Fv $(uname -r)
rc  linux-image-4.15.0-13-generic    4.15.0-13.14     amd64      Linux kernel image for version 4.15.0 on 64 bit x86 SMP

Puede ver el estado rc que muestran que se ha eliminado. También puede verificar en el menú de inicio y ver que solo aparece el kernel de inicio actual

También puede usar apt autoremove pero debe notar que el comando se usa para eliminar paquetes que se instalaron automáticamente para satisfacer las dependencias de otros paquetes y que ya no se necesitan como dependencias. Así que compruebe si no hay un paquete que necesite presente en la lista de paquetes para eliminar

# apt autoremove --purge

b) Comando dpkg

También puede usar el dpkg comando para eliminar un kernel específico en su sistema Ubuntu 18.04. Esta vez deberá indicar el paquete y las dependencias adicionales

# dpkg --purge linux-image-4.15.0-13-generic linux-image-extra-4.15.0-13-generic 
(Reading database ... 165680 files and directories currently installed.)
...
...
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.15.0-23-generic
Found initrd image: /boot/initrd.img-4.15.0-23-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
done
...

Puede verificar nuevamente los rastros, pero verá que se eliminaron por completo porque no tendrá una salida que muestre que se eliminó (rc)

# dpkg -l | grep -E 'linux-image-[0-9]+' | grep -Fv $(uname -r)

También puedes mirar el grub

c) Usando un guión

Hemos encontrado un script interactivo interesante de Kivisade en Github que te ayuda a eliminar los núcleos antiguos. Utiliza el comando dpkg pero lo interesante es el hecho de que enumera los núcleos a eliminar y pide su opinión. Primero instala git

# apt install git

Ahora clona el proyecto

# git clone https://github.com/kivisade/kernel-purge.git
Cloning into 'kernel-purge'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 3
Unpacking objects: 100% (3/3), done.

entra a la carpeta y dale permiso

# cd kernel-purge && chmod +x kernel-purge.sh

Ahora ejecuta el script

# ./kernel-purge.sh 
Running kernel version is: 4.15.0-23
The following (unused) KERNEL packages will be removed:
linux-headers-4.15.0-13
linux-headers-4.15.0-13-generic
linux-image-4.15.0-13-generic
linux-image-extra-4.15.0-13-generic
Do you want to continue [yN]? y
Reading package lists... Done
Building dependency tree 
Reading state information... Done
The following packages will be REMOVED:
 linux-headers-4.15.0-13* linux-headers-4.15.0-13-generic*
 linux-image-4.15.0-13-generic* linux-image-extra-4.15.0-13-generic*
0 upgraded, 0 newly installed, 4 to remove and 0 not upgraded.
After this operation, 335 MB disk space will be freed.
(Reading database ... 168812 files and directories currently installed.)
...
...
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.15.0-23-generic
Found initrd image: /boot/initrd.img-4.15.0-23-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
done
...
...

Ahora puede verificar si los núcleos se han eliminado de manera efectiva. No tendrá una salida, por lo que se han eliminado los núcleos antiguos

# dpkg -l | grep -E 'linux-image-[0-9]+' | grep -Fv $(uname -r)

2) Usar herramientas gráficas para eliminar kernels antiguos

También puede usar la herramienta gráfica para desinstalar los paquetes del kernel. La herramienta le pedirá su contraseña durante el proceso porque necesita tener el permiso administrativo.

a) Limpiador de Ubuntu

Ubuntu Cleaner es una utilidad de sistema fácil de usar diseñada para limpiar los cachés del navegador, eliminar aplicaciones innecesarias y eliminar núcleos antiguos. Ubuntu puede ser útil si desea eliminar:

  • Cachés de aplicaciones que incluyen la mayoría de los principales navegadores
  • caché apto
  • Núcleo antiguo
  • Paquetes innecesarios

El paquete no está presente de forma predeterminada en el repositorio oficial, por lo que debemos agregar el PPA. Recuerde que en Ubuntu 18.04 no necesita actualizar el caché de paquetes después de agregar el PPA porque se inicia automáticamente. Así que agregue el PPA como se muestra a continuación

~# add-apt-repository ppa:gerardpuig/ppa
 Official Ubuntu Cleaner stable repository
 More info: https://launchpad.net/~gerardpuig/+archive/ubuntu/ppa
Press [ENTER] to continue or Ctrl-c to cancel adding it.

Hit:1 http://cm.archive.ubuntu.com/ubuntu bionic InRelease                    
Get:2 http://cm.archive.ubuntu.com/ubuntu bionic-updates InRelease [83.2 kB]  
Get:3 http://security.ubuntu.com/ubuntu bionic-security InRelease [83.2 kB]   
Get:4 http://cm.archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]
Get:5 http://security.ubuntu.com/ubuntu bionic-security/main amd64 DEP-11 Metadata [204 B]
...
...

Ahora puedes instalar la herramienta

# apt install ubuntu-cleaner
Reading package lists... Done
Building dependency tree 
Reading state information... Done
The following additional packages will be installed:
 libpython-stdlib python python-apt python-aptdaemon
...
...

Luego inicie el software

Luego elija la sección del núcleo anterior y seleccione los núcleos para eliminar

Se le pedirá la contraseña y se iniciará el proceso

Ahora puede verificar si los núcleos aún están presentes. Puede ver el estado que indica que se eliminó

# dpkg -l | grep -E 'linux-image-[0-9]+' | grep -Fv $(uname -r)
rc  linux-image-4.15.0-13-generic    4.15.0-13.14     amd64      Linux kernel image for version 4.15.0 on 64 bit x86 SMP

b) Sináptica

Synaptic es una interfaz gráfica para la herramienta de empaquetado avanzado (APT) utilizada por el sistema basado en Debian para manejar la instalación de los paquetes/softwares. No es una herramienta fácil de usar, por lo que puede ser muy confuso de usar, por eso hay que tener mucho cuidado.

# apt install synaptic
Reading package lists... Done
Building dependency tree 
Reading state information... Done
The following additional packages will be installed:
 docbook-xml libept1.5.0 libgtk2-perl libpango-perl librarian0 rarian-compat
 sgml-base sgml-data xml-core

Ahora inicia la aplicación

Ahora vaya a Sección -> Kernel y Módulos, elija los núcleos para eliminar y márquelos para una eliminación completa. Asegúrese de elegir los núcleos correctos de la lista

Le pedirá su confirmación

Puedes ver que automáticamente marca la dependencia. Aplicar para eliminar los núcleos

Le pedirá la confirmación. Aplicar

Puede ver una ventana que muestra el proceso. Si observa detenidamente, verá al final que se ha generado el grub y que los núcleos antiguos no están presentes.

Conclusión

Ahora ya sabe cómo puede eliminar el núcleo antiguo del arranque de su Ubuntu 18.04. Debe tener en cuenta que se recomienda eliminar todo el kernel anterior porque si no puede arrancar con su kernel actual por cualquier motivo. Por lo tanto, se recomienda mantener al menos dos o preferiblemente tres núcleos, incluido el último. El motivo de la recomendación es que tendrá al menos uno o dos núcleos más para arrancar.

Lea también

  • Cómo utilizar las herramientas de seguimiento del kernel de BCC para el análisis de rendimiento de Linux
  • Cómo quitar y agregar PPA en Ubuntu 18.04
  • 6 comandos para borrar la terminal de Linux

Ubuntu
  1. Cómo instalar Kernel 5.13 en Ubuntu 18.04 desde el repositorio 20.04

  2. ¿Cómo instalar Ubuntu 16.04 desde una tarjeta SD?

  3. Cómo quitar la contraseña de un archivo pdf en Ubuntu

  4. Cómo desinstalar aria2 de Ubuntu

  5. ¿Cómo elimino el código VS y la configuración de Ubuntu?

Cómo actualizar de Ubuntu 20.04 a Ubuntu 22.04

Cómo eliminar versiones anteriores del kernel de Linux en Ubuntu

Cómo desinstalar Ubuntu de Windows Dual Boot de forma segura

Cómo eliminar paquetes de Ubuntu y Debian

¿Cómo cambiar el kernel en el arranque?

¿Cómo eliminar versiones antiguas del kernel para limpiar el menú de arranque?