it-swarm.dev

¿Cómo libero más espacio en / boot?

Mi partición /boot está casi llena y recibo una advertencia cada vez que reinicio mi sistema. Ya eliminé los paquetes de kernel antiguos (linux-headers ...), en realidad lo hice para instalar una versión de kernel más nueva que venía con las actualizaciones automáticas.

Después de instalar esa nueva versión, la partición está casi llena nuevamente. Entonces, ¿qué más puedo eliminar? ¿Hay otros archivos asociados a las imágenes antiguas del kernel?

Aquí hay una lista de archivos que están en mi partición /boot:

:~$ ls /boot/
abi-2.6.31-21-generic         lost+found
abi-2.6.32-25-generic         memtest86+.bin
abi-2.6.38-10-generic         memtest86+_multiboot.bin
abi-2.6.38-11-generic         System.map-2.6.31-21-generic
abi-2.6.38-12-generic         System.map-2.6.32-25-generic
abi-2.6.38-8-generic          System.map-2.6.38-10-generic
abi-3.0.0-12-generic          System.map-2.6.38-11-generic
abi-3.0.0-13-generic          System.map-2.6.38-12-generic
abi-3.0.0-14-generic          System.map-2.6.38-8-generic
boot                          System.map-3.0.0-12-generic
config-2.6.31-21-generic      System.map-3.0.0-13-generic
config-2.6.32-25-generic      System.map-3.0.0-14-generic
config-2.6.38-10-generic      vmcoreinfo-2.6.31-21-generic
config-2.6.38-11-generic      vmcoreinfo-2.6.32-25-generic
config-2.6.38-12-generic      vmcoreinfo-2.6.38-10-generic
config-2.6.38-8-generic       vmcoreinfo-2.6.38-11-generic
config-3.0.0-12-generic       vmcoreinfo-2.6.38-12-generic
config-3.0.0-13-generic       vmcoreinfo-2.6.38-8-generic
config-3.0.0-14-generic       vmcoreinfo-3.0.0-12-generic
extlinux                      vmcoreinfo-3.0.0-13-generic
grub                          vmcoreinfo-3.0.0-14-generic
initrd.img-2.6.31-21-generic  vmlinuz-2.6.31-21-generic
initrd.img-2.6.32-25-generic  vmlinuz-2.6.32-25-generic
initrd.img-2.6.38-10-generic  vmlinuz-2.6.38-10-generic
initrd.img-2.6.38-11-generic  vmlinuz-2.6.38-11-generic
initrd.img-2.6.38-12-generic  vmlinuz-2.6.38-12-generic
initrd.img-2.6.38-8-generic   vmlinuz-2.6.38-8-generic
initrd.img-3.0.0-12-generic   vmlinuz-3.0.0-12-generic
initrd.img-3.0.0-13-generic   vmlinuz-3.0.0-13-generic
initrd.img-3.0.0-14-generic   vmlinuz-3.0.0-14-generic

Actualmente, estoy usando el kernel 3.0.0-14-generic.

562
user6722

Tienes muchos núcleos sin usar. Elimine todos los núcleos excepto los últimos con:

Sudo apt-get purge linux-image-{3.0.0-12,2.6.3{1-21,2-25,8-{1[012],8}}}

Esta es la abreviatura de:

Sudo apt-get purge linux-image-3.0.0-12 linux-image-2.6.31-21 linux-image-2.6.32-25 linux-image-2.6.38-10 linux-image-2.6.38-11 linux-image-2.6.38-12 linux-image-2.6.38-8

Al eliminar el paquete linux-image-x.x.x-x también se eliminará linux-image-x.x.x-x-generic.

Los encabezados se instalan en /usr/src y se usan al compilar módulos de kernel fuera del árbol (como el controlador propietario de nvidia y virtualbox). La mayoría de los usuarios deberían eliminar estos paquetes de encabezado si el paquete de kernel correspondiente (linux-image-*) no está instalado.

Para enumerar todos los núcleos instalados, ejecute:

dpkg -l linux-image-\* | grep ^ii

Un comando para mostrar todos los núcleos y encabezados que se pueden eliminar, excluyendo el kernel en ejecución actual:

kernelver=$(uname -r | sed -r 's/-[a-z]+//')
dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve $kernelver

Selecciona todos los paquetes nombrados comenzando con linux-headers-<some number> o linux-image-<some number>, imprime los nombres de los paquetes instalados y luego excluye el kernel cargado/en ejecución actual (no necesariamente el último kernel!). Esto se ajusta a la recomendación de probar un kernel más nuevo antes de eliminar los kernel más antiguos y conocidos.

Entonces, después de actualizar los núcleos y reiniciar para probarlo, puede eliminar todos los demás núcleos con:

Sudo apt-get purge $(dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve "$(uname -r | sed -r 's/-[a-z]+//')")
627
Lekensteyn

Su partición de arranque está llena. Como se trata de una actualización del kernel, estos archivos se copiarán en la partición de arranque, por lo que debe limpiarlos. Aquí hay un publicación de blog que le mostrará cómo borrar las imágenes antiguas del núcleo con un comando. Daré una sinopsis básica del método. Use este comando para imprimir la versión actual de su núcleo:

uname -r

Luego use este comando para imprimir todos los núcleos que ha instalado que no son su núcleo más nuevo:

dpkg -l linux-{image,headers}-"[0-9]*" | awk '/^ii/{ print $2}' | grep -v -e `uname -r | cut -f1,2 -d"-"` | grep -e '[0-9]'

Asegúrese de que su núcleo actual no esté en esa lista. Observe cómo esta es la mayoría del comando final (abajo). Para desinstalar y eliminar estos núcleos antiguos, querrá canalizar estos argumentos a:

Sudo apt-get -y purge

Ahora podemos hacer todo lo que queramos combinando estos dos últimos comandos en este lío impío:

dpkg -l linux-{image,headers}-"[0-9]*" | awk '/^ii/{ print $2}' | grep -v -e `uname -r | cut -f1,2 -d"-"` | grep -e '[0-9]' | xargs Sudo apt-get -y purge

Y ese comando se encargará de todo por ti. Confirmaré que esto funciona perfectamente, pero nunca confíes en nadie en Internet. :) Para obtener más información, la publicación del blog ofrece una muy buena explicación de lo que hace cada parte del comando, así que léelo para que esté satisfecho de que hace lo que quiere que haga.

216
dward
Sudo apt-get autoremove

Este comando está haciendo el trabajo automáticamente.

107
karan

Synaptic Package Manager se puede usar para seleccionar y eliminar fácilmente imágenes antiguas del núcleo. Screenshot of Synaptic Package Manager

Si aún no tiene Synaptic instalado:

_Sudo apt-get install synaptic
_

Inicie la aplicación y seleccione las opciones que se muestran.

Debería poder resaltar todos los paquetes "linux-" con la versión "2.6.x" donde x está entre 31 y 38 de acuerdo con los archivos en su carpeta/boot.

Haga clic derecho en cada uno de esos paquetes de Linux y elija la opción "Marcar para eliminación completa". Finalmente haga clic en el botón Aplicar. Esto eliminará todos los archivos y cualquier archivo asociado. Su carpeta _/boot_ ahora debería estar un poco más ordenada.

40
fossfreedom

Gracias por su publicación detallada de su problema, esto me llevó en la dirección correcta. Aunque es útil mantener los archivos del núcleo anteriores, puede eliminarlos de una vez, consulte esta publicación:
Cómo quitar todos los encabezados, imágenes y módulos del kernel de Linux no utilizados

Hecho a través de la línea de comando. Si está haciendo esto de forma remota, use algo como WINSCP para abrir una sesión de terminal y simplemente péguelo, funciona muy bien.

Aquí está copiado del enlace del artículo, le sugiero que lea el artículo completo:

dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs Sudo apt-get -y purge
25
Omni

Esta es una nueva respuesta a una pregunta anterior, pero una forma fácil de limpiar esto (y más) es instalar buntu Tweak . Para instalarlo :

Sudo add-apt-repository ppa:tualatrix/ppa
Sudo apt-get update
Sudo apt-get install ubuntu-Tweak

entonces puedes ejecutar Ubuntu Tweak, yendo a la pestaña "conserje", y desde aquí es cuestión de tres clics:

Ubuntu Tweak janitor for old kernels

Sin embargo, es mejor dejar el último kernel (nunca se sabe) o un kernel que funcione bien por seguridad; Pero eso es fácilmente personalizable.

Puede usar la misma herramienta para limpiar muchas cosas --- solo recuerde que si limpia la caché de miniaturas o la caché TB entonces el sistema tendrá que reconstruirlas si es necesario.

23
Rmano

Pude solucionar el problema usando dpkg para eliminar los paquetes directamente. Aunque los paquetes todavía se enumeran en _dpkg -l_, los archivos se eliminan de _/boot_, liberando espacio.

_[email protected]:/boot$ Sudo dpkg --remove linux-image-2.6.32-30-server
(Reading database ... 145199 files and directories currently installed.)
Removing linux-image-2.6.32-30-server ...
Running postrm hook script /usr/sbin/update-grub.
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-35-server
Found linux image: /boot/vmlinuz-2.6.32-34-server
Found initrd image: /boot/initrd.img-2.6.32-34-server
Found linux image: /boot/vmlinuz-2.6.32-33-server
Found initrd image: /boot/initrd.img-2.6.32-33-server
Found linux image: /boot/vmlinuz-2.6.32-32-server
Found initrd image: /boot/initrd.img-2.6.32-32-server
Found linux image: /boot/vmlinuz-2.6.32-31-server
Found initrd image: /boot/initrd.img-2.6.32-31-server
Found memtest86+ image: /memtest86+.bin
done

# Repeat for kernels -31 and -32 and -33, up to (but not including)
# the version listed by `uname -a`
_

Después de esto, _apt-get -f install_ solucionó mis problemas de dependencia, y todo estaba bien con el mundo.

Sin embargo, no aceptaré esta respuesta mía, ya que todavía necesito saber si debería aumentar mi tamaño de _/boot_ o hacer algo más.

19
Phrogz

Puede dejar de usar una partición separada/de arranque, entonces no tendrá un espacio tan limitado allí. Para hacer esto, desmonte la partición, luego móntela en otro lugar y copie todos los archivos allí en el directorio/boot en su partición raíz, luego elimine la entrada de/etc/fstab y reinstale grub. Por ejemplo (necesitará usar la partición correcta):

Sudo -s
umount /boot
mount /dev/sda2 /mnt
cp -a /mnt/* /boot/
umount /mnt
gedit /etc/fstab
grub-install /dev/sda

Luego puede usar gparted para eliminar la partición antigua/de arranque, y posiblemente extender la partición raíz para usar ese espacio. Para extender la partición raíz, deberá iniciar desde el livecd, y el espacio libre debe estar inmediatamente a la derecha. Si la partición/boot está actualmente a la izquierda de la partición raíz, primero deberá mover la partición raíz a la izquierda, luego extenderla, pero esto puede llevar mucho, mucho tiempo, por lo que puede no valer la pena. problema.

15
psusi

Tomando lo mejor de las respuestas anteriores, mi enfoque probado es el siguiente:

  • uname -a para encontrar el kernel en ejecución.
  • dpkg -l linux-{headers,image}-\* | grep ^ii para enumerar todos los paquetes relacionados con el kernel actualmente instalados. Esto incluirá el núcleo en ejecución.
  • Sudo apt-get purge linux-{image,headers}-3.16.0-{xx,yy,zz} para eliminar los núcleos antiguos. Reemplace xx,yy,zz con una lista de las compilaciones del kernel que desea eliminar: estas son todas las compilaciones enumeradas por el comando anterior que son más antiguas que el kernel actualmente en ejecución. Asegúrese de no eliminar el kernel que se está ejecutando actualmente; su sistema no se podrá iniciar. También es posible que deba cambiar la versión del kernel de 3.16.0 a la que esté instalada en su sistema.
  • Opcionalmente, realice un Sudo apt-get autoremove adicional; esto eliminará las dependencias sobrantes de los núcleos antiguos que ya no necesita el actual, liberando más espacio.

Es posible que tenga archivos de encabezado sin instalar versiones coincidentes del kernel, o viceversa, solo incluya todas estas versiones en el comando. APT se quejará de que algunos paquetes no se pueden eliminar porque no están instalados, pero eso no hará daño.

Si algo falla ...

  • Si el comando apt falla debido a un error no queda espacio en el dispositivo , use el comando dpkg correspondiente en su lugar: Sudo dpkg --purge linux-{image,headers}-3.16.0-{xx,yy,zz}.
  • Si el comando dpkg aún no funciona porque los paquetes linux-image son requeridos por los paquetes linux-headers de la misma versión (que también desea desinstalar), es posible que dpkg no haya podido resolverlo. Vuelva a examinar la salida de dpkg -l y especifique cualquier sufijo de nombre de paquete en la línea de comando. Por ejemplo, en uno de mis sistemas, el comando que finalmente funcionó fue Sudo dpkg --purge linux-{image,headers}-3.16.0-{xx,yy,zz}-generic-pae.
  • Si obtiene algún otro error, busque ayuda, es posible que tenga un problema diferente de lo que pensaba.
6
user149408

Listar todos los núcleos:

dpkg --list 'linux-image*'

Mostrar el kernel actual:

uname -r

Liste todos los núcleos EXCEPTO actual:

dpkg -l linux-{image,headers}-"[0-9]*" | awk '/^ii/{ print $2}' | grep -v -e `uname -r | cut -f1,2 -d"-"` | grep -e '[0-9]'

Asegúrese de que su núcleo actual no esté en esa lista.

Eliminar todos los núcleos EXCEPTO actual:

dpkg -l linux-{image,headers}-"[0-9]*" | awk '/^ii/{ print $2}' | grep -v -e `uname -r | cut -f1,2 -d"-"` | grep -e '[0-9]' | xargs Sudo apt-get -y purge

Borrar otras cosas:

Sudo apt-get autoremove

Si aún le da un error de espacio en el disco de arranque para instalar/desinstalar archivos, elimine directamente una de las imágenes ANTIGUA del directorio/boot,

ls -lh /boot/*-3.13.0-119*;

rm /boot/*-3.13.0-119*; 

NOTA: Revise la imagen actual del kernel nuevamente antes de eliminar cualquier imagen.

4
Hemant Thorat

Para mí, ambos apt-get purge y dpkg --remove ambos fallaron. Así que tuve que eliminar un par de imágenes antiguas del núcleo de/boot con rm -f.

4
orkoden

Ya eliminé los paquetes antiguos del kernel (linux-headers ...)

linux-headers-* no son núcleos. Los paquetes de kernel son los llamados linux-image-*. Los llamados linux-headers-* son paquetes de desarrollo para compilar módulos del kernel: no viven en el directorio/boot y no son necesarios para el uso general del día a día de su sistema.

Los archivos que enumeró en/boot do incluyen varias imágenes antiguas del kernel (vmlinuz*) e imágenes initrd compiladas (initrd.img*) para esos núcleos, lo cual es una indicación de que todavía tiene muchos paquetes antiguos de kernel instalados.

Debería poder enumerar sus núcleos instalados con

aptitude search ~ilinux-image

(Tenga en cuenta que esto probablemente devolverá paquetes que no sean núcleos también).

Por lo general, no es necesario instalar más de dos núcleos: el que está actualmente en uso y el anterior (como alternativa). Entonces puede comenzar a eliminar los más antiguos, uno por uno, de esta manera:

Sudo apt-get autoremove linux-image-3.2.0-23-generic

¡Asegúrese de sustituir "3.2.0-23-generic" con la versión real del núcleo que desea eliminar! Además, no elimine paquetes como linux-image-generic. Debe tener mucho cuidado de no eliminar el núcleo que se está ejecutando actualmente o no podrá arrancar (Ubuntu puede o no advertirle sobre hacerlo).

Puede encontrar su núcleo actualmente en ejecución con:

uname -r
2
thomasrutter

Demuestro que aún en 2017 esta pregunta tiene nuevos comentarios y respuestas, pero falta una respuesta que creo que es muy útil aquí:

buntu como sistema operativo de escritorio de uso diario simple no tiene ninguna razón para instalarse con una partición\boot separada y algo como esto NO ofrecerá algo a un "usuario común" ... Entonces, una solución es una instalación nueva sin\partición de arranque y de esta manera nunca tendrá ese problema

PD: Mi respuesta se puede eliminar o agregar en la respuesta aceptada ... (Creo que ayudará a algunas personas de esta manera)

1
koleygr

Tuve este problema y más cuando eliminé algunos archivos _initrd-img-xxx_ manualmente del/boot y tuve un problema que estas versiones antiguas siguen generando y completando la carpeta _/boot_. Para solucionarlo, seguí lo siguiente:

  • Eliminé la versión antigua del kernel generada manualmente para liberar espacio.
  • Estarás editando un archivo de configuración de texto como superusuario, así que pega lo siguiente en un terminal:

    _Sudo gedit /etc/initramfs-tools/update-initramfs.conf
    _
  • Localice la línea _update_initramfs=yes_ y cámbiela a _update_initramfs=no_. Guarde y salga del archivo, luego ejecute:

    _Sudo dpkg --configure -a
    _

Eso resolvió mi problema. Eso se basó en este blog

Con suerte, todo debería estar bien cuando reinicie, y luego puede intentar cambiar el no de nuevo a yes en _update-initramfs.conf_.

1
aibrahim

tilidad súper útil que borrará tu partición de arranque

git clone https://github.com/erichs/bootnukem.git
cd bootnukem
Sudo ./install.sh

Use bajo su propio riesgo, pero funcionó para mí:

Sudo bootnukem
1
Jonathan

Escribí esto script bash para purgar selectivamente los núcleos antiguos de una vez:

rm kernels real size

Todo el código bash e instrucciones están incluidos en el enlace.

0
WinEunuuchs2Unix

Hay un script de bash que escribí a continuación que hace que el proceso sea un poco más fácil de usar.

YMMV: fue hecho para Mint 14. Todavía estoy aprendiendo BASH, por lo que probablemente sea un poco torpe. Úselo bajo su propio riesgo, ¡pero funciona para mí!

#!/bin/bash

endCol='\e[0m'
bold_red='\e[1;31m'
bold_green='\e[1;32m'
bold_yellow='\e[1;33m'

title_color='\e[0;30;47m'

function show_kernel_info {
clear
current_kernel=$(uname -r)
echo "Current ACTIVE kernel is:"
echo -e "  "$bold_yellow$current_kernel$endCol
echo "This kernel will be TOTALLY EXCLUDED from all actions in this script."
echo "Also, one fallback non-active kernel will be always left untouched."
echo ""
echo "These are the non-active kernels stored in /boot:"
count_of_old_kernels_in_boot=$(ls -o /boot/initrd* | grep -c -v "$current_kernel")
if [ $count_of_old_kernels_in_boot = 0 ]; then
  echo " * No non-active kernels found! *"
else
  ls -o /boot/initrd* | grep -v "$current_kernel"
fi
echo ""
list_of_old_kernels=$(dpkg --list | grep linux-image | awk -F' ' '{ print $2 }' | grep -v "$current_kernel" | grep -v "linux-image-generic")
current_old_kernel=$(dpkg --list | grep linux-image | awk -F' ' '{ print $2 }' | grep -v "$current_kernel" | grep -v "linux-image-generic" | head -n 1)
count_of_old_kernels_installed=$(dpkg --list | grep linux-image | awk -F' ' '{ print $2 }' | grep -v "$current_kernel" | grep -c -v "linux-image-generic")
echo "Listing of all unused kernels still installed in the system (these may not exist in /boot):"
if [ $count_of_old_kernels_installed = 0 ]; then
  echo " * No unused kernel installs found! *"
else
  dpkg --list | grep linux-image | awk -F' ' '{ print $2 }' | grep -v "$current_kernel" | grep -v "linux-image-generic"
fi
echo ""
}

function exit_script {
free_space_after=$(df -BM /boot | tail -n 1 | awk -F' ' '{ print $4 }' | tr -d M)
let freed_space=$free_space_after-$free_space_before
echo ""
echo "Results (in MB)"
echo "---------------"
echo "Free space in /boot before script was run: "$free_space_before
echo "Free space now: "$free_space_after
echo ""
echo "Amount of space freed up = "$freed_space
echo ""
echo "Press any key to exit."
read -s -n 1
echo ""
exit
}

# Main code
echo ""
echo -e $title_color" --------------------------- "$endCol
echo -e $title_color" -   Kernel Cleanup v1.0   - "$endCol
echo -e $title_color" --------------------------- "$endCol
echo ""
echo "Maximise this window for readability."
echo "Press any key to continue."
read -s -n 1
echo ""
echo "This script will remove old unused kernels, but it will Prompt you before removing each one."
echo "It will never remove the current running kernel, and will also leave one fallback kernel."
echo "It can also remove source files from /usr/src for each kernel removed."
echo "This is normally safe to do and will free up lots more space."
echo ""
echo "Do you want that done as well? (y/n, enter=yes)"
valid_input=0
while [ "$valid_input" = "0" ]; do
  read -s -n 1 YesNo_input
  if [ "$YesNo_input" = "" ]; then
    YesNo_input="y"
  fi
  case $YesNo_input
  in
    y)
    RemoveSource="y"
    valid_input=1
    ;;

    Y)
    RemoveSource="y"
    valid_input=1
    ;;

    n)
    RemoveSource="n"
    valid_input=1
    ;;

    N)
    RemoveSource="N"
    valid_input=1
    ;;
  esac
done

free_space_before=$(df -h /boot | tail -n 1 | awk -F' ' '{ print $4 }' | tr -d M)
show_kernel_info
while [ $count_of_old_kernels_in_boot -gt 1 ]; do
  # failsafe check if somehow the current kernel is about to be removed!
  if [ "$current_old_kernel" = "$current_kernel" ]; then
    echo -e $bold_red"ERROR!"$endCol" Somehow the current kernel has crept into the removal process!"
    echo "I refuse to do that! Aborting script."
    exit_script
  fi
  # failsafe check if somehow a linux-image-generic entry is about to be removed
  if [ "$current_old_kernel" = "linux-image-generic" ]; then
    echo -e $bold_red"ERROR!"$endCol" Somehow one of the linux-image-generic entries has crept into the removal process!"
    echo "I refuse to do that! Aborting script."
    exit_script
  fi
  echo "Command about to be executed is:"
  echo "  $ Sudo apt-get purge \"$current_old_kernel\""
  check_in_boot=$(echo $current_old_kernel | sed 's/linux-image/initrd.img/g')
  if [ -e /boot/$check_in_boot ]; then
    echo -e $bold_yellow"Note:"$endCol" This kernel exists in /boot but it NON-active, so it's OK to remove."
  else
    echo -e $bold_green"Totally safe to remove:"$endCol" This kernel does NOT exist in /boot."
  fi
  echo ""
  echo "Are you sure you want to remove this kernel?"
  echo "(*upper case* Y=yes / any other key will exit the script)"
  read -s -n 1 yes_no
  echo ""
  # Only entering a single upper case Y will work!
  if [ "$yes_no" != "Y" ]; then
    echo "Aborting script."
    exit_script
  fi
  echo "Removing kernel "$current_old_kernel"..."
  sleep 1
  Sudo apt-get -y purge $current_old_kernel
  if [ "$RemoveSource" = "y" ]; then
    current_old_source=$(echo $current_old_kernel | sed 's/linux-image/linux-headers/g')
    current_old_source=$(echo $current_old_source | sed 's/-generic//g')
    current_old_source=$(echo $current_old_source | sed 's/-pae//g')
    Sudo apt-get -y purge $current_old_source
  fi
  show_kernel_info
done

if [ $count_of_old_kernels_in_boot = 0 ]; then
  echo -e $bold_red"There are no NON-active kernels to remove!"$endCol
else
  echo -e $bold_red"There is only one NON-active kernel left in /boot!"$endCol
  echo "This script will not remove the last non-active kernel so that you have at least one backup kernel."
fi
echo "Aborting script."
exit_script
0
wibbynut

[Como un novato de AskUbuntu no puedo comentar hasta reputación = 50, así que no voten por esto.]

Mi servidor también estaba haciendo esto. Literalmente, ninguna de las respuestas esperadas aquí funcionó, ya que requieren un poco de espacio de trabajo en/arranque para que se completen. Si la partición de arranque está llena, finalizará abruptamente sin eliminar ninguna de las imágenes.

Lo único que funcionó para mí fue revisar la imagen actual, luego Sudo rm filename manualmente para los archivos de imagen más antiguos (cada uno tenía - 3.16.0- en sus nombres). Una vez hecho eso, entonces Sudo apt-get autoremove tuvo el margen de maniobra que necesitaba para hacer su trabajo. Destacó algunos errores asociados con esa versión, por ejemplo: "depmod: FATAL: no se pudo cargar /boot/System.map-3.16.0-30-generic: No existe dicho archivo o directorio", pero eso es de esperar.

Cuando terminó, df devolvió un 42% en uso para/boot para indicar que está sano nuevamente.

0
Justin Case

/ partición de arranque puede ser un poco extraño a veces

no comience directamente a eliminar archivos kernal.

Pasos a seguir

  1. Verifique el kernel instalado actualmente utilizado por el sistema Linux

    uname -r

    esto debería darle el nombre de la imagen kernal instalada actualmente en el sistema

  2. Ahora comience a eliminar archivos adicionales, excepto el específico instalado en su sistema

    apt-get remove linux-image-XXXXX

  3. También elimine el archivo de encabezado también

    apt-get remove linux-headers-XXXXX

  4. También puede haber una condición donde apt ha dejado de funcionar, en ese caso cambie a/boot

    cd /boot

  5. Comience a eliminar archivos manualmente, pero con mucho cuidado, tenga en cuenta no eliminar los archivos kernel installed one's de su sistema.

    rm linux-image-XXXXX

    rm linux-image-extra-XXXXXX

  6. Después de eliminar los archivos correctos, las instalaciones parciales de limpieza si las hay

    apt-get -f install

  7. Elimine los archivos adicionales que se encuentran allí como archivos de arranque limpiados manualmente

    apt-get autoremove

  8. Actualizar grub

    update-grub

  9. Por último, actualice los paquetes de su sistema

    apt-get update

0
user225

En aptitude o synaptic hay una sección "empaquetado viejo o instalado manualmente". Debería haber los viejos paquetes de Linux allí.

0
Martin Ueding

Guarde este script como /usr/local/bin/remove_kernels.sh (recuerde otorgar permisos de ejecución Sudo chmod 755 /usr/local/bin/remove_kernels.sh):

#!/bin/sh
if test $(id -u) != 0; then
 echo Error: You must be root to run this script!
 exit 1
fi
apt purge $( dpkg --list | grep -P -o "linux-image-\d\S+" | grep -v $(uname -r | grep -P -o ".+\d") )
update-grub

Luego, para eliminar todos los núcleos antiguos, simplemente escriba: Sudo remove_kernels.sh

0
Anthony Kelly