Мой / загрузочный раздел достиг 100%, и теперь я не могу обновить или удалить [dублировать]

Моя первая проблема была, когда я попытался 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 installed E: 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-generic run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-27-generic /boot/vmlinuz-3.2.0-27-generic Errors were encountered while processing: /var/cache/apt/archives/linux-image-3.2.0-27-generic_3.2.0-27.43_amd64.deb E: Sub-process /usr/bin/dpkg returned an error code (1)

I apt-get autoremove, и он дает мне ту же ошибку, что и apt-get upgrade.

Когда я запускаю df, я получаю это для /boot:

/dev/sda1 233191 230297 0 100% /boot

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

$ dpkg -l linux-image-\* | grep ^ii ii linux-image-2.6.38-13-server 2.6.38-13.52 Linux kernel image for version 2.6.38 on x86_64 ii linux-image-3.0.0-13-server 3.0.0-13.22 Linux kernel image for version 3.0.0 on x86_64 ii linux-image-3.0.0-14-server 3.0.0-14.23 Linux kernel image for version 3.0.0 on x86_64 ii linux-image-3.0.0-15-server 3.0.0-15.26 Linux kernel image for version 3.0.0 on x86_64 ii linux-image-3.0.0-16-server 3.0.0-16.29 Linux kernel image for version 3.0.0 on x86_64 ii linux-image-3.0.0-17-server 3.0.0-17.30 Linux kernel image for version 3.0.0 on x86_64 ii linux-image-3.2.0-24-generic 3.2.0-24.39 Linux kernel image for version 3.2.0 on 64 bit x86 SMP ii linux-image-3.2.0-25-generic 3.2.0-25.40 Linux kernel image for version 3.2.0 on 64 bit x86 SMP ii 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-server 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-server : Depends: linux-image-3.2.0-27-generic but it is not going to be installed E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

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

141
задан 27 April 2018 в 10:23

8 ответов

Просто запуск sudo apt-get -f autoremove разрешил мою проблему.

1
ответ дан 18 July 2018 в 10:28

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

sudo dpkg -r linux-image-3.2.0-29-generic
19
ответ дан 18 July 2018 в 10:28

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

sudo aptitude

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

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

0
ответ дан 18 July 2018 в 10:28

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

1
ответ дан 18 July 2018 в 10:28

Просто запуск sudo apt-get -f autoremove разрешил мою проблему.

1
ответ дан 24 July 2018 в 19:34
  • 1
    У вас было 100% дисковое пространство / загрузка? – ubashu 27 April 2018 в 09:58
  • 2
    Не смотря на мою историю мониторинга, этого не произошло. PS: Я нахожусь в Vagrant xenial, и моя загрузочная файловая система /dev/sda1 установлена ​​на / – ForzaGreen 29 April 2018 в 14:26

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

sudo dpkg -r linux-image-3.2.0-29-generic
19
ответ дан 24 July 2018 в 19:34
  • 1
    Может быть, есть плюсы для использования этого, но предложение @ mreiter работало для меня, когда этого не было (этот был предложен на канале поддержки IRC ubuntu). – Aaron Hall 28 March 2015 в 17:09
  • 2
    @AaronHall Этот ответ просто содержит ключевую часть ответа mreiter (последняя строка), и он намного короче, поскольку он не охватывает очистку заголовков (что не помогает в случае отдельного раздела /boot ). – Melebius 6 April 2017 в 13:27

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

sudo aptitude

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

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

0
ответ дан 24 July 2018 в 19:34
  • 1
    Я попытался удалить почти все конфиги. Кажется, у него все еще недостаточно места. Какие другие файлы можно будет удалить? Моя корневая файловая система нигде не заполнена, поэтому я не беспокоюсь об этом. – Strifey16 2 August 2012 в 21:28
  • 2
    Я обновил свой ответ с дальнейшими файлами для удаления вручную. Мне кажется, что удаление наборов 3.0.0.13 и 3.0.0.14 (пять файлов для набора, включая файл abi) будет достаточным. – John S Gruber 3 August 2012 в 00:42
  • 3
    Это фиксировало это. Я понял, что, возможно, это приведет к удалению файлов вручную, но я всегда смущаюсь делать это с помощью чего-либо, установленного apt, поэтому я подумал, что сначала попрошу. – Strifey16 5 August 2012 в 00:13
  • 4
    В домашней папке нет / boot – Thorbjørn Ravn Andersen 17 May 2013 в 13:05
  • 5
    Это было самым полезным для меня из всех предложений. Большое спасибо! – Joshua F. Rountree 28 March 2015 в 05:53
  • 6
    Не используйте sudo rm для удаления из / boot. Вместо этого используйте sudo dpkg --purge для удаления старого пакета linux-image. Затем используйте sudo apt-get -f install, чтобы исправить нарушенную зависимость. – jarno 10 February 2016 в 00:48
  • 7
    удаление файлов из / boot просто ужасно ломает apt и dpkg, так как их сценарии установки и удаления не работают HARD, когда файлы отсутствуют. Я не понимаю, как вы это сделали. – FizxMike 12 June 2016 в 01:54
  • 8
    Хотя иногда система может быть настолько полной, что даже dpkg не может работать. Но тогда можно использовать rm. – jarno 5 November 2016 в 21:27
  • 9
    Это должен быть принятый ответ. Если вы не против очистки всего, вам даже не нужно указывать образ Linux. – CyberEd 22 December 2016 в 08:34
  • 10
    что делает sudo dpkg-reconfigure -a это делать? На Ubuntu 16 говорится о неизвестном варианте -a – Shivam Kotwalia 28 November 2017 в 11:59
  • 11
    Для этого вопроса apt не удастся удалить пакеты ядра, поскольку сам процесс удаления генерирует файлы в /boot, который уже заполнен. Вот почему apt-get autoremove терпит неудачу. Вопрос, который вы ищете, - askubuntu.com/q/142926/158442 , который уже имеет autoremove. – muru 23 January 2018 в 09:52
  • 12
    @muru Я просто разместил его, потому что он сделал трюк, для меня: D – Ardi Nusawan 23 January 2018 в 18:06
  • 13
    Я уверен, что это так, я говорю, что ваша проблема была бы другим вопросом, а не этим. – muru 23 January 2018 в 18:08
  • 14
    @muru oh ok получил это: D – Ardi Nusawan 23 January 2018 в 18:10
  • 15
    Что /var/tmp связано со старыми ядрами? И не всегда безопасно удалять все в /var/tmp ... – ubashu 27 April 2018 в 10:09

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

1
ответ дан 24 July 2018 в 19:34
  • 1
    Например. на сервере (только для текста) отсутствует Synaptic. На самом деле это не очень выгодное решение для серверов. – nerdoc 31 August 2017 в 23:41

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

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