Mi /boot
partición está casi llena y recibo una advertencia cada vez que reinicio mi sistema. Ya eliminé los paquetes antiguos del kernel (linux-headers ...), en realidad lo hice para instalar una versión más nueva del kernel 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 /boot
partición:
:~$ 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 3.0.0-14-generic
kernel.
boot
hard-drive
filesystem
disk-usage
init
usuario6722
fuente
fuente
Respuestas:
Tienes muchos núcleos sin usar. Elimine todos los núcleos excepto los últimos con:
Esta es la abreviatura de:
Al eliminar el
linux-image-x.x.x-x
paquete también se eliminarálinux-image-x.x.x-x-generic
.Los encabezados se instalan
/usr/src
y se utilizan al construir módulos de kernel fuera del árbol (como el controlador 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:
Un comando para mostrar todos los núcleos y encabezados que se pueden eliminar, excluyendo el núcleo actual en ejecución:
Selecciona todos los paquetes nombrados comenzando con
linux-headers-<some number>
olinux-image-<some number>
, imprime los nombres de paquete para los paquetes instalados y luego excluye el kernel cargado / en ejecución actual (¡no necesariamente el kernel más reciente !). 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:
fuente
uname -a
. Probablemente sea mejor asegurarse de que no tiene un reinicio pendiente para instalar-nuevo-kernel pendiente (como lo hice yo, pero noté la falta de coincidencia entreuname -a
y el "último" kernel).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 una publicación de blog que le mostrará cómo borrar las imágenes antiguas del kernel con un comando. Daré una sinopsis básica del método. Use este comando para imprimir la versión actual de su núcleo:
Luego use este comando para imprimir todos los núcleos que ha instalado que no son su núcleo más nuevo:
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:
Ahora podemos hacer todo lo que queramos combinando estos dos últimos comandos en este lío impío:
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.
fuente
Este comando está haciendo el trabajo automáticamente.
fuente
Synaptic Package Manager se puede usar para seleccionar y eliminar fácilmente imágenes antiguas del núcleo.
Si aún no tiene Synaptic instalado:
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
/boot
carpeta ahora debería estar un poco más ordenada.fuente
/boot
!Gracias por su publicación detallada de su problema, esto me llevó en la dirección correcta. Aunque es útil mantener los archivos del kernel anteriores, puede eliminarlos de una sola vez, consulte esta publicación:
Cómo eliminar 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:
fuente
Esta es una nueva respuesta a una pregunta anterior, pero una manera fácil de limpiar esto (y más) es instalar Ubuntu Tweak . Para instalarlo :
entonces puedes ejecutar Ubuntu Tweak, yendo a la pestaña "conserje", y desde aquí es cuestión de tres clics:
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 el caché de miniaturas o el caché de TB, el sistema tendrá que reconstruirlos si es necesario.
fuente
Pude solucionar el problema usando
dpkg
para eliminar los paquetes directamente. Aunque los paquetes todavía se enumerandpkg -l
, los archivos se eliminan/boot
, liberando espacio.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
/boot
tamaño o hacer algo más.fuente
sudo dpkg --remove linux-headers-3.5.0-28*
sudo dpkg --remove linux-image-3.5.0-28*
para la imagen, revisada víadf -h
apt-get -f install
. Además, no te olvides de hacerlo más tardeapt-get autoremove
, para eliminar posiblemente otros innecesarios.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):
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.
fuente
lsblk
puede usarse para determinar qué partición es qué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 viejos núcleos. Reemplacexx,yy,zz
con una lista de las compilaciones del núcleo que desea eliminar: estas son todas las compilaciones enumeradas por el comando anterior que son más antiguas que el núcleo 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 kernel3.16.0
a la que esté instalada en su sistema.sudo apt-get autoremove
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 ...
sudo dpkg --purge linux-{image,headers}-3.16.0-{xx,yy,zz}
.linux-image
paquetes son requeridos por loslinux-headers
paquetes de la misma versión (que también desea desinstalar), es posible que dpkg no haya podido resolverlo. Vuelva a examinar la salida dedpkg -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ó fuesudo dpkg --purge linux-{image,headers}-3.16.0-{xx,yy,zz}-generic-pae
.fuente
/boot
, pero no lo suficiente para otro paquete de kernel. En esos casos, lo anterior ha funcionado bien. Sin embargo, siéntase libre de agregar eldpkg
comando correspondiente . En cuanto apurge
, no, no es una especie de "eliminación forzada". Lo que hace, de manera diferenteremove
, es que también elimina los archivos de configuración. Desde / mientras los paquetes del kernel no instalen archivos de configuración,remove
ypurge
harán lo mismo para los paquetes del kernel.Para mí ambos
apt-get purge
ydpkg --remove
ambos fallaron. Así que tuve que borrar un par de imágenes del núcleo de mayor edad del / de arranque conrm -f
.fuente
/boot
partición estaba llena. Estos comandos intentan primero actualizar el kernel a reciente y bloquearseNo space left on device
mientras se generainitrd.img
Listar todos los núcleos:
Mostrar el kernel actual:
Listar todos los núcleos, EXCEPTO el actual:
Asegúrese de que su núcleo actual no esté en esa lista.
Eliminar todos los núcleos EXCEPTO el actual:
Borrar otras cosas:
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 VIEJAS del directorio / boot,
NOTA: Revise la imagen actual del kernel nuevamente antes de eliminar cualquier imagen.
fuente
linux-headers-*
No son granos. Los paquetes de kernel son los nombradoslinux-image-*
. Los nombradoslinux-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 se encuentran en / boot hacen incluir varias imágenes del núcleo de edad (
vmlinuz*
) y las imágenes initrd compilados (initrd.img*
) para los granos, lo cual es una indicación de que todavía tiene una gran cantidad de paquetes del núcleo viejos instalados.Debería poder enumerar sus núcleos instalados con
(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:
¡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:
fuente
Tuve este problema y más, ya que eliminé algunos
initrd-img-xxx
archivos manualmente del / boot y tuve un problema que estas versiones antiguas siguen generando y llenando la/boot
carpeta. Para solucionarlo, seguí lo siguiente:Estarás editando un archivo de configuración de texto como superusuario, así que pega lo siguiente en un terminal:
Localice la línea
update_initramfs=yes
y cámbiela aupdate_initramfs=no
. Guarde y salga del archivo, luego ejecute:Eso resolvió mi problema. Eso se basó en este blog
Con suerte, todo debería estar bien cuando se reinicie, y más tarde se puede intentar cambiar el
no
regreso ayes
enupdate-initramfs.conf
.fuente
Demuestro que aún en 2017 esta pregunta tiene nuevos comentarios y respuestas, pero falta una respuesta que creo que es muy útil aquí:
Ubuntu como sistema operativo de escritorio de uso cotidiano simple no tiene ninguna razón para instalarse con una partición \ boot separada y algo así NO ofrecerá algo a un "usuario común" ... Entonces, una solución es una instalación nueva sin \ partición boot y esto de manera que nunca tendrás ese problema
PD: Mi respuesta se puede eliminar o agregar en la respuesta aceptada ... (Creo que ayudará a algunas personas de esta manera)
fuente
Utilidad súper útil que limpiará tu partición de arranque
Use bajo su propio riesgo, pero funcionó para mí:
fuente
En aptitude o synaptic hay una sección "empaquetado viejo o instalado manualmente". Debería haber los viejos paquetes de Linux allí.
fuente
Hay un script 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í!
fuente
[Como un novato de AskUbuntu no puedo comentar hasta reputación = 50, así que no desestimes 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
buscar manualmente los archivos de imagen más antiguos (cada uno tenía -3.16.0-30 en sus nombres). Una vez hecho eso,sudo apt-get autoremove
tenía 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.fuente
apt-get
tiene suficiente espacio para continuar, y b), dondeapt-get
falla porque el disco está demasiado lleno. Esa es la otra publicación.Escribí este script bash para purgar selectivamente los núcleos antiguos de una vez:
Todo el código bash e instrucciones están incluidos en el enlace.
fuente
Guarde este script como
/usr/local/bin/remove_kernels.sh
(recuerde otorgar permisos de ejecuciónsudo chmod 755 /usr/local/bin/remove_kernels.sh
):Luego, para eliminar todos los núcleos antiguos, simplemente escriba:
sudo remove_kernels.sh
fuente
/ partición de arranque puede ser un poco extraño a veces
no comience directamente a eliminar archivos kernal.
Pasos a seguir
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
Ahora comience a eliminar archivos adicionales, excepto el específico instalado en su sistema
apt-get remove linux-image-XXXXX
También elimine el archivo de encabezado también
apt-get remove linux-headers-XXXXX
También puede haber una condición en la que
apt
ha dejado de funcionar, en ese caso, cambie a / bootcd /boot
Comience a eliminar archivos manualmente, pero con mucho cuidado, tenga en cuenta no eliminar los
installed one's
archivos kernal de su sistema.rm linux-image-XXXXX
rm linux-image-extra-XXXXXX
Después de eliminar los archivos correctos, las instalaciones parciales de limpieza, si las hay
apt-get -f install
Elimine los archivos adicionales que se encuentran allí como archivos de arranque limpiados manualmente
apt-get autoremove
Actualizar grub
update-grub
Por último, actualice los paquetes de su sistema
apt-get update
fuente
Si no puede eliminar más archivos no utilizados y si tiene otra partición con / o espacio libre en el mismo dispositivo, puede cambiar el tamaño de la partición / boot por parted / gparted . (También se incluye en los medios de instalación).
Advertencia : cambiar el tamaño de la partición es una operación peligrosa , ¡guarde sus datos importantes en otros medios antes de hacerlo!
fuente