Как освободить больше места в /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
ядро.
22 ответа
У вас много неиспользованных ядер. Удалите все ядра, кроме последних:
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 и virtualbox). Большинство пользователей должны удалять эти пакеты заголовков, если совпадает пакет ядра (linux-image-*
) не установлен.
Чтобы вывести список всех установленных ядер, запустите:
dpkg -l linux-image-\* | grep ^ii
Одна команда, чтобы показать все ядра и заголовки, которые можно удалить, кроме текущего работающего ядра:
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]+//')")
Ваш загрузочный раздел заполнен. Поскольку это обновление ядра, эти файлы будут скопированы в загрузочный раздел, поэтому вам нужно очистить его. Вот запись в блоге, которая покажет вам, как очистить старые образы ядра одной командой. Я дам краткий обзор метода. Используйте эту команду для распечатки текущей версии вашего ядра:
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
И эта одна команда позаботится обо всем для вас. Я подтверждаю, что это работает отлично, но никогда никому не доверяю в Интернете.:) Для получения дополнительной информации в блоге дается очень хорошее объяснение того, что делает каждая часть команды, поэтому прочитайте ее, чтобы убедиться, что она делает то, что вы хотите, чтобы она делала.
sudo apt-get autoremove
Эта команда выполняет работу автоматически.
Диспетчер пакетов Synaptic можно использовать для простого выбора и удаления старых образов ядра.
Если у вас еще не установлен Synaptic:
sudo apt-get install synaptic
Запустите приложение и выберите показанные параметры.
Вы должны быть в состоянии выделить все пакеты "linux-" с версией "2.6.x", где x находится между 31 и 38 в соответствии с файлами в вашей папке /boot.
Щелкните правой кнопкой мыши по каждому из этих пакетов Linux и выберите параметр "Пометить для полного удаления". Наконец нажмите кнопку "Применить". Это удалит все файлы и все связанные файлы. Ваш /boot
папка должна быть немного аккуратнее.
Спасибо за ваш подробный пост вашей проблемы, это заставило меня двигаться в правильном направлении. Хотя полезно сохранить предыдущие файлы ядра, вы можете удалить их все за один раз, проверьте этот пост:
Как удалить все неиспользуемые заголовки ядра Linux, изображения и модули
Сделано через командную строку. Если вы делаете это через удаленный доступ, используйте что-то вроде 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
Список всех ядер:
dpkg --list 'linux-image*'
Показать текущее ядро:
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]'
Убедитесь, что вашего текущего ядра нет в этом списке.
Удалите все ядра, кроме текущего:
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
Если он по-прежнему выдает ошибку места на загрузочном диске для установки / удаления файлов, то удалите непосредственно один из старых изображений из каталога /boot,
ls -lh /boot/*-3.13.0-119*;
rm /boot/*-3.13.0-119*;
ПРИМЕЧАНИЕ. Пожалуйста, просмотрите текущий образ ядра еще раз, прежде чем удалять любое изображение.
Это новый ответ на старый вопрос, но простой способ убрать эту вещь (и не только) - установить Ubuntu Tweak. Чтобы установить это:
sudo add-apt-repository ppa:tualatrix/ppa
sudo apt-get update
sudo apt-get install ubuntu-tweak
затем вы можете запустить Ubuntu Tweak, перейдя на вкладку "janitor", и отсюда всего три клика:
Для безопасности лучше оставить последнее ядро (вы никогда не знаете) или хорошо известное работающее ядро; но это легко настраивается.
Вы можете использовать один и тот же инструмент для очистки многих вещей - просто помните, что если вы очищаете кэш миниатюр или кэш ТБ, тогда системе придется их перестраивать, если они необходимы.
Я смог решить проблему с помощью dpkg
удалить пакеты напрямую. Хотя пакеты все еще перечислены в dpkg -l
файлы удаляются из /boot
, освобождая пространство.
phrogz@planar:/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
размер или делать что-то еще.
Вы можете прекратить использование отдельного раздела /boot, тогда у вас не будет такого ограниченного пространства там. Для этого размонтируйте раздел, затем смонтируйте его где-нибудь еще и скопируйте все файлы в каталог /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 в данный момент находится слева от корневого раздела, вам необходимо сначала переместить корневой раздел влево, а затем расширить его, но это может занять очень и очень много времени, поэтому может не стоить беда.
Принимая лучшее из ответов выше, мой проверенный подход заключается в следующем:
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 не выполнена из-за отсутствия свободного места на ошибке устройства, используйте вместо нее соответствующую команду 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
, - Если вы получили какую-либо другую ошибку, обратитесь за помощью - у вас может быть другая проблема, чем вы думали.
Для меня обоих apt-get purge
а также dpkg --remove
оба не удалось. Поэтому мне пришлось удалить пару старых образов ядра из /boot с rm -f
,
Я показываю, что еще в 2017 году этот вопрос имеет новые комментарии и ответы, но пропускает один ответ, который я считаю очень полезным здесь:
Ubuntu как настольная ОС простого повседневного использования не имеет причин для установки с отдельным \ загрузочным разделом, и что-то вроде этого НЕ будет предлагать что-то "обычному пользователю"... Так что решение - это новая установка без \ загрузочного раздела, и это как у тебя никогда не будет такой проблемы
PS: Мой ответ может быть удален или добавлен в принятый ответ... (думаю, это поможет некоторым людям таким образом)
Я уже удалил старые пакеты ядра (linux-заголовки...)
linux-headers-*
не ядра. Пакеты ядра называются linux-image-*
, Названные linux-headers-*
являются пакетами разработки для компиляции модулей ядра: они не находятся в каталоге /boot и не требуются для повседневного использования вашей системы.
Файлы, которые вы перечислили в /boot , содержат несколько старых образов ядра (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
Я написал этот сценарий bash для выборочной очистки старых ядер сразу:
Весь код bash и инструкции включены в ссылку.
linux-purge utility is made for the purpose:
Install the utility from Launchpad; you can find instructions from there.
Run:
sudo linux-purge --clear-boot --keep=1 --optimize
If that does not work, run
sudo linux-purge --fix
and re-try.
If you find a bug in the software, you can report it in Launchpad. See
man linux-purge
for more details.
У меня была эта проблема и больше, поскольку я удалил некоторые initrd-img-xxx
файлы вручную из / boot, и у меня возникла проблема с тем, что эти старые версии продолжают генерироваться и заполняются /boot
папка. Чтобы это исправить, я следовал следующему:
- Я удалил сгенерированную старую версию ядра вручную, чтобы освободить место.
Вы будете редактировать текстовый файл конфигурации как суперпользователь, поэтому вставьте в терминал следующее:
sudo gedit /etc/initramfs-tools/update-initramfs.conf
Найдите строку
update_initramfs=yes
и изменить его наupdate_initramfs=no
, Сохраните и выйдите из файла, затем запустите:sudo dpkg --configure -a
Это решило мою проблему. Это было основано на этом блоге
Надеюсь, что все будет хорошо при перезагрузке, а позже вы можете попробовать изменить no
вернуться к yes
в update-initramfs.conf
,
/boot раздел иногда может быть немного странным
не начинайте напрямую удалять файлы Kernal.
Шаги, чтобы следовать
Проверьте, используется ли установленный в данный момент kernal системой linux
uname -r
это должно дать вам имя установленного в данный момент образа ядра в системе
Теперь начните удалять дополнительные файлы, кроме одного, установленного в вашей системе.
apt-get remove linux-image-XXXXX
Также удалите заголовочный файл, а также
apt-get remove linux-headers-XXXXX
Также может быть условие, когда
apt
перестал работать, в этом случае переключитесь на /bootcd /boot
Начните удалять файлы вручную, но очень осторожно и помните, не удаляя
installed one's
Kernel файлы из вашей системы.rm linux-image-XXXXX
rm linux-image-extra-XXXXXX
После удаления правильных файлов очистки частичные установки, если таковые имеются
apt-get -f install
Удалите лишние файлы, сидящие там, так как загрузочные файлы очищены вручную
apt-get autoremove
Обновление grub
update-grub
Последнее обновление ваших системных пакетов
apt-get update
Супер полезная утилита, которая очистит ваш загрузочный раздел
git clone https://github.com/erichs/bootnukem.git
cd bootnukem
sudo ./install.sh
Используйте на свой страх и риск, но у меня это сработало
sudo bootnukem
Сохранить этот скрипт как /usr/local/bin/remove_kernels.sh
(не забудьте дать разрешения на выполнение sudo chmod 755 /usr/local/bin/remove_kernels.sh
):
#!/bin/sh
if test $(id -u) != 0; then
echo Error: You must be root to run this script!
exit 1
fi
apt purge $( dpkg --list | grep -P -o "linux-image-\d\S+" | grep -v $(uname -r | grep -P -o ".+\d") )
update-grub
Затем, чтобы удалить все старые ядра, просто наберите: sudo remove_kernels.sh
[Как новичок AskUbuntu, я не могу комментировать, пока репутация не = 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, чтобы указать, что он снова здоров.
В aptitude или synaptic есть раздел "старый или установленный вручную". Там должны быть старые пакеты Linux.
Есть скрипт bash, который я написал ниже, который делает этот процесс более удобным для пользователя.
YMMV - это было сделано для Mint 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
Если вы не можете удалить больше неиспользуемых файлов и если у вас есть другой раздел с / или свободным пространством на том же устройстве, вы можете изменить размер /boot раздела с помощью parted/ gparted. (Он также включен в установочный носитель.)
Внимание: изменение размера раздела - опасная операция, сохраните ваши важные данные на другом носителе, прежде чем делать это!