После очередного обновения убунты, я понял что меня вконец замучал растущий список загрузки в grub (это особенно актуально, если альтернативная ОС остается где-то внизу списка). Удалять вручную — это как-то неправильно, поэтому я решил заморочиться об автоматическом способе. На хабре найти нужный топик мне не удалось, потому, покопавшись в интернете, я нашел рецепт, единственный минус которого было использование временных файлов, что мне не очень понравилось. Сделав пару преобразований, я получил чуть более упрощенный вариант (запускать через sudo). Внимание (UPD): рекомендуется использовать не данный код, а код в конце поста, т.к. в отдельных ситуациях данный код может удалить и текущее ядро. #!/bin/bash kernels=`dpkg-query -l linux-image-* | grep ^ii | grep -v e-g | head -n -1 | gawk -F" " '{ print $2 }'` for i in $kernels do echo "Removing kernel: "$i # sudo apt-get -y remove $i done Поскольку мои познания в написании скриптов под shell можно считать нулевыми, я закомментировал неспосредственно строчку с удалением, на случай если где-то допустил критическую ошибку Просьба хабражителей высказать свое мнение насчет надежности кода — и тогда я уберу комментарий. Кроме того, мне кажется можно и этот код упросить до одной команды (что у меня, к сожалению, не получилось). Надеюсь, кому-нибудь пригодится. UPD Хабраюзеры Messie и ValdikSS подсказали более корректный и однострочный вариант: dpkg -l linux-image-* | grep ii | grep -v [a-z]-generic | grep -v `uname -r` | awk '{ print $2 }' | xargs apt-get -y purge Источник
|