Script para eliminar nuestro viejos kernel de linux

Quisiera empezar este post pidiendo disculpa a mis lectores, se que tenia tiempo sin escribir por este medio, pero los estudios y el trabajo no me dan mucho tiempo libre, por lo tanto para recompensar el tiempo ausente, les traigo este excelente tuto, en otro post les enseñe a como realizar un Script para descargar audio y vídeo con youtube-dl.

En este post les enseñare a crear un script para borrar por medio de la terminal esos viejos kernel de nuestro sistema, y de esta manera ahorrarnos unos megas en nuestro disco duro, y poder tener tanto un GRUB (GRand Unified Bootloader) , como un sistema mas limpio, ya se, ya se que muchos me dirán que por medio de programas como synatic o por medio de la central de aplicaciones de Ubuntu se puede realizar esta tarea, muy bien no digo lo contrario, solo recalcaría que las dos opciones antes mencionadas consumen mucho recurso de nuestro sistema para realizar una simple tarea de borrar unos kernel, por esto comparto esta forma de hacerlo utilizando nuestra poderosa terminal.

Dicho lo anterior pongámonos manos a la obra:

*Primero unas definiciones básicas:

Que es un kernel?

En informática, un núcleo o kernel (de la raíz germánica Kern, núcleo, hueso) es un software que constituye una parte fundamental del sistema operativo. Es el principal responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma básica, es el encargado de gestionar recursos, a través de servicios de llamada al sistema. Como hay muchos programas y el acceso al hardware es limitado, también se encarga de decidir qué programa podrá hacer uso de un dispositivo de hardware y durante cuánto tiempo, lo que se conoce como multiplexado.

INSTALACIÓN o CREACIÓN DEL SCRIPT

Después de conocer el concepto básico de que es un Kernel, ahora si llego la hora de la codificación, para ello procedemos a abrir nuestro bloc de notas o mejor conocido en Ubuntu como gedit y copiemos el siguiente código en lenguaje bash:

#!/bin/bash
while [ «$OPCION» != 3 ]
do
echo «»
printf «SCRIPT PARA ELIMINAR VIEJOS KERNEL DE NUESTRO SISTEMA. \n\n»
echo «[1] Eliminar linux-image»
echo «[2] Eliminar linux-headers»
echo «[3] Salir.»
echo «Ingrese una opción: «
read OPCION
case $OPCION in
#OPCION 1. ME ELIMINA LOS LINUX-IMAGE
1)echo «»
echo «»
echo «PARA ELIMINAR VIEJAS IMÁGENES DE LINUX SIGA LOS SIGUIENTES PASOS»
echo «»
echo «1.-LISTA DE IMÁGENES INSTALADAS EN EL SISTEMA.»
echo «»
#Sentencia que despliega la lista de imagenes instalados
#———————————————#
dpkg –get-selections | grep linux-image
#———————————————#
echo «»
echo «======================================»
echo «NOTA: EN EL PASO 2, SOLO DEBEMOS INTRODUCIR LA VERSION DE LA IMAGEN DE LINUX A DESINSTALAR, TAL CUAL COMO SALE EN LA LISTA.»
echo «======================================»
echo «»
echo «======================================»
echo «EJEMPLO: linux-image-3.10.17-031017-generic, SOLO DEBEMOS INTRODUCIR EN EL PASO DOS: 3.10.17-031017»
echo «======================================»
echo «»
echo «2.-INTRODUZCA LA VERSIÓN DE LA IMAGEN A DESINSTALAR»
read VERSION
echo «»
echo «LA IMAGEN DE LINUX QUE DESEA DESINSTALAR ES: linux-image-$VERSION-generic»
echo «[1]SI / [2]NO / [3]CANCELAR»
read RESP
if [ «$RESP» = 1 ]; then
echo «»
#Sentencia que solicita permiso administrador del S.O, para la posterior eliminacion del linux-image
#——————————————————–#
sudo apt-get remove –purge linux-image-$VERSION-generic
#——————————————————–#
echo «»
echo «LA IMAGEN linux-image-$VERSION-generic A SIDO ELIMINADA»
elif [ «$RESP» = 3 ]; then
exit #Salimos del script#
else
echo «VUELVA A INTRODUCIR DE NUEVO EL NUMERO DE VERSIÓN SIN ERROR: «
read VERSION
#Sentencia que solicita permiso administrador del S.O, para la posterior eliminacion del linux-image
#——————————————————–#
sudo apt-get remove –purge linux-image-$VERSION-generic
#——————————————————–#
echo «»
echo «LA IMAGEN linux-image-$VERSION-generic A SIDO ELIMINADA»
fi;; #FIN DE LA OPCION 1
#OPCION 2. ME ELIMINA LOS LINUX-HEADERS
2)echo «»
echo «PARA ELIMINAR VIEJOS HEADERS DE LINUX SIGA LOS SIGUIENTES PASOS»
echo «»
echo «1.-LISTA DE HEADERS INSTALADOS EN EL SISTEMA.»
echo «»
#Sentencia que despliega la lista de headers instalados
#———————————————#
dpkg –get-selections | grep linux-headers
#———————————————#
echo «»
echo «======================================»
echo «IMPORTANTE!!! SOLO DEBE DESINSTALAR LOS HEADERS CORRESPONDIENTE A LA IMAGEN DE LINUX DESINSTALADA ANTERIORMENTE»
echo «======================================»
echo «»
echo «======================================»
echo «NOTA 1: EN EL PASO 2, SOLO DEBEMOS INTRODUCIR LA VERSION DEL HEADER A DESINSTALAR, TAL CUAL COMO SALE EN LA LISTA.»
echo «EJEMPLO linux-headers-3.10.14-031014, SOLO DEBEMOS INTRODUCIR: 3.10.14-031014»
echo «======================================»
echo «»
echo «======================================»
echo «NOTA 2: NOTE QUE EN LA LISTA DE HEADERS INSTALADOS SALEN DOS CON LA MISMA VERSION, ESTE SCRIPT ESTA DISEÑADO PARA DESINTALAR LOS DOS.»
echo «======================================»
echo «»
echo «2.-INTRODUZCA LA VERSIÓN DEL HEADERS A DESINSTALAR»
read HEADERS
echo «»
echo «LA VERSIÓN DEL HEADERS QUE DESEA DESINSTALAR ES: linux-headers-$HEADERS»
echo «[1]SI / [2]NO /[3]CANCELAR: «
read RESP
if [ «$RESP» = 1 ]; then
echo «»
#SENTENCIA QUE USA LOS PRIVILEGIOS DE SUDO PA ELIMINAR EL HEADERS
#———————————————————————————#
sudo apt-get remove –purge linux-headers-$HEADERS linux-headers-$HEADERS-generic
#———————————————————————————#
echo «»
echo «EL linux-headers-$HEADERS A SIDO ELIMINADO»

elif [ «$RESP» = 3 ]; then
exit
else
echo «VUELVA A INTRODUCIR DE NUEVO EL NUMERO DE VERSIÓN SIN ERROR: «
read VERSION
#SENTENCIA QUE USA LOS PRIVILEGIOS DE SUDO PA ELIMINAR EL HEADERS
#———————————————————————————#
sudo apt-get remove –purge linux-headers-$HEADERS linux-headers-$HEADERS-generic
#———————————————————————————#
echo «»
echo «EL linux-headers-$HEADERS A SIDO ELIMINADO»
fi;; #FIN DE LA OPCION 2
esac

done

Luego de haber copiado tal cual el código, guardamos nuestro archivo, con un nombre que se nos haga facil de recordar y de llamar desde la terminal por ejemplo, yo lo guarde con el nombre de suprkernel.

Listo hasta ahora ya contamos con nuestro archivo y el código dentro de esté, él cual nos permitirá eliminar nuestros kernel obsoletos. Pero para poder ejecutarlo en la terminal de nuestro S.O, nos faltaría darle permiso de ejecución al mismo.

¿pero como realizamos este paso?

Simple damos clic con el segundo botón del mouse sobre el archivo, desplegando senos una lista de opciones, damos clic en la opción Propiedades, al hacerlo se nos mostrara una ventana con tres pestañas, elegimos la pestaña Permisos, en esta activamos la opción Permitir ejecutar el archivo como un programa.

Si se han seguido al pie de la letra estos pasos sencillos ya nuestro archivo contendría permiso de ejecución, solo nos faltaría un ultimo paso para ejecutar nuestro archivo desde la terminal, con solo escribir el nombre del mismo.

Para poder realizar lo anteriormente dicho, tenemos que mover nuestro archivo hasta la carpeta bin de nuestro sistema.

¿Pero como lo hago, si esta carpeta esta protegida?

bueno primero tendremos que abrir nuestra terminal pulsando las teclas ctrl +alt +supr, para después dentro de esta, teclear la siguiente sentencia

sudo nautilus

La cual nos permitirá abrir nuestro manejador de archivos, en modo administrador, con este abierto ubicamos en el panel lateral Sistema de archivos y le damos clic, Mostrando se nos una serie de carpetas de nuestro sistema, en las cuales ubicaremos una con el nombre bin, al hacerlo le damos doble clic para acceder a ella, ahora llegado hasta aquí, contamos con dos formas de colocar nuestro archivo suprkernel dentro de la misma, la primera, arrastrarlo y soltarlo y la segunda copiarlo y pegarlo, al haber logrado el pasos anterior, ya podemos ejecutar nuestro archivo como un auténtico script de nuestro sistema, por medio de la terminal.

EXPLICACIÓN CÓDIGO DEL SCRIPT

Procedamos a la explicación del mismo, la siguiente linea nos permiten decirle a nuestra terminal de que se trata de un archivo en lenguaje bash.

 #!/bin/bash

Las lineas  a continuación nos permiten visualizar nuestro menú de opciones.

echo «»
printf «SCRIPT PARA ELIMINAR VIEJOS KERNEL DE NUESTRO SISTEMA. \n\n»
echo «[1] Eliminar linux-image»
echo «[2] Eliminar linux-headers»
echo «[3] Salir.»
echo «Ingrese una opción: «
read OPCION

Como podemos observar nuestro script nos da tres opciones a ejecutar, las cuales se deben elegir en el orden en que están establecidas

Al elegir la opción 1, la cual nos permite eliminar las imágenes de Linux instaladas en mi sistema, se ejecutaran las instrucciones de las siguientes lineas

#OPCION 1. ME ELIMINA LOS LINUX-IMAGE
1)echo «»
echo «»
echo «PARA ELIMINAR VIEJAS IMÁGENES DE LINUX SIGA LOS SIGUIENTES PASOS»
echo «»
echo «1.-LISTA DE IMÁGENES INSTALADAS EN EL SISTEMA.»
echo «»
#Sentencia que despliega la lista de imagenes instalados
#———————————————#
dpkg –get-selections | grep linux-image
#———————————————#
echo «»
echo «======================================»
echo «NOTA: EN EL PASO 2, SOLO DEBEMOS INTRODUCIR LA VERSION DE LA IMAGEN DE LINUX A DESINSTALAR, TAL CUAL COMO SALE EN LA LISTA.»
echo «======================================»
echo «»
echo «======================================»
echo «EJEMPLO: linux-image-3.10.17-031017-generic, SOLO DEBEMOS INTRODUCIR EN EL PASO DOS: 3.10.17-031017»
echo «======================================»
echo «»
echo «2.-INTRODUZCA LA VERSIÓN DE LA IMAGEN A DESINSTALAR»
read VERSION
echo «»
echo «LA IMAGEN DE LINUX QUE DESEA DESINSTALAR ES: linux-image-$VERSION-generic»
echo «[1]SI / [2]NO / [3]CANCELAR»
read RESP
if [ «$RESP» = 1 ]; then
echo «»
#Sentencia que solicita permiso administrador del S.O, para la posterior eliminacion del linux-image
#——————————————————–#
sudo apt-get remove –purge linux-image-$VERSION-generic
#——————————————————–#
echo «»
echo «LA IMAGEN linux-image-$VERSION-generic A SIDO ELIMINADA»
elif [ «$RESP» = 3 ]; then
exit #Salimos del script#
else
echo «VUELVA A INTRODUCIR DE NUEVO EL NUMERO DE VERSIÓN SIN ERROR: «
read VERSION
#Sentencia que solicita permiso administrador del S.O, para la posterior eliminacion del linux-image
#——————————————————–#
sudo apt-get remove –purge linux-image-$VERSION-generic
#——————————————————–#
echo «»
echo «LA IMAGEN linux-image-$VERSION-generic A SIDO ELIMINADA»
fi;; #FIN DE LA OPCION 1

Dentro de las lineas de código anteriores las dos instrucciones importante a ejecutarse son, primero la dpkg –get-selections | grep linux-image, la cual me permite vizualisar la lista completa de imagenes de linux instaladas en el sistema, y la segunda la cual al ejecutarse me solicitara permiso del usuario administrador del S.O es sudo apt-get remove –purge linux-image-$VERSION-generic  la cual me permite eliminar la linux.imagen guardada en la variable $VERSION.

Si elegimos la opción 2 de nuestro script, este nos ejecuta las instrucciones para borrar el header de la imagen de nuestro kernel, eliminada previamente en el opción 1, ejecutando las siguientes instrucciones:

#OPCION 2. ME ELIMINA LOS LINUX-HEADERS
2)echo «»
echo «PARA ELIMINAR VIEJOS HEADERS DE LINUX SIGA LOS SIGUIENTES PASOS»
echo «»
echo «1.-LISTA DE HEADERS INSTALADOS EN EL SISTEMA.»
echo «»
#Sentencia que despliega la lista de headers instalados
#———————————————#
dpkg –get-selections | grep linux-headers
#———————————————#
echo «»
echo «======================================»
echo «IMPORTANTE!!! SOLO DEBE DESINSTALAR LOS HEADERS CORRESPONDIENTE A LA IMAGEN DE LINUX DESINSTALADA ANTERIORMENTE»
echo «======================================»
echo «»
echo «======================================»
echo «NOTA 1: EN EL PASO 2, SOLO DEBEMOS INTRODUCIR LA VERSION DEL HEADER A DESINSTALAR, TAL CUAL COMO SALE EN LA LISTA.»
echo «EJEMPLO linux-headers-3.10.14-031014, SOLO DEBEMOS INTRODUCIR: 3.10.14-031014»
echo «======================================»
echo «»
echo «======================================»
echo «NOTA 2: NOTE QUE EN LA LISTA DE HEADERS INSTALADOS SALEN DOS CON LA MISMA VERSION, ESTE SCRIPT ESTA DISEÑADO PARA DESINTALAR LOS DOS.»
echo «======================================»
echo «»
echo «2.-INTRODUZCA LA VERSIÓN DEL HEADERS A DESINSTALAR»
read HEADERS
echo «»
echo «LA VERSIÓN DEL HEADERS QUE DESEA DESINSTALAR ES: linux-headers-$HEADERS»
echo «[1]SI / [2]NO /[3]CANCELAR: «
read RESP
if [ «$RESP» = 1 ]; then
echo «»
#SENTENCIA QUE USA LOS PRIVILEGIOS DE SUDO PA ELIMINAR EL HEADERS
#———————————————————————————#
sudo apt-get remove –purge linux-headers-$HEADERS linux-headers-$HEADERS-generic
#———————————————————————————#
echo «»
echo «EL linux-headers-$HEADERS A SIDO ELIMINADO»elif [ «$RESP» = 3 ]; then
exit
else
echo «VUELVA A INTRODUCIR DE NUEVO EL NUMERO DE VERSIÓN SIN ERROR: «
read VERSION
#SENTENCIA QUE USA LOS PRIVILEGIOS DE SUDO PA ELIMINAR EL HEADERS
#———————————————————————————#
sudo apt-get remove –purge linux-headers-$HEADERS linux-headers-$HEADERS-generic
#———————————————————————————#
echo «»
echo «EL linux-headers-$HEADERS A SIDO ELIMINADO»
fi;; #FIN DE LA OPCION 2

Igual que la opción uno de nuestro menú general, como podemos observar se nos muestran una serie de pasos para lograr nuestro cometido de eliminar el header de linux, los cuales son:

  1. se nos muestra una lista de los header instalados en el S.O
  2. en esta opción se nos pide introducir la versión del header a desinstalar, y se nos pregunta si la versión introducida es la que en realidad queremos eliminar, si estamos seguro de que es la opción correcta introducimos el numero 1 correspondiente a la opción si, la cual ejecutara las instrucciones necesarias para la eliminación del header, si nos equivocamos de versión introducimos el numero 2, el cual nos permitirá introducir de nuevo la versión a eliminar, y por ultimo si no estamos seguro de que estamos realizando o queremos cancelar la eliminación, introducimos el numero 3 el cual nos sacaría del script.
  3. por ultimo se nos muestra un mensaje de confirmación de que ha sido eliminado el header

  La opción tres de nuestro menú general nos ejecuta simplemente  la instrucción para salir del script.

OBSERVACIONES

  1. Para una mejor lectura del código del script  lo eh subido a un doc en google drive, aquí comparto el enlace al mismo:  Codigo en drive google
  2. El script fue probado en el S.O Ubuntu 12.04.04 , ejecutándose sin ningún inconveniente.
  3. Siempre para eliminar un kernel del sistema elimine primero la imagen y luego el header de la misma.
  4. Gracias por leer mis publicaciones para cualquier sugerencia o duda no dude en comentar.
Etiquetado , , , , , , , , , ,

2 pensamientos en “Script para eliminar nuestro viejos kernel de linux

  1. eiderjc dice:

    Hola, Gilberto!

    Te doy las gracias por publicar este artículo! Lo probaré!

Deja un comentario