¿Cuál es la forma más segura de limpiar / arrancar particiones?

256

Tengo 200 MB asignados para la partición /boot . Cada vez que intento actualizar el kernel, recibo un mensaje de error que básicamente dice que /boot está lleno.

¿Qué puedo hacer para limpiar /boot y eliminar / hacer copias de seguridad de los núcleos anteriores?

    
pregunta koba101 14.09.2013 - 21:41

7 respuestas

311

Método de línea de comando:

Primero verifique la versión de su kernel, por lo que no eliminará la imagen del kernel en uso, ejecutándose:

uname -r

Ahora ejecute este comando para obtener una lista de los kernels instalados:

dpkg --list 'linux-image*' | grep ^ii

y borre los kernels que no quiere / necesita más ejecutando esto:

sudo apt-get remove linux-image-VERSION

Reemplaza VERSIÓN con la versión del kernel que quieras eliminar.

Cuando termine de eliminar los núcleos anteriores, puede ejecutar esto para eliminar paquetes que ya no necesitará:

sudo apt-get autoremove

Y finalmente puede ejecutar esto para actualizar la lista del kernel de grub:

sudo update-grub
    
respondido por el PeppeDAlterio 14.09.2013 - 22:34
251

NOTA: esto es solo si no puede usar apt para limpiar debido a un 100% de carga / arranque

Si apt-get no funciona porque tu / boot está al 100%, primero tendrás que limpiar / arrancar. Es probable que esto haya atrapado una actualización del kernel en una instalación parcial, lo que significa que apt se ha congelado por completo y seguirá pidiéndote que ejecutes apt-get -f install aunque ese comando siga fallando.

Obtenga la lista de imágenes del kernel y determine de qué puede prescindir. Este comando mostrará kernels instalados excepto el que se ejecuta actualmente sudo dpkg --list 'linux-image*'|awk '{ if (=="ii") print }'|grep -v 'uname -r' . Tenga en cuenta las dos versiones más nuevas en la lista. No necesita preocuparse por la ejecución ya que no está en la lista aquí. Puedes verificar eso con uname -r .

Crea un comando para eliminar todos los archivos en / boot para los kernels que no te importan usando la expansión de llaves para mantenerte sano. Recuerde excluir las imágenes actuales y las dos más recientes del kernel. Ejemplo: sudo rm -rf /boot/*-3.2.0-{23,45,49,51,52,53,54,55}-* . También puede usar un rango con la sintaxis {80..84}.

sudo apt-get -f install para limpiar lo que está volviendo loco acerca de una instalación parcial.

Si se encuentra con un error que incluye una línea como "Error interno: no se pudo encontrar la imagen (/boot/vmlinuz-3.2.0-56-generic)", ejecute el comando sudo apt-get purge linux-image-3.2.0-56-generic (con su versión adecuada) ).

Finalmente, sudo apt-get autoremove para borrar los viejos paquetes de imágenes del kernel que han quedado huérfanos por el arranque manual.

Sugerencia, ejecute sudo apt-get update y sudo apt-get upgrade para encargarse de las actualizaciones que puedan haberse copiado mientras esperaba que descubriera la partición completa / de arranque.

Sugerencia2, revise enlace y considere configurar Unattended-Upgrade :: Remove-Unused-Dependencies en true en / etc / apt / apt.conf.d / 50unattended-upgrades. Esto será el equivalente a ejecutar la retirada automática después de cada actualización de seguridad para asegurarse de que limpia los núcleos no utilizados, pero también eliminará otras cosas que cree que no se utilizarán y le evitará este problema en el futuro.

    
respondido por el flickerfly 07.03.2014 - 17:54
43

Hay documentación sobre esto en enlace

En resumen: use

sudo apt-get autoremove --purge
# and/or:
sudo purge-old-kernels

La herramienta purge-old-kernels se puede instalar a través de sudo apt install byobu . Aquí está la descripción de su página de manual:

  

Este programa eliminará paquetes viejos de núcleo y encabezado del   sistema, liberando espacio en el disco. Nunca eliminará el actual   kernel en ejecución Por defecto, mantendrá al menos los últimos 2 núcleos,   pero el usuario puede anular ese valor usando el parámetro --keep .

Si desea una solución de copiar y pegar, ReSearchIT Eng sugirió lo siguiente:

sudo apt install -y byobu
sudo purge-old-kernels -y --keep 1
sudo apt-get -y autoremove --purge
    
respondido por el peq 09.08.2016 - 11:12
6

Descubrí que es mucho más fácil abandonar la pequeña partición y mover /boot a la raíz. Esto también evita cualquier problema de falta de espacio en el futuro.

Primero mueve tus datos de la partición de inicio a la raíz (ejecuta como sudo -s ):

cp -a /boot /boot2
umount /boot
rmdir /boot
mv /boot2 /boot

Eliminar (o comentar) la entrada /boot en /etc/fstab :

vim /etc/fstab

Actualiza grub y asegúrate de que todo sea correcto:

update-grub

apt ahora debería poder actualizar sin problemas.

Esto deja una partición de 200 MB sin usar (que podrías usar para otra cosa si crees que vale la pena).

    
respondido por el laktak 14.04.2017 - 09:43
3

Eliminar kernels viejos (para liberar espacio en / boot) ver: enlace

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

Luego ejecuta

sudo apt-get update
    
respondido por el Amos Folarin 14.08.2017 - 16:09
2

sudo apt-get autoremove

Esto elimina todos los últimos 2 núcleos. Probado en Ubuntu 16.04 LTS cuando /boot estaba al 100% de su capacidad y apt-get upgrade falló, es la última actualización del kernel. El autoremove del kernel es iterativo, por lo que si tienes varios núcleos, se eliminarán de uno en uno. Así que sé paciente.

    
respondido por el DeepSpace101 03.10.2017 - 18:39
0

¿Por qué hacerlo a mano cuando puedes hacerlo con una herramienta? Sabes que vas a necesitarlo de nuevo en 30 segundos, porque les lleva 30 segundos enviar una nueva actualización de Kernal estos días = P

Recomiendo usar esta herramienta, bootnukem

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

Entonces

sudo bootnukem --dry-run

Eliminar --dry-run una vez que confirme que parece seguro

    
respondido por el Jonathan 04.05.2017 - 19:28

Lea otras preguntas en las etiquetas