Recibí un mensaje de error que explica que mi / boot está lleno. intentar limpiar los archivos de imagen antiguos siempre parece fallar debido a errores de disco lleno o errores de dependencia. ¿Podría alguien explicarme dónde me estoy equivocando?
$ sudo apt-get autoremove
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run ‘apt-get -f install’ to correct these.
The following packages have unmet dependencies.
linux-image-extra-3.13.0-44-generic : Depends: linux-image-3.13.0-44-generic but it is not installed
linux-image-extra-3.13.0-45-generic : Depends: linux-image-3.13.0-45-generic but it is not installed
linux-image-generic : Depends: linux-image-3.13.0-45-generic but it is not installed
E: Unmet dependencies. Try using -f.
$ ls /boot
abi-3.13.0-32-generic initrd.img-3.13.0-43-generic
abi-3.13.0-36-generic lost+found
abi-3.13.0-37-generic memtest86+.bin
abi-3.13.0-39-generic memtest86+.elf
abi-3.13.0-40-generic memtest86+_multiboot.bin
abi-3.13.0-43-generic System.map-3.13.0-32-generic
config-3.13.0-32-generic System.map-3.13.0-36-generic
config-3.13.0-36-generic System.map-3.13.0-37-generic
config-3.13.0-37-generic System.map-3.13.0-39-generic
config-3.13.0-39-generic System.map-3.13.0-40-generic
config-3.13.0-40-generic System.map-3.13.0-43-generic
config-3.13.0-43-generic vmlinuz-3.13.0-32-generic
grub vmlinuz-3.13.0-36-generic
initrd.img-3.13.0-32-generic vmlinuz-3.13.0-37-generic
initrd.img-3.13.0-36-generic vmlinuz-3.13.0-39-generic
initrd.img-3.13.0-37-generic vmlinuz-3.13.0-40-generic
initrd.img-3.13.0-39-generic vmlinuz-3.13.0-43-generic
initrd.img-3.13.0-40-generic
solía
kernelver=$(uname -r | sed -r 's/-[a-z]+//')
dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve $kernelver
Llegar
linux-headers-3.13.0-32
linux-headers-3.13.0-32-generic
linux-headers-3.13.0-36
linux-headers-3.13.0-36-generic
linux-headers-3.13.0-37
linux-headers-3.13.0-37-generic
linux-headers-3.13.0-39
linux-headers-3.13.0-39-generic
linux-headers-3.13.0-40
linux-headers-3.13.0-40-generic
linux-headers-3.13.0-44
linux-headers-3.13.0-44-generic
linux-headers-3.13.0-45
linux-headers-3.13.0-45-generic
linux-image-3.13.0-32-generic
linux-image-3.13.0-36-generic
linux-image-3.13.0-37-generic
linux-image-3.13.0-39-generic
linux-image-3.13.0-40-generic
Luego, elige la primera imagen para eliminar
$ sudo apt-get purge linux-image-3.13.0-32-generic
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies.
linux-image-extra-3.13.0-32-generic : Depends: linux-image-3.13.0-32-generic but it is not going to be installed
linux-image-extra-3.13.0-44-generic : Depends: linux-image-3.13.0-44-generic but it is not going to be installed
linux-image-extra-3.13.0-45-generic : Depends: linux-image-3.13.0-45-generic but it is not going to be installed
linux-image-generic : Depends: linux-image-3.13.0-45-generic but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
boot
package-management
disk-usage
Philip Howard
fuente
fuente
sudo apt-get autoremove
yls /boot
.uname -r
comando para averiguar la versión actual de su núcleo e intente eliminar un núcleo que no sea ese.Respuestas:
En tal caso, usaría la
dpkg
herramienta para forzar la eliminación de algunos paquetes del núcleo. Esto no se sugiere para uso común y es un poco peligroso , pero en tal caso con dependencias insatisfechas podría ayudar.En primer lugar, ubique el núcleo en el que se inicia el sistema. El que está cargado actualmente. Abra una terminal (CTRL + ALT + T) y emita el siguiente comando
Le mostrará el núcleo cargado, NO debe intentar eliminar este.
Luego emita el comando
devolverá todas las imágenes instaladas. Elija uno o dos e intente eliminarlos. Intenta forzarlos a eliminarlos / purgarlos. Por ejemplo
Puede hacer lo mismo con otras imágenes para liberar espacio.
Luego puede intentar instalar los paquetes que faltan, o
para intentar resolver las dependencias.
Finalmente, emita el comando "limpiar núcleos antiguos"
El comando anterior eliminará TODOS los núcleos, excepto el que está cargado actualmente.
Debido a que tiene una partición separada / de arranque, tenga en cuenta que necesitará rastrear su espacio y limpiar a menudo (la frecuencia depende del espacio de / arranque)
fuente
dpkg
, tuve que corrersudo apt-get -f autoremove
para llegarapt-get
a dejar de quejarse de las dependencias no satisfechas. De lo contrario,sudo apt-get -f install
aparentemente seguí intentando reinstalar todas las imágenes del kernel con las que había eliminadodpkg
, que obviamente solo se/boot
volvieron a llenar .apt-get -f autoremove
forzada y el comentario anterior en @mdunsmuir, todavía quiere instalar todos los núcleos antiguos durante cualquiera de las operaciones de limpieza anteriores. ¿Hay alguna manera de decirle que ignore las dependencias no relacionadas y elimine un solo núcleo antiguo completo?sudo dpkg --force-all -P linux-image-extra-3.13.0-32-generic
. De lo contrario, estos extras aún dependen de la imagen real y la-f
bandera hará que la imagen se reinstale y luego se quede sin espacio en disco.Esto es lo que funcionó para mí en Ubuntu 16.04.
fuente
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:
fuente