Как освободить больше места в /boot?

Мой раздел /boot почти заполнен, и я получаю предупреждение каждый раз, когда я перезагружаю свою систему. Я уже удалил старые пакеты ядра (linux-headers ...), на самом деле я сделал это, чтобы установить новую версию ядра, которая поставляется с автоматическими обновлениями.

После установки этой новой версии раздел снова будет полностью заполнен. Так что еще я могу удалить? Существуют ли другие файлы, связанные со старыми изображениями ядра?

Вот список файлов, которые находятся в моем разделе /boot:

:~$ ls /boot/
abi-2.6.31-21-generic         lost+found
abi-2.6.32-25-generic         memtest86+.bin
abi-2.6.38-10-generic         memtest86+_multiboot.bin
abi-2.6.38-11-generic         System.map-2.6.31-21-generic
abi-2.6.38-12-generic         System.map-2.6.32-25-generic
abi-2.6.38-8-generic          System.map-2.6.38-10-generic
abi-3.0.0-12-generic          System.map-2.6.38-11-generic
abi-3.0.0-13-generic          System.map-2.6.38-12-generic
abi-3.0.0-14-generic          System.map-2.6.38-8-generic
boot                          System.map-3.0.0-12-generic
config-2.6.31-21-generic      System.map-3.0.0-13-generic
config-2.6.32-25-generic      System.map-3.0.0-14-generic
config-2.6.38-10-generic      vmcoreinfo-2.6.31-21-generic
config-2.6.38-11-generic      vmcoreinfo-2.6.32-25-generic
config-2.6.38-12-generic      vmcoreinfo-2.6.38-10-generic
config-2.6.38-8-generic       vmcoreinfo-2.6.38-11-generic
config-3.0.0-12-generic       vmcoreinfo-2.6.38-12-generic
config-3.0.0-13-generic       vmcoreinfo-2.6.38-8-generic
config-3.0.0-14-generic       vmcoreinfo-3.0.0-12-generic
extlinux                      vmcoreinfo-3.0.0-13-generic
grub                          vmcoreinfo-3.0.0-14-generic
initrd.img-2.6.31-21-generic  vmlinuz-2.6.31-21-generic
initrd.img-2.6.32-25-generic  vmlinuz-2.6.32-25-generic
initrd.img-2.6.38-10-generic  vmlinuz-2.6.38-10-generic
initrd.img-2.6.38-11-generic  vmlinuz-2.6.38-11-generic
initrd.img-2.6.38-12-generic  vmlinuz-2.6.38-12-generic
initrd.img-2.6.38-8-generic   vmlinuz-2.6.38-8-generic
initrd.img-3.0.0-12-generic   vmlinuz-3.0.0-12-generic
initrd.img-3.0.0-13-generic   vmlinuz-3.0.0-13-generic
initrd.img-3.0.0-14-generic   vmlinuz-3.0.0-14-generic

В настоящее время я использую ядро ​​3.0.0-14-generic.

514 голосов | спросил user6722 22 ThuEurope/Moscow2011-12-22T14:06:05+04:00Europe/Moscow12bEurope/MoscowThu, 22 Dec 2011 14:06:05 +0400 2011, 14:06:05

20 ответов


589

У вас много неиспользуемых ядер. Удалите все, кроме последних ядер, с помощью:

sudo apt-get purge linux-image-{3.0.0-12,2.6.3{1-21,2-25,8-{1[012],8}}}

Это сокращение для:

sudo apt-get purge linux-image-3.0.0-12 linux-image-2.6.31-21 linux-image-2.6.32-25 linux-image-2.6.38-10 linux-image-2.6.38-11 linux-image-2.6.38-12 linux-image-2.6.38-8

Удаление пакета linux-image-x.x.x-x также приведет к удалению linux-image-x.x.x-x-generic.

Заголовки устанавливаются в /usr/src и используются при построении модулей ядра из дерева (например, проприетарный драйвер nvidia и виртуальный бокс). Большинство пользователей должны удалить эти пакеты заголовков, если соответствующий пакет ядра (linux-image-*) не установлен.

Чтобы просмотреть все установленные ядра, запустите:

dpkg -l linux-image-\* | grep ^ii

Одна команда для отображения всех ядер и заголовков, которые можно удалить, за исключением ядра current :

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

Он выбирает все имена пакетов, начинающиеся с linux-headers-<some number> или linux-image-<some number>, печатает имена пакетов для установленных пакетов, а затем исключает текущее загруженное /запущенное ядро ​​ (не обязательно ядро ​​ последнее !). Это соответствует рекомендациям тестирования нового ядра перед удалением старых, известных к работе ядер.

Итак, после обновления ядер и перезагрузки для его проверки вы можете удалить все остальные ядра с помощью

sudo apt-get purge $(dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve "$(uname -r | sed -r 's/-[a-z]+//')")
ответил Lekensteyn 24 SatEurope/Moscow2011-12-24T18:34:35+04:00Europe/Moscow12bEurope/MoscowSat, 24 Dec 2011 18:34:35 +0400 2011, 18:34:35
196

Загрузочный раздел заполнен. Поскольку это обновление ядра, эти файлы будут скопированы в загрузочный раздел, поэтому вам нужно будет очистить его. Ниже приведено сообщение в блоге , в котором будет показано, как очистите старые изображения ядра одной командой. Я дам основной обзор метода. Используйте эту команду для печати текущей версии вашего ядра:

uname -r

Затем используйте эту команду для печати всех ядер, которые вы установили, которые не являются вашим самым новым ядром:

dpkg -l linux-{image,headers}-"[0-9]*" | awk '/^ii/{ print $2}' | grep -v -e `uname -r | cut -f1,2 -d"-"` | grep -e '[0-9]'

Убедитесь, что текущее ядро ​​не включено в этот список. Обратите внимание, что это основная часть последней команды (ниже). Чтобы удалить и удалить эти старые ядра, вам нужно будет передать эти аргументы:

sudo apt-get -y purge

Теперь мы можем сделать все, что хотим, объединив эти последние две команды в этот нечестивый беспорядок:

dpkg -l 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

И эта одна команда позаботится обо всем для вас. Я подтвержу, что это работает отлично, но никто не доверяет никому в Интернете. :) Для получения дополнительной информации, сообщение в блоге дает очень хорошее объяснение того, что каждая часть команды делает так, чтобы прочитать его, чтобы вы были удовлетворены тем, что он делает то, что вы хотите.

ответил dward 21 FebruaryEurope/MoscowbThu, 21 Feb 2013 07:38:30 +0400000000amThu, 21 Feb 2013 07:38:30 +040013 2013, 07:38:30
89
sudo apt-get autoremove

Эта команда выполняет задание автоматически.

ответил karan 5 12012vEurope/Moscow11bEurope/MoscowMon, 05 Nov 2012 09:58:13 +0400 2012, 09:58:13
38

Synaptic Package Manager может использоваться для простого выбора и удаления старых изображений ядра. Снимок экрана диспетчера пакетов Synaptic

Если вы еще не установили Synaptic:

sudo apt-get install synaptic

Запустите приложение и выберите указанные параметры.

Вы должны выделить все пакеты «linux-» с версией «2.6.x», где x находится между 31 и 38 в соответствии с файлами в папке /boot.

Щелкните правой кнопкой мыши каждый из этих пакетов linux и выберите опцию «Mark for Complete Removal». Наконец нажмите кнопку «Применить». Это приведет к удалению всех файлов и любых связанных файлов. Ваша папка /boot теперь должна быть немного более аккуратной.

ответил fossfreedom 24 SatEurope/Moscow2011-12-24T18:34:02+04:00Europe/Moscow12bEurope/MoscowSat, 24 Dec 2011 18:34:02 +0400 2011, 18:34:02
24

Спасибо за подробный пост вашей проблемы, это заставило меня двигаться в правильном направлении. Хотя полезно сохранить предыдущие файлы ядра, вы можете удалить их все за один раз, отметьте это сообщение:
Как удалить все неиспользуемые заголовки, изображения и модули ядра ядра

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

Здесь он скопирован из ссылки на статью, я предлагаю вам прочитать полную статью:

dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge
ответил Omni 1 J0000006Europe/Moscow 2012, 16:53:04
22

Это новый ответ на старый вопрос, но простой способ очистить эту вещь (и многое другое) - установить Ubuntu Tweak . Чтобы установить его :

sudo add-apt-repository ppa:tualatrix/ppa
sudo apt-get update
sudo apt-get install ubuntu-tweak

, тогда вы можете запустить Ubuntu Tweak, перейдя на вкладку «janitor», и отсюда это будет три клика:

Ubuntu twaak janitor для старых ядер

Лучше оставить последнее ядро ​​(вы никогда не знаете) или хорошо известное рабочее ядро ​​для безопасности; но это легко настраивается.

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

ответил Rmano 25 22014vEurope/Moscow11bEurope/MoscowTue, 25 Nov 2014 16:11:05 +0300 2014, 16:11:05
17

Я смог устранить проблему, используя dpkg, чтобы удалить пакеты напрямую. Хотя пакеты по-прежнему перечислены в dpkg -l, файлы удаляются из /boot, освобождая место.

[email protected]:/boot$ sudo dpkg --remove linux-image-2.6.32-30-server
(Reading database ... 145199 files and directories currently installed.)
Removing linux-image-2.6.32-30-server ...
Running postrm hook script /usr/sbin/update-grub.
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-35-server
Found linux image: /boot/vmlinuz-2.6.32-34-server
Found initrd image: /boot/initrd.img-2.6.32-34-server
Found linux image: /boot/vmlinuz-2.6.32-33-server
Found initrd image: /boot/initrd.img-2.6.32-33-server
Found linux image: /boot/vmlinuz-2.6.32-32-server
Found initrd image: /boot/initrd.img-2.6.32-32-server
Found linux image: /boot/vmlinuz-2.6.32-31-server
Found initrd image: /boot/initrd.img-2.6.32-31-server
Found memtest86+ image: /memtest86+.bin
done

# Repeat for kernels -31 and -32 and -33, up to (but not including)
# the version listed by `uname -a`

После этого apt-get -f install исправил проблемы с зависимостями, и все было хорошо с миром.

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

ответил Phrogz 3 SatEurope/Moscow2011-12-03T22:47:47+04:00Europe/Moscow12bEurope/MoscowSat, 03 Dec 2011 22:47:47 +0400 2011, 22:47:47
11

Вы можете перестать использовать отдельный /загрузочный раздел, тогда у вас не будет такого ограниченного пространства. Для этого отключите раздел, затем смонтируйте его в другом месте и скопируйте все файлы в каталог /boot в корневом разделе, затем удалите запись из /etc /fstab и повторно установите grub. Например (вам нужно будет использовать правильный раздел):

sudo -s
umount /boot
mount /dev/sda2 /mnt
cp -a /mnt/* /boot/
umount /mnt
gedit /etc/fstab
grub-install /dev/sda

Затем вы можете использовать gparted для удаления старого /загрузочного раздела и, возможно, расширить корневой раздел, чтобы использовать это пространство. Чтобы расширить корневой раздел, вам нужно будет загрузиться из livecd, и свободное пространство должно быть немедленно направо. Если раздел /boot находится в данный момент слева от корневого раздела, вам нужно сначала переместить корневой раздел влево, а затем расширить его, но это может занять очень много времени, поэтому, возможно, не стоит беда.

ответил psusi 22 ThuEurope/Moscow2011-12-22T20:38:30+04:00Europe/Moscow12bEurope/MoscowThu, 22 Dec 2011 20:38:30 +0400 2011, 20:38:30
4

Для меня оба отказались apt-get purge и dpkg --remove. Поэтому мне пришлось удалить пару старых изображений ядра из /boot с помощью rm -f.

ответил orkoden 14 +04002013-10-14T13:22:59+04:00312013bEurope/MoscowMon, 14 Oct 2013 13:22:59 +0400 2013, 13:22:59
4

Взяв все лучшее из ответов выше, мой проверенный подход:

  • uname -a, чтобы найти запущенное ядро.
  • dpkg -l linux-{headers,image}-\* | grep ^ii, чтобы отобразить все установленные в настоящее время пакеты, связанные с ядром. Это будет включать запущенное ядро.
  • sudo apt-get purge linux-{image,headers}-3.16.0-{xx,yy,zz}, чтобы удалить старые ядра. Замените xx,yy,zz на список сборок ядра, которые вы хотите удалить - это все сборки, перечисленные в предыдущей команде, которые старше, чем текущее запущенное ядро. Убедитесь, что вы не удаляете текущее ядро ​​- ваша система станет не загружаемой. . Вам также может потребоваться изменить версию ядра с 3.16.0 на все, что установлено в вашей системе.
  • Необязательно, сделайте дополнительный sudo apt-get autoremove - это приведет к удалению любых оставшихся зависимостей старых ядер, которые больше не нужны текущему, освобождая еще некоторое пространство.

У вас могут быть файлы заголовков, не соответствующие установленным версиям ядра, или наоборот - просто включите все эти версии в команду. APT будет жаловаться на то, что некоторые пакеты не могут быть удалены, поскольку они не установлены, но это не повредит.

Если что-то не удается ...

  • Если команда apt завершилась неудачно из-за ошибки no space left on device , используйте вместо этого соответствующую команду dpkg: sudo dpkg --purge linux-{image,headers}-3.16.0-{xx,yy,zz}.
  • Если команда dpkg по-прежнему не работает, потому что пакеты linux-image требуются пакетами linux-headers той же версии (которые вы также хотите для удаления), dpkg может не решить эту проблему. Повторно просмотрите вывод dpkg -l и укажите суффиксы имени пакета в командной строке. Например, в одной из моих систем команда, которая в конечном итоге работала, была sudo dpkg --purge linux-{image,headers}-3.16.0-{xx,yy,zz}-generic-pae.
  • Если вы получите какую-либо другую ошибку, обратитесь за помощью - у вас может быть другая проблема, чем вы думали.
ответил user149408 9 J000000Thursday15 2015, 23:24:07
2
  

Я уже удалил старые пакеты ядра (linux-headers ...)

linux-headers-* не являются ядрами. Пакеты ядра называются linux-image-*. Те, которые называются linux-headers-*, являются пакетами разработки для компиляции модулей ядра: они не живут в каталоге /boot и не требуются для повседневного использования вашей системы.

В файлы, которые вы указали в /boot do , входят несколько старых изображений ядра (vmlinuz*) и скомпилированные изображения initrd (initrd.img* ) для этих ядер, что свидетельствует о том, что у вас все еще есть много старых пакетов ядра.

Вы должны указать список установленных ядер с помощью

aptitude search ~ilinux-image

(Обратите внимание, что это, вероятно, также вернет пакеты, которые также не являются ядрами).

Как правило, нет необходимости устанавливать более двух ядер - тот, который в настоящее время используется, и предыдущий (в качестве резервной копии). Таким образом, вы можете начать удаление старых, один за другим, следующим образом:

sudo apt-get autoremove linux-image-3.2.0-23-generic

Убедитесь, что вы заменили «3.2.0-23-generic» на версию ядра, которую вы хотите удалить! Кроме того, не удаляйте такие пакеты, как linux-image-generic. Вы должны быть очень осторожны, чтобы не удалять текущее ядро ​​или вы не сможете загрузиться (Ubuntu может или не может вас предупредить об этом).

Вы можете найти свое текущее ядро ​​с помощью:

uname -r
ответил thomasrutter 29 PM00000010000001431 2014, 13:15:14
2
git clone https://github.com/erichs/bootnukem.git
cd bootnukem
sudo ./install.sh

Используйте на свой страх и риск, но это сработало для меня:

sudo bootnukem
ответил Jonathan 14 PM000000110000002531 2016, 23:08:25
1

У меня была эта проблема и больше, так как я удалил некоторые файлы -ddr-img-xxx вручную из /boot и у меня возникла проблема с тем, что эти старые версии сохраняются и заполняются в initrd-img-xxx. Чтобы исправить это, я выполнил следующие действия:

  • Я удалил сгенерированную старую версию ядра вручную, чтобы освободить место.
  • Вы можете редактировать текстовый файл конфигурации в качестве суперпользователя, поэтому вставьте в терминал следующее:

    /boot
  • Найдите строку sudo gedit /etc/initramfs-tools/update-initramfs.conf и измените ее на update_initramfs=yes. Сохраните и выйдите из файла, затем запустите:

    update_initramfs=no

Это решило мою проблему. Это было основано на этот блог

Надеюсь, все будет хорошо, когда вы перезагрузитесь, и позже вы можете попробовать изменить sudo dpkg --configure -a на no в yes.

ответил aibrahim 23 MaramThu, 23 Mar 2017 11:59:20 +03002017-03-23T11:59:20+03:0011 2017, 11:59:20
0

В aptitude или synaptic есть раздел «старый или вручную установленный пакет». Там должны быть старые пакеты linux.

ответил Martin Ueding 22 ThuEurope/Moscow2011-12-22T15:59:09+04:00Europe/Moscow12bEurope/MoscowThu, 22 Dec 2011 15:59:09 +0400 2011, 15:59:09
0

Вот сценарий bash, который я написал ниже, делает процесс более удобным для пользователя.

YMMV - это было сделано для Монетного двора 14. Все еще изучая BASH, поэтому он, вероятно, немного неуклюж. Используйте на свой страх и риск, но он работает для меня!

#!/bin/bash

endCol='\e[0m'
bold_red='\e[1;31m'
bold_green='\e[1;32m'
bold_yellow='\e[1;33m'

title_color='\e[0;30;47m'

function show_kernel_info {
clear
current_kernel=$(uname -r)
echo "Current ACTIVE kernel is:"
echo -e "  "$bold_yellow$current_kernel$endCol
echo "This kernel will be TOTALLY EXCLUDED from all actions in this script."
echo "Also, one fallback non-active kernel will be always left untouched."
echo ""
echo "These are the non-active kernels stored in /boot:"
count_of_old_kernels_in_boot=$(ls -o /boot/initrd* | grep -c -v "$current_kernel")
if [ $count_of_old_kernels_in_boot = 0 ]; then
  echo " * No non-active kernels found! *"
else
  ls -o /boot/initrd* | grep -v "$current_kernel"
fi
echo ""
list_of_old_kernels=$(dpkg --list | grep linux-image | awk -F' ' '{ print $2 }' | grep -v "$current_kernel" | grep -v "linux-image-generic")
current_old_kernel=$(dpkg --list | grep linux-image | awk -F' ' '{ print $2 }' | grep -v "$current_kernel" | grep -v "linux-image-generic" | head -n 1)
count_of_old_kernels_installed=$(dpkg --list | grep linux-image | awk -F' ' '{ print $2 }' | grep -v "$current_kernel" | grep -c -v "linux-image-generic")
echo "Listing of all unused kernels still installed in the system (these may not exist in /boot):"
if [ $count_of_old_kernels_installed = 0 ]; then
  echo " * No unused kernel installs found! *"
else
  dpkg --list | grep linux-image | awk -F' ' '{ print $2 }' | grep -v "$current_kernel" | grep -v "linux-image-generic"
fi
echo ""
}

function exit_script {
free_space_after=$(df -BM /boot | tail -n 1 | awk -F' ' '{ print $4 }' | tr -d M)
let freed_space=$free_space_after-$free_space_before
echo ""
echo "Results (in MB)"
echo "---------------"
echo "Free space in /boot before script was run: "$free_space_before
echo "Free space now: "$free_space_after
echo ""
echo "Amount of space freed up = "$freed_space
echo ""
echo "Press any key to exit."
read -s -n 1
echo ""
exit
}

# Main code
echo ""
echo -e $title_color" --------------------------- "$endCol
echo -e $title_color" -   Kernel Cleanup v1.0   - "$endCol
echo -e $title_color" --------------------------- "$endCol
echo ""
echo "Maximise this window for readability."
echo "Press any key to continue."
read -s -n 1
echo ""
echo "This script will remove old unused kernels, but it will prompt you before removing each one."
echo "It will never remove the current running kernel, and will also leave one fallback kernel."
echo "It can also remove source files from /usr/src for each kernel removed."
echo "This is normally safe to do and will free up lots more space."
echo ""
echo "Do you want that done as well? (y/n, enter=yes)"
valid_input=0
while [ "$valid_input" = "0" ]; do
  read -s -n 1 YesNo_input
  if [ "$YesNo_input" = "" ]; then
    YesNo_input="y"
  fi
  case $YesNo_input
  in
    y)
    RemoveSource="y"
    valid_input=1
    ;;

    Y)
    RemoveSource="y"
    valid_input=1
    ;;

    n)
    RemoveSource="n"
    valid_input=1
    ;;

    N)
    RemoveSource="N"
    valid_input=1
    ;;
  esac
done

free_space_before=$(df -h /boot | tail -n 1 | awk -F' ' '{ print $4 }' | tr -d M)
show_kernel_info
while [ $count_of_old_kernels_in_boot -gt 1 ]; do
  # failsafe check if somehow the current kernel is about to be removed!
  if [ "$current_old_kernel" = "$current_kernel" ]; then
    echo -e $bold_red"ERROR!"$endCol" Somehow the current kernel has crept into the removal process!"
    echo "I refuse to do that! Aborting script."
    exit_script
  fi
  # failsafe check if somehow a linux-image-generic entry is about to be removed
  if [ "$current_old_kernel" = "linux-image-generic" ]; then
    echo -e $bold_red"ERROR!"$endCol" Somehow one of the linux-image-generic entries has crept into the removal process!"
    echo "I refuse to do that! Aborting script."
    exit_script
  fi
  echo "Command about to be executed is:"
  echo "  $ sudo apt-get purge \"$current_old_kernel\""
  check_in_boot=$(echo $current_old_kernel | sed 's/linux-image/initrd.img/g')
  if [ -e /boot/$check_in_boot ]; then
    echo -e $bold_yellow"Note:"$endCol" This kernel exists in /boot but it NON-active, so it's OK to remove."
  else
    echo -e $bold_green"Totally safe to remove:"$endCol" This kernel does NOT exist in /boot."
  fi
  echo ""
  echo "Are you sure you want to remove this kernel?"
  echo "(*upper case* Y=yes / any other key will exit the script)"
  read -s -n 1 yes_no
  echo ""
  # Only entering a single upper case Y will work!
  if [ "$yes_no" != "Y" ]; then
    echo "Aborting script."
    exit_script
  fi
  echo "Removing kernel "$current_old_kernel"..."
  sleep 1
  sudo apt-get -y purge $current_old_kernel
  if [ "$RemoveSource" = "y" ]; then
    current_old_source=$(echo $current_old_kernel | sed 's/linux-image/linux-headers/g')
    current_old_source=$(echo $current_old_source | sed 's/-generic//g')
    current_old_source=$(echo $current_old_source | sed 's/-pae//g')
    sudo apt-get -y purge $current_old_source
  fi
  show_kernel_info
done

if [ $count_of_old_kernels_in_boot = 0 ]; then
  echo -e $bold_red"There are no NON-active kernels to remove!"$endCol
else
  echo -e $bold_red"There is only one NON-active kernel left in /boot!"$endCol
  echo "This script will not remove the last non-active kernel so that you have at least one backup kernel."
fi
echo "Aborting script."
exit_script
ответил wibbynut 8 MaramSat, 08 Mar 2014 10:33:17 +04002014-03-08T10:33:17+04:0010 2014, 10:33:17
0

[Как AskUbuntu noob я не могу комментировать, пока репутация = 50, поэтому не прогоняйте из-за этого.]

Мой сервер тоже это делал. Буквально ни один из ожидаемых ответов здесь не работал, так как для них требуется выполнение какой-либо рабочей комнаты /boot. Если загрузочный раздел заполнен, он внезапно завершится без удаления каких-либо изображений.

Единственное, что сработало для меня, - это просмотреть текущее изображение, а затем вручную sudo rm filename для самых старых файлов изображений (каждый из них имел -3.16.0-30 в их именах). Как только это было сделано, тогда sudo apt-get autoremove имел комнату для маневра, в которой он должен был выполнять свою работу. Он выделил некоторые ошибки, связанные с этой версией, например: «depmod: FATAL: не удалось загрузить /boot/System.map-3.16.0-30-generic: нет такого файла или каталога», но это следует ожидать.

Когда закончите, df вернул 42% для использования /boot, чтобы показать, что он снова здоровый.

ответил Justin Case 8 FebruaryEurope/MoscowbWed, 08 Feb 2017 03:44:19 +0300000000amWed, 08 Feb 2017 03:44:19 +030017 2017, 03:44:19
0

Я написал этот скрипт bash для выборочной очистки старых ядер одновременно:

 rm ядра реального размера

Все коды и инструкции bash включены в ссылку.

ответил WinEunuuchs2Unix 31 J000000Monday17 2017, 02:46:44
0

Я показываю, что еще в 2017 году этот вопрос имеет новые комментарии и ответы, но отсутствует один ответ, который, по моему мнению, очень полезен здесь:

Ubuntu как настольная ОС простого повседневного использования не имеет оснований для установки с отдельным \ загрузочным разделом, и что-то вроде этого НЕ предложит что-то «обычным пользователям» ... Таким образом, решение представляет собой новую установку без \ boot-раздела, и таким образом у вас никогда не будет такой проблемы

PS: Мой ответ может быть удален или добавлен в принятом ответе ... (я думаю, что это поможет некоторым людям таким образом)

ответил koleygr 20 AM00000090000003431 2017, 09:58:34
0

Список всех ядер:

dpkg --list 'linux-image*'

Отобразить текущее ядро:

uname -r

Список всех ядер EXCEPT текущий:

dpkg -l linux-{image,headers}-"[0-9]*" | awk '/^ii/{ print $2}' | grep -v -e `uname -r | cut -f1,2 -d"-"` | grep -e '[0-9]'

Убедитесь, что ваше текущее ядро ​​отсутствует в этом списке.

Удалите все ядра EXCEPT текущий:

dpkg -l 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

Удалить другие вещи:

sudo apt-get autoremove

Если он по-прежнему дает вам ошибку на диске для загрузки /удаления файлов, сразу удалите одно из OLD из каталога /boot,

ls -lh /boot/*-3.13.0-119*;

rm /boot/*-3.13.0-119*; 

ПРИМЕЧАНИЕ. Перед удалением изображения просмотрите текущее изображение ядра.

ответил Hemant Thorat 10 J000000Tuesday18 2018, 13:35:19
-1

Если вы не можете удалить больше неиспользуемых файлов, и если у вас есть другой раздел с /или свободным пространством на одном устройстве, вы можете изменить размер раздела /boot на parted / gparted . (Он также включен в установочный носитель.)

Предупреждение : Изменение размера раздела опасно , сохраните важные данные на других носителях перед тем, как сделать это!

ответил Rudolf Dovičín 3 Jam1000000amSat, 03 Jan 2015 00:42:53 +030015 2015, 00:42:53

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132