Невозможно удалить старые ядра с диска полной загрузки

Я не могу установить или обновить какое-либо программное обеспечение на моей машине.

Используя мои невероятные способности логического вывода, я понял, что / boot был полон и вызывал всю мою душевную боль.

notlinus @ NS0: / boot $ df -h

Filesystem                Size  Used Avail Use% Mounted on
udev                      2.0G  4.0K  2.0G   1% /dev
tmpfs                     396M  656K  395M   1% /run
/dev/mapper/NS0--vg-root   36G  3.6G   30G  11% /
none                      4.0K     0  4.0K   0% /sys/fs/cgroup
none                      5.0M     0  5.0M   0% /run/lock
none                      2.0G     0  2.0G   0% /run/shm
none                      100M     0  100M   0% /run/user
/dev/sda1                 236M  234M     0 100% /boot

notlinus @ NS0: / boot $ ls -l

total 229780
-rw-r--r-- 1 root root  1270654 Aug 12  2015 abi-3.19.0-26-generic
-rw-r--r-- 1 root root  1271100 Sep  1  2015 abi-3.19.0-28-generic
-rw-r--r-- 1 root root  1271518 Oct  3 00:54 abi-3.19.0-30-generic
-rw-r--r-- 1 root root  1271689 Oct  8 13:01 abi-3.19.0-31-generic
-rw-r--r-- 1 root root  1271689 Oct 22 13:14 abi-3.19.0-32-generic
-rw-r--r-- 1 root root  1271689 Nov  6 20:39 abi-3.19.0-33-generic
-rw-r--r-- 1 root root  1271691 Nov 23 16:57 abi-3.19.0-37-generic
-rw-r--r-- 1 root root   177632 Aug 12  2015 config-3.19.0-26-generic
-rw-r--r-- 1 root root   177651 Sep  1  2015 config-3.19.0-28-generic
-rw-r--r-- 1 root root   177730 Oct  3 00:54 config-3.19.0-30-generic
-rw-r--r-- 1 root root   177790 Oct  8 13:01 config-3.19.0-31-generic
-rw-r--r-- 1 root root   177790 Oct 22 13:14 config-3.19.0-32-generic
-rw-r--r-- 1 root root   177790 Nov  6 20:39 config-3.19.0-33-generic
-rw-r--r-- 1 root root   177790 Nov 23 16:57 config-3.19.0-37-generic
drwxr-xr-x 5 root root     1024 Feb 17 13:47 grub
-rw-r--r-- 1 root root 20754747 Aug 27  2015 initrd.img-3.19.0-26-generic
-rw-r--r-- 1 root root 20753554 Sep  9 06:29 initrd.img-3.19.0-28-generic
-rw-r--r-- 1 root root 20756217 Oct  6 07:03 initrd.img-3.19.0-30-generic
-rw-r--r-- 1 root root 20758684 Oct 22 13:04 initrd.img-3.19.0-31-generic
-rw-r--r-- 1 root root 20757000 Nov  5 06:55 initrd.img-3.19.0-32-generic
-rw-r--r-- 1 root root 20758873 Nov 10 07:17 initrd.img-3.19.0-33-generic
-rw-r--r-- 1 root root 20757964 Dec  2 06:54 initrd.img-3.19.0-37-generic
-rw-r--r-- 1 root root  3463561 Feb 17 13:46 initrd.img-3.19.0-39-generic
-rw-r--r-- 1 root root  3463563 Feb 17 13:47 initrd.img-3.19.0-42-generic
drwx------ 2 root root    12288 Aug 27  2015 lost+found
-rw-r--r-- 1 root root   176500 Mar 12  2014 memtest86+.bin
-rw-r--r-- 1 root root   178176 Mar 12  2014 memtest86+.elf
-rw-r--r-- 1 root root   178680 Mar 12  2014 memtest86+_multiboot.bin
-rw------- 1 root root  3626965 Aug 12  2015 System.map-3.19.0-26-generic
-rw------- 1 root root  3626779 Sep  1  2015 System.map-3.19.0-28-generic
-rw------- 1 root root  3627906 Oct  3 00:54 System.map-3.19.0-30-generic
-rw------- 1 root root  3628177 Oct  8 13:01 System.map-3.19.0-31-generic
-rw------- 1 root root  3628149 Oct 22 13:14 System.map-3.19.0-32-generic
-rw------- 1 root root  3628149 Nov  6 20:39 System.map-3.19.0-33-generic
-rw------- 1 root root  3628776 Nov 23 16:57 System.map-3.19.0-37-generic
-rw------- 1 root root  6570192 Aug 12  2015 vmlinuz-3.19.0-26-generic
-rw------- 1 root root  6568848 Sep  1  2015 vmlinuz-3.19.0-28-generic
-rw------- 1 root root  6572496 Oct  3 00:54 vmlinuz-3.19.0-30-generic
-rw------- 1 root root  6572336 Oct  8 13:01 vmlinuz-3.19.0-31-generic
-rw------- 1 root root  6572944 Oct 22 13:14 vmlinuz-3.19.0-32-generic
-rw------- 1 root root  6572432 Nov  6 20:39 vmlinuz-3.19.0-33-generic
-rw------- 1 root root  6571920 Nov 23 16:57 vmlinuz-3.19.0-37-generic

notlinus @ NS0: / boot $ uname -r

3.19.0-37-generic

notlinus @ NS0: ~ $ sudo apt-get clean

notlinus @ NS0: / boot $ 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.19.0-49-generic : Depends: linux-image-3.19.0-49-generic but it is not installed
 linux-image-generic-lts-vivid : Depends: linux-image-3.19.0-49-generic but it is not installed
                                 Recommends: thermald but it is not installed
E: Unmet dependencies. Try using -f.

notlinus @ NS0: / boot $ sudo dpkg --list 'linux-image*'

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                Version                Architecture           Description
+++-===================================-======================-======================-===========================================================================
un  linux-image                         <none>                 <none>                 (no description available)
un  linux-image-3.0                     <none>                 <none>                 (no description available)
rc  linux-image-3.19.0-25-generic       3.19.0-25.26~14.04.1   amd64                  Linux kernel image for version 3.19.0 on 64 bit x86 SMP
ii  linux-image-3.19.0-26-generic       3.19.0-26.28~14.04.1   amd64                  Linux kernel image for version 3.19.0 on 64 bit x86 SMP
ii  linux-image-3.19.0-28-generic       3.19.0-28.30~14.04.1   amd64                  Linux kernel image for version 3.19.0 on 64 bit x86 SMP
ii  linux-image-3.19.0-30-generic       3.19.0-30.34~14.04.1   amd64                  Linux kernel image for version 3.19.0 on 64 bit x86 SMP
ii  linux-image-3.19.0-31-generic       3.19.0-31.36~14.04.1   amd64                  Linux kernel image for version 3.19.0 on 64 bit x86 SMP
ii  linux-image-3.19.0-32-generic       3.19.0-32.37~14.04.1   amd64                  Linux kernel image for version 3.19.0 on 64 bit x86 SMP
ii  linux-image-3.19.0-33-generic       3.19.0-33.38~14.04.1   amd64                  Linux kernel image for version 3.19.0 on 64 bit x86 SMP
ii  linux-image-3.19.0-37-generic       3.19.0-37.42~14.04.1   amd64                  Linux kernel image for version 3.19.0 on 64 bit x86 SMP
in  linux-image-3.19.0-39-generic       <none>                 amd64                  (no description available)
in  linux-image-3.19.0-42-generic       <none>                 amd64                  (no description available)
in  linux-image-3.19.0-49-generic       <none>                 amd64                  (no description available)
rc  linux-image-extra-3.19.0-25-generic 3.19.0-25.26~14.04.1   amd64                  Linux kernel extra modules for version 3.19.0 on 64 bit x86 SMP
ii  linux-image-extra-3.19.0-26-generic 3.19.0-26.28~14.04.1   amd64                  Linux kernel extra modules for version 3.19.0 on 64 bit x86 SMP
ii  linux-image-extra-3.19.0-28-generic 3.19.0-28.30~14.04.1   amd64                  Linux kernel extra modules for version 3.19.0 on 64 bit x86 SMP
ii  linux-image-extra-3.19.0-30-generic 3.19.0-30.34~14.04.1   amd64                  Linux kernel extra modules for version 3.19.0 on 64 bit x86 SMP
ii  linux-image-extra-3.19.0-31-generic 3.19.0-31.36~14.04.1   amd64                  Linux kernel extra modules for version 3.19.0 on 64 bit x86 SMP
ii  linux-image-extra-3.19.0-32-generic 3.19.0-32.37~14.04.1   amd64                  Linux kernel extra modules for version 3.19.0 on 64 bit x86 SMP
ii  linux-image-extra-3.19.0-33-generic 3.19.0-33.38~14.04.1   amd64                  Linux kernel extra modules for version 3.19.0 on 64 bit x86 SMP
iF  linux-image-extra-3.19.0-37-generic 3.19.0-37.42~14.04.1   amd64                  Linux kernel extra modules for version 3.19.0 on 64 bit x86 SMP
iU  linux-image-extra-3.19.0-49-generic 3.19.0-49.55~14.04.1   amd64                  Linux kernel extra modules for version 3.19.0 on 64 bit x86 SMP
iU  linux-image-generic-lts-vivid       3.19.0.49.34           amd64                  Generic Linux kernel image

notlinus @ NS0: / boot $ sudo apt-get remove linux-image-3.19.0-26-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.19.0-26-generic : Depends: linux-image-3.19.0-26-generic but it is not going to be installed
 linux-image-extra-3.19.0-49-generic : Depends: linux-image-3.19.0-49-generic but it is not going to be installed
 linux-image-generic-lts-vivid : Depends: linux-image-3.19.0-49-generic but it is not going to be installed
                                 Recommends: thermald but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

Я уверен, что это должен быть дублирующий вопрос, но после поиска решений похожих вопросов сделал не облегчать мое затруднительное положение.

Наконец, я администратор RHEL, поэтому, пожалуйста, извините за мое неподходящее незнание - наши серверы BIND должны быть на Ubuntu как условие некоторого свободного пространства для совместной работы нашей дочерней компанией. Что я делаю неправильно, что вызвало эту проблему, и как я могу избежать ее возникновения в будущем?

Когда я пробую подобные решения на этом сайте, такие как Как освободить больше места в / boot? Я получаю:

notlinus@NS0:/boot$ sudo dpkg -fl 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
You might want to run ‘apt-get -f install’ to correct these.
The following packages have unmet dependencies.
 linux-image-extra-3.19.0-26-generic : Depends: linux-image-3.19.0-26-generic but it is not installed
 linux-image-extra-3.19.0-28-generic : Depends: linux-image-3.19.0-28-generic but it is not installed
 linux-image-extra-3.19.0-30-generic : Depends: linux-image-3.19.0-30-generic but it is not installed
 linux-image-extra-3.19.0-31-generic : Depends: linux-image-3.19.0-31-generic but it is not installed
 linux-image-extra-3.19.0-32-generic : Depends: linux-image-3.19.0-32-generic but it is not installed
 linux-image-extra-3.19.0-33-generic : Depends: linux-image-3.19.0-33-generic but it is not installed
 linux-image-extra-3.19.0-49-generic : Depends: linux-image-3.19.0-49-generic but it is not installed
 linux-image-generic-lts-vivid : Depends: linux-image-3.19.0-49-generic but it is not installed
                                 Recommends: thermald but it is not installed
E: Unmet dependencies. Try using -f.
3
задан 13 April 2017 в 15:24

4 ответа

Спасибо @mikewhatever,

sudo dpkg --force-all -P pkgname был ответ

Так: sudo dpkg --force-all -P linux-image-extra-3.19.0-26-generic сделал это для меня

3
ответ дан 14 April 2017 в 01:24
  • 1
    @terdon 1. Да: специалисты по обслуживанию ядра Linux относятся к обратной совместимости серьезно, и так как многие люди сделали это предположение, they' ll продолжают гарантировать его. 2. Да, потому что that' s, как ps собирает его информацию (попытка strace ps). – Gilles 3 June 2017 в 04:18

Начиная с Надежного человека Ubuntu 14.04 эта команда поддерживает более старые ядра кроме последних двух. Это очень легко и безопасно удалить старые ядра кроме последних 2 путем ввода в терминале команды:

sudo apt-get autoremove --purge
-1
ответ дан 14 April 2017 в 01:24
  • 1
    @Gilles достаточно ярмарка, я думал, что это смотрело на файл в/proc, я hadn' t понял, что просто прошел файлы непосредственно. Спасибо за исправление. Мои извинения за говорение чепухи Ravexina. – terdon♦ 3 June 2017 в 04:27

Проблема состоит в том, потому что у Вас закончилось пространство на / разделе начальной загрузки.

Легко создают некоторое свободное пространство через sudo truncate -s 0 /boot/initrd.img-oldest-version

ПРИМЕЧАНИЕ: не усекайте самые высокие 2 initrd версии!

После того, как это sudo apt autoremove -f успешно выполнится, но это возьмет почти навсегда для завершения, потому что это восстановит initrd для всех изображений и переустановит личинку дважды каждый раз, когда это удаляет одно старое изображение ядра. С 20 старыми изображениями ядра это восстановит initrds почти 400 раз!

можно работать вокруг того смешного восстановления путем отключения initrd инструмента поколения:

sudo mv /etc/kernel/postinst.d/initramfs-tools /etc/kernel/postinst.d/initramfs-tools.real
sudo ln -s /bin/true /etc/kernel/postinst.d/initramfs-tools

Затем выпуск sudo apt autoremove -f и когда Вы сделаны...

sudo rm /etc/kernel/postinst.d/initramfs-tools
sudo mv /etc/kernel/postinst.d/initramfs-tools.real /etc/kernel/postinst.d/initramfs-tools
sudo /etc/kernel/postinst.d/initramfs-tools $( uname -r )

ПРИМЕЧАНИЕ: Если рабочее ядро не находится в начальной загрузке / еще затем, Вы, возможно, должны предоставить версию ядра вручную вместо uname -r

После того, как Вы сделаны, рассматриваете вручную установку определенного ядра, такого как текущее и затем включение apt-autoremove. Это гарантирует, чтобы у Вас всегда было выбранное изображение для начальной загрузки от, плюс то, что последнее.

0
ответ дан 29 September 2019 в 20:56

Если Ваша проблема из-за недостатка места, то у Вас мог бы быть выход. Если Вы смотрите тесно, то Вы видите:

 Filesystem                Size  Used Avail Use% Mounted on
 /dev/sda1                 236M  234M     0 100% /boot

Вы будете видеть, что размер раздела 236M, в то время как используется 234M. System зарезервировала 2 МБ для таких чрезвычайных ситуаций. Освободите его для Вашего использования путем выдачи команды:

 sudo tune2fs -m 0 /dev/sda1

Вы будете иметь 2M свободного пространства, которое могло бы помочь Вам из Вашей ситуации.

Иначе должен будет отказаться от того раздела, когда начальная загрузка полностью и использование изменяются, fstab (удалите начальную загрузку/), и создайте начальную загрузку / на корневом разделе.

Копия все от (теперь) старой начальной загрузки до новой начальной загрузки и затем завершают команды.

0
ответ дан 29 September 2019 в 20:56

Другие вопросы по тегам:

Похожие вопросы: