"У завантажувачі гучності залишилось лише 0 байт дискового простору"


32

Після недавнього оновлення я отримую попередження:

The volume boot has only 0 bytes disk space remaining

Але на моєму комп’ютері є багато місця у форматі HD. Хтось знає, як я це вирішую. (Якщо це доречно, я використовую всю функцію шифрування диска альтернативного образу установки для Ubuntu 12.04).


Це дійсно залежить від того, як ви встановили Ubuntu на свою машину. Чи можете ви "sudo fdisk -l" в терміналі і перевірити, чи є невеликий розділ, який майже заповнений?
Паулій Шукіс

4
Ще краще, будь ласка, запустіть команду 'df -H -x tmpfs -x devtmpfs' без лапок і вставте тут вихід.
fabricator4

Це питання та відповіді пов'язані з проблемою та можуть допомогти.
еломаж

мабуть, відома проблема зашифрованого розділу. відповідь askubuntu.com/a/230942/231504 чудово - працює для мене. Також, будь ласка, збільшуйте
пестофаг

Відповіді:


48

Щоб перерахувати все ядро:
dpkg --get-selections | grep "linux-image-[[:digit:]].*" | tr "\t" ";" | cut -d ";" -f1

Результати виглядають приблизно так:

linux-image-3.19.0-7-generic 
linux-image-3.18.0-13-generic  
linux-image-3.16.0-23-generic

Не видаляйте всі ядра, лише старі!

Далі видалимо ядро ​​3,16,
sudo apt-get purge linux-image-3.16.0-23-generic

а потім усі невикористані пакети з системи:
sudo apt-get autoclean && sudo apt-get autoremove


У мене extraтеж деякі дзвонили , наприклад, як linux-image-3.13.0-40-genericі linux-image-extra-3.13.0-40-generic. Чи можна їх видалити за допомогою extra?
Mads Skjern

Це було надзвичайно корисно, але не вирішило повністю мою проблему (очищення старого ядра все ще не вдавалось). Довелося вручну видалити деякі старі файли ядра. Я знайшов кілька великих find /boot/ -type f | xargs du | sort -n. Мій в даний час працює ядро 3.13.0-66-generic, тому я обережний , щоб не видалити всі пов'язані з цим, але я видалити наступне: sudo rm /boot/initrd.img-3.13.0-63-generic /boot/initrd.img-3.13.0-65-generic /boot/vmlinuz-3.13.0-65-generic /boot/vmlinuz-3.13.0-63-generic. Нарешті, запуск очищення на старому ядрі вдається.
вибухнув

4
якщо у вас дійсно 0 байт, це не працюватиме, як сказав @blong. Ви повинні вручну видалити старий файл vmlinuz раніше, оскільки процес очищення потребує створення деяких файлів, і, якщо залишилося 0 байтів, це не вдасться.
pomarc

1
Як дізнатися, які ядра старі? Мій вихід - linux-image-4.10.0-42-generic linux-image-4.13.0-26-generic linux-image-4.13.0-32-generic linux-image-4.13.0-37-generic linux-image -4.13.0-38-generic linux-image-4.13.0-39-generic linux-image-4.13.0-41-generic linux-image-4.13.0-43-generic linux-image-4.8.0-36 -генеріческій
Джекоб

25

Причиною були справді старі образи ядра.
Щоб очистити все, що мені потрібно було, - запустити один рядок:

sudo apt-get autoclean && sudo apt-get autoremove

Це автоматично розпізнавало старі ядра та видаляло їх.


9

Можливо, ваш /bootрозділ накопичив занадто багато версій ядра, роблячи оновлення з часом. Цей розділ, ймовірно, буде окремим від вашого великого дискового розділу (встановленого як /). Ви можете перевірити /bootпростір розділу таким чином (шукайте рядок з / boot):

df -h

Є приємна сторінка про те, як видалити старі ядра .

Якщо коротко, перевірте свою поточну версію ядра, отримайте список встановленої версії, а потім apt-get видаліть старі версії. На сторінці також є «магічна» однолінійна команда, яка зробить усе, що вам подобається. Але використовуйте його на свій страх і ризик.

Інструкції більш докладно:

  1. Отримайте поточну версію ядра, яку ви хочете зберегти :

    uname -r
    
  2. Отримайте список усіх встановлених ядер:

    dpkg -l | grep linux-image-
    
  3. Запустіть apt-get remove на ядрах, які ви хочете видалити. Не на останній ! Наприклад:

    sudo apt-get remove linux-image-2.6.32-22-generic
    

Більше приміток:

  • dpkg -lповідомляє вам статус пакету (ядра) перед назвою пакета. Наприклад:

    rc  linux-image-3.13.0-39-generic  ...
    ii  linux-image-3.13.0-40-generic  ...
    
    • "rc" означає, що пакунок r емістований та має c конфігураційні файли. Їх більше не потрібно видаляти.
    • «II» означає , що пакет позначений для я становки і я ленная

    Виходячи з цього, ви можете перелічити лише встановлені пакети ядра:

    dpkg -l | grep "ii.*linux-image-"
    

Альтернативне рішення , використовуючи інструмент GUI Ubuntu Tweak .

Встановіть та перейдіть до «Комп'ютерний двірник», перевірте «Система» - «Старе ядро» та «Система»> «Необхідні пакети» та натисніть «Очистити».


3

Використовуйте цей скрипт, щоб видалити всі інші старі ядра, залишаючи поточну версію та попередню (остання 1 версія ядра)

KERNELMAGES=`ls -lRt /boot/vmlinuz-*| awk -F/ '{print $3}' | grep -v $(uname -r) | sed 1d | sed -e 's/vmlinuz/linux-image/g'`

KERNELHEADERS=`ls -lRt /boot/vmlinuz-*| awk -F/ '{print $3}' | grep -v $(uname -r) | sed 1d | sed -e 's/vmlinuz/linux-headers/g'`

for PURGEKERNEL in `echo $KERNELMAGES $KERNELHEADERS`; do

apt-get autoremove -y && apt-get purge $PURGEKERNEL -y

done

Працював ідеально, навіть коли я не міг зробити відповідь "Paradiesstaub" з командного рядка.
буйний

Мені дістається "Дозвіл відмовлено" ...
Річард Харді
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.