Cada vez que instalo un nuevo kernel de Linux, se deja en grub_config, haciendo que el menú de arranque sea más largo cada vez.
Sé que puedo buscar manualmente a través de los paquetes instalados y eliminarlos.
¿Ubuntu proporciona alguna forma más fácil de limpiarlos o evitar que se muestren en la lista de arranque?
sudo apt-get autoremove
debe hacer el truco en Ubuntu 14.04+sudo apt-get autoremove --purge
responder siguiendo losapt-mark
consejos en https://help.ubuntu.com/community/RemoveOldKernelsRespuestas:
16.04 y versiones más recientes de Ubuntu
Este comando elimina los paquetes que se instalaron automáticamente para resolver una dependencia, pero ahora ya no dependen de él. Esto incluye versiones antiguas de
linux-headers-*
ylinux-image-*
. (¡También es inteligente sobre este proceso, dejando una versión de repuesto del kernel como alternativa!)11.10 y versiones más recientes de Ubuntu
GRUB2 y su visualización de todos los núcleos
Las últimas versiones de Grub2 instaladas en Ubuntu muestran automáticamente el núcleo más reciente y oculta los núcleos más antiguos que puede haber instalado.
Si no ve su grub , recuerde presionar Shiftmientras arranca.
Como puede ver, solo se muestra el último núcleo.
Si selecciona la opción que se muestra (presione Enter), todos los núcleos antiguos se vuelven visibles y están disponibles para arrancar.
Cómo eliminar permanentemente núcleos más antiguos
Primer arranque con el último kernel disponible.
Hay varias formas de eliminar núcleos antiguos. Personalmente, no tocaría Computer Janitor ya que se reconoce que rompe su computadora con sus sugerencias.
sináptico
Una alternativa es Synaptic (
sudo apt install synaptic
)busque linux-image , haga clic derecho en un núcleo y elija la eliminación completa y finalmente haga clic en el botón Aplicar para eliminar el núcleo.
Repita la búsqueda, pero esta vez para el encabezado de Linux : puede eliminar los encabezados asociados para la imagen del núcleo elegida anteriormente.
Sin embargo, Synaptic no intentará verificar lo que está tratando de eliminar ... podría eliminar accidentalmente su núcleo más reciente, ¡o incluso eliminar todos sus núcleos a través de esta herramienta, dejándolo con un Ubuntu no arrancable !
Recuerde verificar qué núcleo está utilizando, escriba:
El resultado sería similar a:
Recuerde el resultado y el número: asegúrese de no eliminar la imagen o el encabezado correspondiente.
Recomendación
Mi recomendación es mantener al menos dos o preferiblemente tres núcleos, incluido el último. La razón de la recomendación es que tendrá al menos uno / dos núcleos más para iniciar, si por alguna razón el último núcleo no puede iniciar o introducir una capacidad regresiva, como una conexión inalámbrica rota.
fuente
-y
interruptor al final de laapt-get
línea es necesario, de lo contrario, apt-get solo solicita confirmación y, dado que la entrada es una tubería, simplemente aborta. Entonces debería terminar en:| xargs sudo apt-get purge -y
linux-image
ylinux-headers
liberado en mi máquina.Primero, reinicie su sistema para asegurarse de que esté utilizando el kernel más reciente. Luego abra la terminal y verifique su núcleo actual:
¡NO QUITE ESTE KERNEL!
Luego, escriba el comando a continuación para ver / enumerar todos los núcleos instalados en su sistema.
Encuentre todos los núcleos que sean inferiores a su núcleo actual. Cuando sepa qué núcleo eliminar, continúe a continuación para eliminarlo. Ejecute los siguientes comandos para eliminar el núcleo que seleccionó.
Finalmente, ejecute los siguientes comandos para actualizar grub2
Reinicie su sistema.
fuente
sudo apt-get purge linux-image-3.2.0-3{0..5}-generic
(elimina 30,31, .., 35)linux-signed-image
paquetes que pueden instalarse en los sistemas UEFI:sudo apt-get purge linux-signed-image-3.11.0-{12,14,24}-generic
que eliminarían el 12, 14 y 24uname -r
no tengo ningunasigned
cadena en mi sistema. Me parecen tener una imagen firmada instalado y la salida de esels
comando es:/boot/vmlinuz-3.19.0-16-generic.efi.signed
.Mi línea para eliminar núcleos antiguos (esto también libera espacio en disco)
Explicación (recuerde,
|
usa la salida del comando anterior como entrada para el siguiente)dpkg --list
enumera todos los paquetes instaladosgrep linux-image
busca las imágenes de Linux instaladasawk '{ print $2 }'
solo muestra la segunda columna (que es el nombre del paquete)sort -V
pone los artículos en orden por número de versiónsed -n '/'`uname -r`'/q;p'
imprime las líneas antes del núcleo actualxargs sudo apt-get -y purge
purga los granos encontradosDesenrollar la
sed
invocación:-n
dicesed
que se calle`uname -r`
genera la versión actual del kernel instalado; la incluimos en los backticks para que la salida se incluya como parte del comando (también puede ver esto como$(uname -r)
/something/q
dice detener cuando coincida con 'algo' (en este caso, algo se emiteuname -r
): el/
sonido envolvente es una expresión regularp
es imprimir;
es el comando separador, por lo que/something/q;p
dice salir cuando coincida con algo, de lo contrario imprimiren total,
sed -n '/'`uname -r`'/q;p'
es imprimir las líneas hasta que coincida con el nombre del núcleo actual.Si eres paranoico (como yo), puedes hacer la última parte
xargs echo sudo apt-get -y purge
para que se imprima el comando para purgar los núcleos antiguos, luego puedes comprobar que no se incluye nada inesperado antes de ejecutarlo.Versión modificada para eliminar encabezados:
Nota:
sed
se modifica la invocación."$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)/\1/")"
extrae solo la versión (por ejemplo, "3.2.0-44"), sin "-generic" o similar deuname -r
Versión todo en uno para eliminar imágenes y encabezados (combina las dos versiones anteriores):
fuente
sudo apt-get purge $(for tag in "linux-image" "linux-headers"; do dpkg-query -W -f'${Package}\n' "$tag-[0-9]*.[0-9]*.[0-9]*" | sort -V | awk 'index($0,c){exit} //' c=$(uname -r | cut -d- -f1,2); done)
vea también mi respuesta .dkpg -P
lugar. Aquí está la versión completa:dpkg --list | grep 'linux-headers' | awk '{ print $2 }' | sort -V | sed -n '/'"$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)/\1/")"'/q;p' | xargs sudo dpkg -P
Ubuntu 16.04+:
Ubuntu 15.10 y a continuación:
Creo que esta es la forma más fácil y rápida. Mantiene el kernel más reciente y dos más:
Para cambiar la cantidad de núcleos adicionales que se mantienen:
fuente
which purge-old-kernels
.purge-old-kernels
sin bikeshed ( herramientas útiles aleatorias que aún no tienen un hogar permanente ) o ninguno en particular. Evitar usar laapt-get -y
opción, es como cerrar los ojos y esperar que todo salga bien. También aquí es cómo Autoremove decide cuántos núcleos antiguos mantener.apt-file search purge-old-kernels
. De acuerdoapt-get -y
, lo eliminaré.sudo apt-get autoremove
no elimina los núcleos en 14.04. ¡Siéntase libre de actualizar la respuesta con la versión específica si sabe cuál es!Eliminar entradas de Grub 2 Las entradas deben eliminarse editando o eliminando archivos en la carpeta /etc/grub.d. El archivo /boot/grub/grub.cfg es de solo lectura y normalmente no debería requerir edición.
¿Demasiados granos?
Si no está seguro del núcleo que está utilizando actualmente, en un terminal escriba uname -r .
Los núcleos eliminados mediante APT (Synaptic, "apt-get remove", etc.) actualizarán automáticamente grub.cfg y no se requiere ninguna acción del usuario.
Una gran herramienta para eliminar núcleos (y entradas de menú) es Ubuntu-Tweak, una aplicación GUI segura y fácil de usar.
Instalar el ajuste de ubuntu
Ubuntu-Tweak estará disponible en Aplicaciones> Herramientas del sistema.
Eliminar entradas de kernel antiguas
Seleccione "Package Cleaner" a la izquierda y "Clean Kernel" en el panel derecho.
Presiona el botón "Desbloquear" en la esquina inferior derecha, ingresa tu contraseña.
Seleccione de la lista que se muestra las imágenes del núcleo y los encabezados que desea eliminar. El kernel en uso no está en la lista.
Presione el botón "Limpiar" en la esquina inferior derecha para eliminar las imágenes y los encabezados seleccionados del núcleo.
Eliminar sistemas operativos del menú Grub
Otros sistemas operativos que se hayan eliminado de la computadora también se eliminarán del menú una vez que "update-grub" se ejecute como root.
Los elementos de menú se colocan en el menú de Grub2 mediante scripts. Si no desea que se ingresen otros sistemas operativos en el menú, desactive /etc/grub.d/30_osprober
Ejecute este comando para detener la ejecución del script
sudo chmod -x /etc/grub.d/30_os-prober
DISABLE_30_OS-PROBER = 'true' en / etc / default / grub
Elimina Memtest86 + del menú Grub
sudo chmod -x /etc/grub.d/20_memtest86+
Fuente
Nota: Después de las actualizaciones del kernel, se agrega una nueva entrada al menú de GRUB. Puede eliminar la anterior si lo desea. Sin embargo, los usuarios más experimentados le aconsejarán que mantenga al menos una entrada de repuesto en caso de que algo salga mal con una actualización y usted necesita iniciar una versión anterior del kernel para solucionar problemas.
Forma alternativa de eliminar las entradas de Kernel (anteriores a 10.04)
para GRUB no GRUB2
startupmanager
Puedes encontrarlo en Sistema >> Administración >>
¿Ves en la segunda captura de pantalla que puedes seleccionar cuántos núcleos mostrar? Generalmente lo mantengo en 1, pero cuando obtengo una actualización del kernel siempre lo cambio a 2 antes de reiniciar para poder seleccionar el kernel anterior si el nuevo kernel tiene problemas con mi hardware. Una vez que sé que el nuevo kernel está funcionando bien, lo cambio a 1.
fuente
Simplemente línea de comando, esto eliminará todo menos el actual y el segundo más actual (a través del "-2" en el comando principal a continuación):
fuente
dpkg -l linux-* | awk '/^ii/{ print $2}' | grep -v -e `uname -r | cut -f1,2 -d"-"` | grep -e [0-9] | xargs sudo apt-get -y purge
linux-libc-dev:amd64
que no debe eliminarse.awk '{print "linux-image-" $0}'
.Actualización:
purge-old-kernels
está en desuso hoy en día.Hice un script para purgar núcleos incluso en condiciones difíciles. Se llama
linux-purge
y puede encontrarlo aquí .Si solo desea purgar los núcleos (y los paquetes relacionados) que son más antiguos que el núcleo utilizado actualmente, cuando el sistema no está dañado, puede usar este script .
También hay una página de documentación de Ubuntu a la que he contribuido con respecto a la eliminación de núcleos antiguos aquí .
fuente
purge-old-kernels
no está en la versión precisa (1.22) de bikeshed. ¿Hay alguna forma razonable / segura de obtener una cuenca más reciente? ¿O sería más simple / seguro instalar el script? Yo prefiero usar un repo sin embargo, a pesar de la larga lista de dependencias ..dlocate -lsbin bikeshed
Puede seguir la sección Uso del paquete "actualizaciones desatendidas" del artículo Actualizaciones de seguridad automáticas en Ubuntu Wiki para realizar esto.
Debe cambiar la siguiente línea en el archivo /etc/apt/apt.conf.d/50unattended-upgrades ;
con
para eliminar automáticamente los paquetes antiguos, incluidos los núcleos.
También elimine o comente la línea
en la sección "NeverAutoRemove" del archivo /etc/apt/apt.conf.d/01autoremove.
fuente
apt-get autoremove
a mi trabajo cron diario que en realidad hace las actualizaciones, ya que no siempre pasa por el administrador de actualizaciones incorporado.La forma más rápida / simple (aplicable al menos desde 12.04) posible que ya viene con Ubuntu es
apt-get
. Haga lo siguiente si desea eliminar todas las versiones anteriores del kernel que no están en uso (excepto la anterior que no está utilizando. Esto es para asegurarse de que si la versión actual del kernel falla de alguna manera, tiene un camino por recorrer volver a un estado anterior). Haz lo siguiente:Esto eliminará cualquier archivo antiguo (incluidas las versiones del kernel) que pueda tener. Tenga en cuenta que si tiene muchas versiones antiguas, tomará un tiempo ya que debe asegurarse de que eliminar la versión del kernel no tenga problemas. Para mí, eliminar las últimas 12 versiones del kernel me llevó unos 2 minutos. También puede hacer lo siguiente:
Lo que eliminará todo lo descargado y almacenado en la carpeta de caché de apt. Por último tienes:
que verificaría los paquetes no utilizados y los eliminaría si fuera necesario. Esto es ideal para aquellas bibliotecas y paquetes de dependencia que ya no son necesarios para ninguna aplicación instalada.
fuente
sudo apt-get autoremove
elimina los núcleos antiguos (hace más de una versión) en 14.04. Es posible que deba ejecutarlo antes y después de actualizar su núcleo. Cuando ejecuté antes de actualizar, solo eliminó la versión genérica del kernel anterior. Luego, después de actualizar mi kernel, también eliminó la versión de baja latencia del kernel anterior.sudo apt-get autoclean
comando. @tekNorah Instalé un par de kernels más antiguos y luego ejecutésudo apt-get autoremove
Ubuntu Studio 14.04. No eliminó ningún núcleo. Solo tengo instalados núcleos de baja latencia. ¿Por qué tiene instalados núcleos tanto genéricos como de baja latencia?10.04 Método GUI
Computer Janitor puede limpiar los núcleos antiguos y creo que está instalado por defecto en Ubuntu (pero no en Kubuntu).
GRUB 1, si está usando eso, tiene una opción
/boot/grub/menu.lst
para especificar cuántos núcleos debe mostrar como máximo. GRUB 2, por lo que puedo decir, no lo hace.fuente
Para averiguar qué núcleos y encabezados están instalados, use
Luego puede eliminarlos uno por uno o juntos, solo asegúrese de mantener el más reciente.
También hay algunos comandos y scripts útiles para automatizar la eliminación.
http://ubuntuforums.org/showthread.php?t=1658648
Los siguientes reclamos para eliminar todos los núcleos y encabezados no utilizados:
(usar
apt-get -y
para eliminar sin preguntas)Esto es lo que sucede cuando se ejecuta en 18.04.1:
fuente
linux-libc-dev
está instalado.linux-libc-dev
coincide con el número de versión del ḱernel actual. Aquídpkg -l linux-libc-dev | sed '/^ii/!d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'
imprime linux-libc-dev: amd64grep -E "(image|headers)"
.-y
bandera con purga por favor ..!Para eliminar los núcleos de imágenes de Linux más antiguos, primero inicie en el núcleo que desea mantener.
También puede verificar la versión del kernel usando el comando
uname -r
para no eliminar la incorrecta por error.Ahora vaya al administrador de paquetes sináptico y busque
linux-image
y elimine las versiones anteriores, excepto la que se muestra con el comando superior. Generalmente prefiero ir con la última.Ahora, cuando reinicie, verá un menú de grub más limpio.
fuente
Puede instalar ubuntu-tweak y luego ir a Aplicaciones -> Herramienta del sistema -> ubuntu tweak y
haga clic en limpiador de paquetes y limpie los granos. no muestra el núcleo utilizado actualmente, por lo que siempre estará seguro.
fuente
Personalmente, me gusta usar
Synaptic
. Me hace sentir más seguro sobre lo que está sucediendo. La única aplicación que he usado que tiene una opción para eliminar núcleos antiguos es Ubuntu Tweak .Cómo eliminar los núcleos que no está utilizando:
uname -a
en un terminalfuente
update-grub
se aconseja.Puede desinstalar los núcleos (
linux-image-...
paquetes) antiguos usando Synaptic, y eso los eliminará del menú de arranque. Tenga cuidado de no eliminar el kernel en ejecución (puede verificar su versión conuname -r
).Tenga en cuenta que tener una o dos versiones anteriores puede ayudarlo a solucionar problemas, en caso de que algo salga mal.
Alternativamente, puede editar / eliminar las entradas manualmente (
gksu gedit /boot/grub/grub.cfg
), pero se volverán a generar cuando actualice a un kernel más nuevo. Si está pensando en eliminarrecovery mode
opciones, no lo haga. Pueden ser útiles si rompe algo que le impide arrancar.Consulte esta página.
fuente
update-grub
cual reescribiremos todos esos núcleos.Esta es una solución de línea de comando pura.
Primero genere una lista de todas las versiones de kernel instaladas, excepto el kernel actualmente en ejecución:
Alternativamente, genere una lista de todas las versiones de kernel instaladas, excepto las dos últimas:
Examina la lista. Asegúrese de que las versiones del kernel que desea conservar no formen parte de la lista. Use el comando
uname -r
para ver la versión del kernel actualmente en ejecución.Si está satisfecho con los resultados, puede usar
apt-get
para eliminar los paquetes.Primero una ejecución en seco (usando el primer generador como ejemplo):
Entonces una carrera real:
Si desea automatizar el proceso, agregue el
--yes
parámetro:fuente
sudo apt-get purge -- $(ls -1U /boot/vmlinuz* | cut -d- -f2,3 | sort -uV | head -n -2 | awk -v c=$(uname -r | cut -d- -f1,2) '($0==c){exit} //' | sed -r -e 's/\./\\./g' -e 's/.*/-&($|-)/')
. No es necesariodpkg-query
ya queapt-get
puede manejar expresiones regulares. Tenga en cuenta cómo escapo puntos, y agregue prefijo y sufijo en la expresión regular. Usando el script en mi propia respuesta , también puede mantener algunos núcleos que son más antiguos que el actual.La ventaja de esta respuesta es que Ubuntu Bash nativo se usa sin instalar aplicaciones de terceros. Usuarios de núcleos personalizados que no usaron
apt
odpkg
pueden cambiar este script bash para satisfacer sus necesidades. Esta respuesta se basa en ( Cómo purgar selectivamente los núcleos antiguos de una vez ).Solución basada en Zenity
Zenity proporciona una agradable interfaz GUI al terminal para procesar una lista y seleccionar elementos con botones de radio :
Como el título indica que el núcleo actual con el que arrancó no se puede eliminar y no se incluye en la lista. El tamaño informado es cuánto se guardará en el
/boot
directorio. Se guarda más en su disco porque los binarios del núcleo también residen en otras áreas. Nota del 27 de julio de 2017: los directorios/usr/src/*kernel_version*
y/lib/modules/*kernel_version*
ahora también están incluidos.La fecha de modificación se descubre con el
stat
comando En mi sistema, esa fecha se "toca" cada vez que se inicia el kernel usando este script de reinicio cron ( ¿Cómo saber cuándo se arrancó por última vez una versión específica del kernel? ) . Sin embargo, en su sistema, la fecha será la fecha de lanzamiento del kernel, no la última vez que lo inició.apt-get purge
te da la oportunidad de abortarSe le da una oportunidad final para ver todo lo que se purgará y ver el espacio total en disco (algo engañoso) que se recuperará:
El código
Copie este código en un archivo ejecutable nombrado
rm-kernels
en/usr/local/bin
:NOTA: Necesita permiso de sudo para crear el archivo, así que use:
Para hacer que el archivo sea ejecutable use:
Versión del servidor
rm-kernels-server
es la versión del servidor para eliminar selectivamente los núcleos de una vez. En lugar de un cuadro de diálogo GUI (gráfico), se utiliza un cuadro de diálogo basado en texto para seleccionar los núcleos a purgar.Antes de ejecutar el script, necesita instalar la función de diálogo usando:
sudo apt install dialog
El cuadro de diálogo se encuentra en la instalación predeterminada de Ubuntu Desktop pero no en Ubuntu Server.
Pantalla de muestra
rm-kernels-server
código bashNOTA: En la llamada a
dialog
la directiva--ascii-lines
se pasa para reemplazar el juego de caracteres extendido de dibujo de línea (quessh
no le gusta) con "+ ----- +" para los cuadros de dibujo. Si no te gusta esta apariencia, puedes usar la--no-lines
directiva para ninguna caja.28 de julio de 2017 Actualizaciones
El tamaño calculado de cada núcleo se tomó de los
/boot/*kernel_version*
cuales había 5 archivos con un total de ~ 50 MB. La fórmula ha cambiado para incluir los archivos en/usr/src/*kernel_version*
y/lib/modules/*kernel_version*
. El tamaño calculado para cada núcleo es ahora ~ 400 MB. El código anterior pararm-kernels
yrm-kernels-server
ha sido actualizado. Sin embargo, las pantallas de muestra anteriores aún no reflejan estos cambios.El valor predeterminado es estimar el tamaño de los archivos para los encabezados de Linux a 125 MB y la imagen de Linux a 220 MB porque
du
puede ser extremadamente lento a menos que los archivos estén en caché. Para obtener el tamaño real usandodu
pase cualquier parámetro al script.El total de todos los tamaños de kernel (excluyendo la versión actual que no se puede eliminar) ahora se muestra en la barra de título.
El cuadro de diálogo utilizado para mostrar la Fecha de último acceso de cada Kernel . Esta fecha puede sobrescribirse en masa para todos los núcleos durante la copia de seguridad u operaciones similares. El cuadro de diálogo ahora muestra la Fecha de modificación en su lugar.
fuente
Una forma fácil de deshacerse de casi todos los paquetes obsoletos, los paquetes que ya no están en ninguna lista de paquetes, junto con los núcleos obsoletos es hacer uno de los siguientes:
Sin embargo, esto perderá paquetes que otros paquetes todavía recomiendan, y el argumento -R / - sin recomendaciones no resuelve este problema.
dselect después de cambiar el modo de ordenación con 'o' mostrará todos los paquetes obsoletos, incluidos los que se pierden por aptitud, pero a algunas personas no les gusta usarlo.
fuente
La respuesta aceptada que usa
sed
para eliminar los núcleos más antiguos de forma permanente tiene algunos defectos, si alguien no ha reiniciado la computadora después de actualizar el núcleo, el comando también eliminará el núcleo más nuevo.Aquí hay una solución alternativa que considerará todas las situaciones para eliminar solo los núcleos antiguos reales:
Si tiene una versión más nueva que la actual, esto le dará una advertencia para reiniciar su computadora primero. También tenga en cuenta que los núcleos más antiguos se conservan debido a una buena razón: si de alguna manera arruina su núcleo actual haciendo que su sistema sea inestable, entonces debería poder iniciar en cualquier núcleo más antiguo.
fuente
sed
soluciones.grep -Po "^linux-image-[^-]+-[^-]+-generic\b"
congrep -Eo "^linux-(image|headers|tools)-[^-]+-[^-]+(|-generic)\s" | sed -e "s/\s//g"
ygrep -Po ".*(?=-[a-z]*$)"
congrep -Eo "^[0-9]+\.[0-9]+\.[0-9]+-[0-9]+"
ygrep -Po "[0-9].*(?=-[a-z]*)"
congrep -Eo "[0-9]+\.[0-9]+\.[0-9]+-[0-9]+"
?ailurus tiene la función de eliminar núcleos antiguos y configuraciones no utilizadas. Personalmente lo elimino manualmente de synaptic. Puede instalar ailurus desde getdeb y ppa
fuente
Tengo un script para esto que no necesita un análisis de cadenas muy sofisticado.
Eliminar encabezados e imágenes, excepto el actual, para liberar espacio
fuente
Puede usar ukuu, todo es GUI, para actualizar y eliminar Kernels antiguos. ¡Funciona para mi!
Solo recuerde dejar los 2 últimos instalados y obviamente el kernel 'en ejecución'.
También puede configurar ukuu para que solo muestre versiones principales, incluso núcleos RC, versiones de punto oculto.
Puedes encontrar ukuu en Synaptic, o las instrucciones están aquí:
Instrucciones de instalación de OMG! Ubuntu ukuu
fuente
Basado en una respuesta anterior de David Kemp, el siguiente script purgará todos los encabezados e imágenes, excepto las últimas 2 versiones.
(usar
apt-get -y
para eliminar sin preguntas)fuente
| xargs sudo apt-get -y purge
conjunto). Si imprime 3.13.0-43-latencia baja, entonces quizás tenga algunas versiones posteriores a la instalada en su sistema.Aquí hay un resumen de lo que hice, cuidado ya que no soy un experto en Linux, asegúrese de saber lo que está haciendo y de haber hecho una copia de seguridad de los archivos que está modificando.
luego encuentre las entradas que desea conservar, las resaltaremos y las copiaremos
verá una lista de archivos como 10_linux y 30_os-prober
esto detendrá la forma automática de agregar todas las entradas de linux en el menú de arranque de grub.
abra el archivo del menú de inicio personalizado, luego regrese a grub.cfg (que aún debe estar abierto en gedit) y copie las entradas que desea conservar ... como
péguelos
40_custom
y luego guárdelos.lo hace ejecutable, luego finalmente actualizamos grub que cambiará el archivo grub.cfg:
Ahora, CUIDADO, si actualiza su kernel o sistema operativo, su menú de arranque probablemente no se actualizará ... tendrá que hacerlo manualmente. Pero hacer este procedimiento le permitirá personalizar el menú de arranque un poco más, como eliminar la versión del kernel y simplemente poner el nombre de ubuntu ... es decir, Ubuntu Lucid 10.04, etc.
Espero que alguien encuentre esto útil, ya que me tomó un tiempo darme cuenta ... no vi esta solución en ningún lado ...
fuente
Instale el administrador de paquetes sinápticos y vaya a la pestaña de filtros (creo que los filtros, si no prueba los 5) y seleccione "local". Esto le mostrará paquetes huérfanos en su sistema, como los núcleos. Después de desinstalarlos, ejecute
update-grub
. Ese comando actualiza la lista de opciones de arranque para grub.Si esto falla, siempre puedes intentarlo
apt-get remove linux-image-version-generic
.fuente
update-grub
se aconseja.Para tener un poco más de control sobre qué versiones mantener, seleccione explícitamente las que desea eliminar. Por ejemplo, si desea eliminar las versiones del kernel 3.2.0. [49-53], use un
for
bucle simple :Ajuste la lista de versiones del kernel para que se ajuste.
fuente
Prueba esto. Ejecútelo como root.
Guarde este script como, digamos ./keep-n-kernels.sh
Pase, como argumento de línea de comando, el número de núcleos más recientes que desea conservar.
Uso de la muestra:
Si desea [Y BAJO SU PROPIO RIESGO], puede agregar un -y (o un indicador de fuerza) al comando apt-get y hacerlo no interactivo.
fuente
Estoy usando un escritorio KDE, y la opción más fácil que encontré fue usar la aplicación kde-config-grub2 como se sugiere aquí: https://www.kubuntuforums.net/showthread.php?58075-remove-old-linux-versions (que ya había instalado para configurar la imagen de fondo, la opción de arranque predeterminada y similares). Junto al cuadro desplegable donde puede elegir la entrada predeterminada, hay un botón "Eliminar entradas antiguas". Al hacer clic en este botón, se presenta una lista de todos los núcleos instalados y puede seleccionar cuáles eliminar. Cuando aplique los cambios, usará dpkg para eliminarlos del sistema, así como el menú GRUB.
fuente
Solo para intervenir, también puedes emitir
apt-get remove linux-{image,headers}-x.y.z-{1,2,...,n}
como root, y el trabajo estará hecho.
fuente
Si está utilizando ansible para controlar las máquinas, este libro de jugadas puede ser útil.
fuente