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 los núcleos antiguos del menú de inicio de su Ubuntu 18.04. Cuando instala un nuevo kernel, los viejos no se eliminan porque pueden ayudarlo a arrancar si comete un error con el nuevo o por alguna otra razón. Tenga en cuenta que el núcleo antiguo 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.
Compruebe si hay granos 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 antiguo, primero debe comprobar si hay núcleos antiguos presentes en los sistemas. Para hacer eso, puede mirar el grub cuando se inicia el sistema
Puedes elegir «opción avanzada para Ubuntu «. Puede ver el kernel actual en la parte superior de la lista con el kernel anterior siguiendo 4.15.0.13-generico
Existe otro método para verificar el kernel antiguo en la línea de comandos. Esto le ayudará a listar 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 kernels más antiguos si ha realizado alguna actualización o instalación manual. Hay algún estado cuando verifica el kernel
- ii: significa que el kernel / 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 sino en cola para instalarlo en apto.
Asegúrese de ver el estado antes de hacer nada. Ahora que hemos encontrado algunos núcleos instalados, veamos los diferentes métodos para eliminar cada uno o la totalidad.
1) Elimina los 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 regulares del sistema, pero por algunas razones, puede decidir realizar una instalación manual.
a) comando apt
los apto comando ayuda para desinstalar paquetes, incluidos 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 los 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 antiguo con el retirar 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
Puedes 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 utilizar el apt autoremove
comando, 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 son necesarios como dependencias. Así que verifique si no hay un paquete que necesite estar presente en la lista de paquetes para eliminar
# apt autoremove --purge
b) comando dpkg
También puede utilizar el dpkg comando para eliminar un kernel específico en su sistema Ubuntu 18.04. Esta vez necesitará 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 ha eliminado (rc)
# dpkg -l | grep -E 'linux-image-[0-9]+' | grep -Fv $(uname -r)
También puedes buscar la comida.
c) Usando un guión
Hemos encontrado un interesante guión interactivo de Kivisade en Github lo que le ayuda a eliminar los viejos núcleos. Utiliza el comando dpkg pero lo interesante es el hecho de que enumera los kernels a eliminar y pide tu opinión. Primero instale 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.
entrar a la carpeta y dar el 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 comprobar si los núcleos se han eliminado de forma eficaz. 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) Utilice herramientas gráficas para eliminar núcleos antiguos
También puede utilizar 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 cachés del navegador, eliminar aplicaciones innecesarias y obtener imágenes de kernels 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 la 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 inicia el software
Luego elija la sección de kernel anterior y seleccione los kernels para eliminar
Se le pedirá la contraseña y se iniciará el proceso.
Ahora puede comprobar si los núcleos todavía 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áptico
Synaptic es una interfaz gráfica para la Herramienta de empaquetado avanzada (APT) utilizada por el sistema basado en Debian para manejar la instalación de los paquetes / software. No es una herramienta fácil de usar por lo que puede resultar 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 muévete a Sección -> Kernel y módulos, elija los granos que desee eliminar y márquelos para una eliminación completa. Asegúrese de elegir los núcleos correctos en la lista
Te pedirá confirmación
Puede ver que marca automáticamente la dependencia. Aplicar para eliminar los granos
Pedirá la confirmación. Aplicar
Puede ver una ventana que muestra el proceso. Si observa con atención, verá al final que el grub se ha generado y 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 notar que se recomienda eliminar todo el kernel antiguo porque si no puede arrancar con su kernel actual por cualquier motivo. Por lo que recomendó 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.
Leer también