Не удается выполнить обновление из-за низкого дискового пространства в / boot

Менеджер содержимого требует, чтобы Windows Media Player загружался в Windows-помощник Content Manager. Насколько я могу видеть, вы не можете использовать проигрыватель Windows Media на Ubuntu. Я не смог использовать его через Wine. Проверка даже в старых версиях WMP не будет установлена.

1
задан 22 July 2014 в 02:40

6 ответов

sudo apt-get autoremove

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

43
ответ дан 25 May 2018 в 10:54
  • 1
    это неверно. из man apt-get autoremove используется для удаления пакетов, которые были автоматически установлены для удовлетворения зависимостей для некоторого пакета, и которые больше не нужны. ядро не будет установлено для удовлетворения зависимостей, они будут установлены во время обновлений. – dward 31 May 2014 в 02:44
  • 2
    @neon_overload Я только что опубликовал его, потому что он сделал трюк для меня. – topless 30 July 2014 в 19:20
  • 3
    @dward Это освободило для меня некоторое пространство: перед автозапуском: /dev/sda1, 240M total, 171M used, 57M free, 75% used /boot после: /dev/sda1, 240M total, 129M used, 98M free, 57% used /boot – Stefan Rogin 8 May 2015 в 11:39
  • 4
    @clickstefan первый ответ правильный. см. также askubuntu.com/questions/89710/… – dward 14 May 2015 в 15:39
  • 5
    Должна быть кнопка для выполнения этой задачи в разделе «Недостаточно свободного места на диске». диалог. Это особенно поможет начинающим пользователям, которые не знакомы с командной строкой. – Martin R. 7 January 2016 в 01:28

Эквивалент принятому ответу - другим (возможно) более простым способом является установка инструмента ubuntu-tweak, его можно скачать здесь. Перейдите в «Дворник» и выберите «Старое ядро» для очистки. Это можно сделать за несколько кликов. (проверено на рабочем столе 14.04)

здесь

7
ответ дан 25 May 2018 в 10:54
  • 1
    Ситуация с отсутствием места на /boot происходит постоянно, так что это мое любимое решение - легко запускаемое приложение, которое делает работу одним щелчком мыши. – s3m3n 28 December 2015 в 16:33

По сравнению с другими ответами GUI здесь преимущество этого ответа - это родной Ubuntu Bash, который используется без установки сторонних приложений.

Решение на основе Zenity и Bash

Zenity предоставляет хороший интерфейс GUI для терминала для обработки списка и выбора элементов с помощью радиокнопки:

Текущее загруженное вами ядро ​​не может быть удалено и не включено в список. Сообщается, сколько будет сохранено в каталоге /boot. На вашем диске сохраняется больше, потому что двоичные файлы ядра также находятся в других областях. radio-buttons Теперь включены каталоги /usr/src/*kernel_version* и /lib/modules/*kernel_version*.

Измененная дата открыта с помощью команды stat. В моей системе эта дата «трогается» каждый раз, когда ядро ​​загружается с помощью этого сценария ( ) cron reboot. Однако в вашей системе дата будет датой выпуска ядра, а не в последний раз, когда вы ее загрузили.

apt-get purge дает вам шанс прервать

Вам предоставляется окончательная возможность чтобы просмотреть все, что будет очищено, и посмотреть общее количество дискового пространства (несколько вводящее в заблуждение), которое будет восстановлено:

The following packages will be REMOVED:
  linux-headers-4.7.1-040701* linux-headers-4.7.1-040701-generic*
  linux-headers-4.7.2-040702* linux-headers-4.7.2-040702-generic*
  linux-headers-4.7.3-040703* linux-headers-4.7.3-040703-generic*
  linux-headers-4.8.1-040801* linux-headers-4.8.1-040801-generic*
  linux-headers-4.8.10-040810* linux-headers-4.8.10-040810-generic*
  linux-headers-4.8.11-040811* linux-headers-4.8.11-040811-generic*
  linux-headers-4.8.4-040804* linux-headers-4.8.4-040804-generic*
  linux-headers-4.8.5-040805* linux-headers-4.8.5-040805-generic*
  linux-image-4.7.1-040701-generic* linux-image-4.7.2-040702-generic*
  linux-image-4.7.3-040703-generic* linux-image-4.8.1-040801-generic*
  linux-image-4.8.10-040810-generic* linux-image-4.8.11-040811-generic*
  linux-image-4.8.4-040804-generic* linux-image-4.8.5-040805-generic*
0 upgraded, 0 newly installed, 24 to remove and 2 not upgraded.
After this operation, 2,330 MB disk space will be freed.
Do you want to continue? [Y/n] 

Код

Скопируйте этот код в исполняемый файл с именем [ f10] в /usr/local/bin:

#!/bin/bash

# NAME: rm-kernels
# PATH: /usr/local/bin
# DESC: Provide zenity item list of kernels to remove

# DATE: Mar 10, 2017. Modified Jul 28, 2017.

# NOTE: Will not delete current kernel.

#       With 10 kernels on an SSD, empty cache from sudo prompt (#) using:
#       # free && sync && echo 3 > /proc/sys/vm/drop_caches && free
#       First time for `du` 34 seconds.
#       Second time for `du` 1 second.

# PARM: If any parm 1 passed use REAL kernel size, else use estimated size.
#       By default `du` is not used and estimated size is displayed.

# Must be running as sudo
if [[ $(id -u) != 0 ]]; then
    zenity --error --text "root access required. Use: sudo rm-kernels"
    exit 99
fi

OLDIFS="$IFS"
IFS="|"
choices=()

current_version=$(uname -r)

for f in /boot/vmlinuz*
do
    if [[ $f == *"$current_version"* ]]; then continue; fi # skip current version
    [[ $f =~ vmlinuz-(.*) ]]
    v=${BASH_REMATCH[1]}        # example: 4.9.21-040921-generic
    v_main="${v%-*}"            # example: 4.9.21-040921

    # Kernel size in /boot/*4.9.21-040921-generic*
    s=$(du -ch /boot/*-$v* | awk '/total/{print $1}')

    if [[ $# -ne 0 ]] ; then    # Was a parameter passed?
        if [[ -d "/usr/src/linux-headers-"$v_main ]] ; then
             # Kernel headers size in /usr/src/*4.9.21-040921*
             s2=$(du -ch --max-depth=1 /usr/src/*-$v_main* | awk '/total/{print $1}')
        else
             s2="0M"            # Linux Headers are not installed
        fi
        # Kernel image size in /lib/modules/4.9.21-040921-generic*
        s3=$(du -ch --max-depth=1 /lib/modules/$v* | awk '/total/{print $1}')
    else
        # Estimate sizof of optional headers at 125MB and size of image at 220MB
        if [[ -d "/usr/src/linux-headers-"$v_main ]] ; then
             s2="125M"
        else
             s2="0M"            # Linux Headers are not installed
        fi
        s3="220M"
    fi

    # Strip out "M" provided by human readable option of du and add 3 sizes together
    s=$(( ${s//[^0-9]*} + ${s2//[^0-9]*} + ${s3//[^0-9]*} ))
    t=$(( t + s ))
    s=$s" MB"
    d=$(date --date $(stat -c %y $f) '+%b %d %Y') # Last modified date for display
    choices=("${choices[@]}" false "$v" "$d" "$s")
done

# adjust width & height below for your screen 640x480 default for 1920x1080 HD screen
# also adjust font="14" below if blue text is too small or too large

choices=(`zenity \
        --title "rm-kernels - Total: $t MB excluding: $current_version" \
        --list \
        --separator="$IFS" \
        --checklist --multiple \
        --text '<span foreground="blue" font="14">Check box next to kernel(s) to remove</span>' \
        --width=640 \
        --height=480 \
        --column "Select" \
        --column "Kernel Version Number" \
        --column "Modified Date" \
        --column " Size " \
        "${choices[@]}"`)
IFS="$OLDIFS"

i=0
list=""
for choice in "${choices[@]}" ; do
    if [ "$i" -gt 0 ]; then list="$list- "; fi # append "-" from last loop
    ((i++))

    short_choice=$(echo $choice | cut -f1-2 -d"-")
    header_count=$(find /usr/src/linux-headers-$short_choice* -maxdepth 0 -type d | wc -l)

    # If -lowlatency and -generic are purged at same time the _all header directory
    # remains on disk for specific version with no -generic or -lowlatency below.
    if [[ $header_count -lt 3 ]]; then
        # Remove all w.x.y-zzz headers
        list="$list""linux-image-$choice- linux-headers-$short_choice"
    else
        # Remove w.x.y-zzz-flavour header only, ie -generic or -lowlatency
        list="$list""linux-image-$choice- linux-headers-$choice" 
    fi

done

if [ "$i" -gt 0 ] ; then
     apt-get purge $list
fi

Измененная дата Вам нужно sudo-разрешение для создания файла, поэтому используйте:

gksu gedit /usr/local/bin/rm-kernels

Чтобы сделать файл исполняемый файл:

sudo chmod +x /usr/local/bin/rm-kernels

ПРИМЕЧАНИЕ. Для версии этого сценария для сервера (текстовый, а не GUI) см .: Как удалить старые версии ядра для очистки меню загрузки?

28 июля 2017 г. Обновления

Вычисленный размер каждого ядра был взят из /boot/*kernel_version*, который состоял из 5 файлов общим объемом ~ 50 МБ. Формула изменилась, чтобы включить файлы в /usr/src/*kernel_version* и /lib/modules/*kernel_version*. Расчетный размер для каждого ядра теперь составляет ~ 400 МБ. Вышеупомянутый код для rm-kernels и rm-kernels-server обновлен.

По умолчанию нужно оценить размер файлов для linux-заголовков на 125 МБ и linux-изображение при 220 МБ, потому что du может быть болезненно медленно, если файлы не находятся в кеше. Чтобы получить реальный размер, используя du, передайте любой параметр сценарию.

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

Диалоговое окно, используемое для отображения каждого ядра ПРИМЕЧАНИЕ: . Эта дата может быть перезаписана для всех ядер во время резервного копирования или аналогичных операций. В диалоговом окне теперь отображается cron .

1
ответ дан 25 May 2018 в 10:54
  • 1
    Ты великолепен! Очень большое спасибо! Ты делаешь меня счастливым! – zhartaunik 16 June 2017 в 19:00

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

linux@linux-desktop:~$ uname -r 4.4.0-75-generic . По крайней мере, эта версия должна оставаться нетронутой. Откройте синаптический интерфейс и запустите заполняющий фильтр, как показано ниже: Теперь вы можете выбрать все пакеты, которые вы хотите удалить, и сделать следующее: Отметить для полного удаления -> Применить. Я бы предложил сохранить хотя бы последний текущий пакет ядра и одно предыдущее ядро. Например, в этом случае вы можете безопасно избавиться от linux-image-4.4.0-66-generic и linux-image-extra-4.4.0-66-generic, но хорошо сохранить 4.4.0-72 и, конечно же, 4.4.0-75.

0
ответ дан 25 May 2018 в 10:54

Для облегчения командной строки:

https://github.com/erichs/bootnukem

git clone https://github.com/erichs/bootnukem.git
cd bootnukem
sudo ./install.sh

Затем

sudo bootnukem --dry-run
0
ответ дан 25 May 2018 в 10:54

Работает на Linux Mint 18.3 (на основе Ubuntu 16.04).

sudo apt-get purge $(dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | head -n -1) --assume-yes

Источник: https://ubuntuforums.org/showthread.php?t=2248846& р = 13146650 # post13146650

0
ответ дан 25 May 2018 в 10:54

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

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