Мой раздел / boot достиг 100%, и теперь я не могу обновиться. Невозможно удалить старые ядра, чтобы освободить место

Моя первая проблема была, когда я попытался apt-get update или apt-get upgrade. При обновлении я получаю следующую ошибку:

You might want to run 'apt-get -f install' to correct these.The following packages have unmet dependencies:linux-image-server : Depends: linux-image-3.2.0-27-generic but it is not installedE: Unmet dependencies. Try using -f.

Я попытался запустить apt-get install -f, и это был результат (после того, как я сказал "да" в командной строке)

(Reading database ... 186183 files and directories currently installed.)Unpacking linux-image-3.2.0-27-generic (from .../linux-image-3.2.0-27-generic_3.2.0-27.43_amd64.deb) ...Done.dpkg: error processing /var/cache/apt/archives/linux-image-3.2.0-27-generic_3.2.0-27.43_amd64.deb (--unpack): failed in write on buffer copy for backend dpkg-deb during `./boot/System.map-3.2.0-27-generic': No space left on device No apport report written because the error message indicates a disk full error                                                                          dpkg-deb:    error: subprocess paste was killed by signal (Broken pipe)Examining /etc/kernel/postrm.d .run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-27-generic   /boot/vmlinuz-3.2.0-27-genericrun-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-27-generic /boot/vmlinuz-3.2.0-27-genericErrors were encountered while processing:/var/cache/apt/archives/linux-image-3.2.0-27-generic_3.2.0-27.43_amd64.debE: Sub-process /usr/bin/dpkg returned an error code (1)

Я пытался бежать apt-get autoremove и это дает мне ту же ошибку, что и apt-get upgrade.

Когда я бегу df, Я получаю это за /boot:

/dev/sda1                    233191     230297         0 100% /boot

Итак, я где-то читал, что мне следует попытаться очистить старые ядра. Я проверил, какие ядра у меня были с:

$ dpkg -l linux-image-\* | grep ^iiii  linux-image-2.6.38-13-server  2.6.38-13.52  Linux kernel image for version 2.6.38 on x86_64ii  linux-image-3.0.0-13-server   3.0.0-13.22   Linux kernel image for version 3.0.0  on x86_64ii  linux-image-3.0.0-14-server   3.0.0-14.23   Linux kernel image for version 3.0.0  on x86_64ii  linux-image-3.0.0-15-server   3.0.0-15.26   Linux kernel image for version 3.0.0  on x86_64ii  linux-image-3.0.0-16-server   3.0.0-16.29   Linux kernel image for version 3.0.0  on x86_64ii  linux-image-3.0.0-17-server   3.0.0-17.30   Linux kernel image for version 3.0.0  on x86_64ii  linux-image-3.2.0-24-generic  3.2.0-24.39   Linux kernel image for version 3.2.0  on 64 bit x86 SMPii  linux-image-3.2.0-25-generic  3.2.0-25.40   Linux kernel image for version 3.2.0  on 64 bit x86 SMPii  linux-image-3.2.0-26-generic  3.2.0-26.41   Linux kernel image for version 3.2.0  on 64 bit x86 SMP

Когда я пытаюсь удалить самый старый с помощью этого:

$ sudo apt-get purge linux-image-2.6.38-13-serverReading package lists... DoneBuilding dependency treeReading state information... DoneYou might want to run 'apt-get -f install' to correct these:The following packages have unmet dependencies:linux-image-server : Depends: linux-image-3.2.0-27-generic but it is not going to be     installedE: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

Как я могу освободить или продлить загрузку, не испортив установку?

Освобождение места в Корневой файловой системе

Чтобы освободить место в корневой файловой системе, вы можете попробовать выполнить apt-get clean.

Если это не сработает, вы можете перейти к /var/cache/apt/archives и вручную удалите несколько файлов из кэша, чтобы вернуть немного места, например:

sudo rm linux-headers-*

Не повредит удалить все .deb файлы здесь, если вам нужно - это то, что apt-get clean делает. Они будут автоматически повторно загружены apt если они снова понадобятся.

Освобождение места в файловой системе /boot

Оригинальный плакат имеет отдельный /boot раздел, и это то, что является полным и предотвращает apt система перестала работать. Ему нужно будет освободить там место.

Если места почти достаточно, перейдите к /boot и удалите один или два конфигурационных файла:

sudo rm config-3.2.0-19-generic-pae

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

Если вам нужно больше места по отдельности, удалите старые vmlinuz, initrd, abi и System.map файлы до тех пор, пока у вас не останется достаточно места (около 22 МБ для одной из моих версий ядра i386).

Что бы ты ни делал, не удаляйте их все. Вы должны, по крайней мере, сохранить две последние совпадающие версии каждого типа файлов для каждого типа используемого вами ядра.

Затем выполните команды установки apt-get. Как упоминалось выше, им, возможно, придется повторно загрузить некоторые из удаленных вами дескрипторов, но если это так, это произойдет автоматически. Когда у вас снова заработает apt, очистите его с помощью apt-get, чтобы удалить пакеты, соответствующие удаленным файлам, - чтобы все совпадало.


Конфигурационный файл в /boot является ли конфигурация ядра, которая был использован командой ядра, чтобы строить одноименное ядро. Он должен быть безвреден для удаления, если только вы не хотите, чтобы он использовался для справки или помогал вам в создании собственных ядер.

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

В моем случае, apt команды и dpkg команда не смогла закончить и не смогла удалить.При установке не удалось выполнить автоматическое обновление 2.6.32-56-server.

Моим первым шагом было определить пространство, которое будет использоваться,

cd /bootdu -sk *|sort -n

У меня было около 30 ядер и вспомогательных файлов.

Я сделал uname -a чтобы получить работающее ядро, я определил, что нахожусь в Linux. 2.6.32-43-server и сделал tar из 6 версий, которые не были запущены и были старыми.

tar -cvf ~username/boot.tar *2.6.32-44-server *2.6.32-45-server *2.6.32-46-server *2.6.32-47-server *2.6.32-48-server *2.6.32-49-server

Затем я сделал rm -rf из того, что я подкрепил:

rm -rf *2.6.32-44-server *2.6.32-45-server *2.6.32-46-server *2.6.32-47-server *2.6.32-48-server *2.6.32-49-server

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

Теперь, когда у меня было немного места на /boot, Я был в состоянии бежать

apt-get -f install 

Чтобы очистить неудачную установку 2.6.32-56-server.

Затем я сделал

apt-get remove linux-headers-2.6.32-38 linux-headers-2.6.32-38-server linux-image-2.6.32-38-serverapt-get remove linux-headers-2.6.32-39 linux-headers-2.6.32-39-server linux-image-2.6.32-39-server

Это дало мне возможность вернуть то, что я скопировал.

tar -xf ~username/boot.tarrm  ~username/boot.tar    

Чтобы привести себя в порядок, я тогда мог бы бежать:

apt-get autoremove

Я перезагрузился и теперь использую 4% от /boot.

Вы можете использовать dpkg вместо apt-get для удаления старых ядер:

sudo dpkg -r linux-image-3.2.0-29-generic

Я заметил, что в каталоге загрузки все еще есть некоторые файлы старых версий:

$ ls /bootvmcoreinfo-2.6.31-17-server

И менеджер пакетов перечислит старые версии:

dpkg -l | grep linux-image

Поэтому я использовал эту команду (autoremove также удалил бы более свежие изображения, которые я не хочу удалять)

sudo apt-get purge linux-image-2.6.31-17-server

У меня еще оставалось несколько заголовков:

dpkg -l | grep linux-headers

Поэтому я сделал это:

sudo apt-get purge linux-headers-2.6.32-34

Наконец, остался один пакет, который я не смог удалить с помощью apt-get purge:

$ dpkg -l | grep linux-imagerc  linux-image-2.6.28-11-server

Источник: Удалите пакет, помеченный dpkg как rc

sudo dpkg --purge linux-image-2.6.28-11-server

Это то, что я использовал:

sudo apt-get autoremove linux-image-xxxx

Сделайте это для всех старых ядер и сохраните только два самых последних.

Если вы хотите автоматически удалить старые ядра и обновить GRUBS, обратите внимание на это: Документация Ubuntu

Проверьте использование /var/tmp с du -sh /var/tmp/. Все файлы в этой папке можно удалить, чтобы освободить место.

Затем вы можете выполнить следующие действия, чтобы удалить старые ядра:

sudo apt-get cleansudo apt install byobusudo purge-old-kernelssudo apt autoremovesudo update-grub

Вы не можете действовать в соответствии с пакетами, но вы мочь действуйте в отношении других файлов. Сначала просмотрите свою домашнюю папку и посмотрите, есть ли там что-нибудь вы можете удалить. Если нет, попробуйте переместить большое количество файлов в другой раздел (или на флэш-накопитель), а затем попробуйте sudo apt-get install -f чтобы устранить проблемы с зависимостями пакетов (скорее всего, вы установили файл .deb через dpkg), а затем удалите все старые ядра. Как только у вас будет хотя бы 10 МБ, попробуйте удалить ненужное программное обеспечение или файлы.

Я обнаружил, что единственное, что работало для меня, - это использование Способностей.

sudo aptitude

Затем, когда он открывается, он обычно говорит что-то о неудовлетворенных зависимостях внизу. Вы можете нажать на букву g чтобы приступить к предлагаемому удалению. Он приведет вас на страницу, где перечислено, что должно произойти.

Там должен быть минус - рядом с разбитыми ядрами. Нажмите g еще раз, и он удалит разбитые ядра. Нажмите q чтобы бросить курить. Тогда вы должны быть в состоянии использовать sudo apt-get autoremove чтобы избавиться от старых ядер и освободить место.

Используйте Synaptic Package Manager. Просто выберите пакет, который вы хотите удалить, и он предложит вам также удалить пакеты, которые зависят от него. По моему опыту, пакеты ядра всегда входят в группы по два (или более, в зависимости от того, как вы считаете), которые являются взаимозависимыми. Обычно вы можете быстро найти старые файлы, используя фильтр "локальные / устаревшие".

Запустите это:

sudo apt-get autoremovesudo apt-get --purge remove && sudo apt-get autocleansudo apt-get -f installsudo dpkg-reconfigure -a

Источник: Я получаю эту ошибку после обновления. пожалуйста, помогите

https://help.ubuntu.com/community/RemoveOldKernels

@dskrvk Да! Почему `Удалить неиспользуемые зависимости" не используется по умолчанию?

Я думаю, что ответ @ mreiter может быть лучшим: он использует диспетчер пакетов, и он работал, когда другие команды диспетчера пакетов терпели неудачу, по крайней мере, для меня: apt - My /boot partition hit 100% and now I can't upgrade. Can't remove old kernels to make room - Ask Ubuntu