«При установке пакетов не осталось места на устройстве», но у меня осталось свободное место

Будь то через менеджер обновлений или через терминал, я выдаю ошибку.

Когда я пытаюсь sudo apt-get update && sudo apt-get upgrade:

Fetched 1,024 kB in 20s (51.0 kB/s) 
Reading package lists... Done 
Reading package lists... Done 
Building dependency tree Reading state information... Done 
You might want to run 'apt-get -f install' to correct these. 
The following packages have unmet dependencies: linux-headers-generic : 
Depends: linux-headers-3.13.0-29-generic but it is not installed 
E: Unmet dependencies. Try using -f.

И когда я пытаюсь sudo apt-get -f install:

Unpacking linux-headers-3.13.0-29-generic (3.13.0-29.53) ... 
dpkg: error processing archive /var/cache/apt/archives/linux-headers-3.13.0-29-generic_3.13.0-29.53_amd64.deb 
(--unpack): unable to create /usr/src/linux-headers-3.13.0-29-generic/include/config/inotify/user.h.dpkg-new' (while processing./usr/src/linux-headers-3.13.0-29-generic/include/config/inotify/user.h'): No space left on device 
No apport report written because the error message indicates a disk full error dpkg-deb: error: subprocess paste was killed by signal (Broken pipe) 
Errors were encountered while processing: /var/cache/apt/archives/linux-headers-3.13.0-29-generic_3.13.0-29.53_amd64.deb 
E: Sub-process /usr/bin/dpkg returned an error code (1)

Когда я открываю центр программного обеспечения Ubuntu, я получаю следующий текст:

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

У меня есть возможность «исправить» или «отменить». Если я нажимаю «восстановить», я получаю следующую ошибку:

Package operation failed
the installation or removal of a software package failed.
(Reading database ... 417598 files and directories currently installed.) 
Preparing to unpack .../linux-headers-3.13.0-29-generic_3.13.0-29.53_amd64.deb ...   Unpacking linux-headers-3.13.0-29-generic (3.13.0-29.53) ... 
dpkg: error processing archive /var/cache/apt/archives/linux-headers-3.13.0-29-generic_3.13.0-29.53_amd64.deb 
(--unpack): unable to create /usr/src/linux-headers-3.13.0-29-generic/include/config/bug.h.dpkg-new' (while processing./usr/src/linux-headers-3.13.0-29-generic/include/config/bug.h'): No space left on device 
No apport report written because the error message indicates a disk full error dpkg-deb: error: subprocess paste was killed by signal (Broken pipe) 
Errors were encountered while processing: /var/cache/apt/archives/linux-headers-3.13.0-29-generic_3.13.0-29.53_amd64.deb 
Error in function: dpkg: dependency problems prevent configuration of linux-headers-generic: linux-headers-generic depends on linux-headers-3.13.0-29-generic; however: Package linux-headers-3.13.0-29-generic is not installed.
dpkg: error processing package linux-headers-generic (--configure): dependency problems - leaving unconfigured 
dpkg: dependency problems prevent configuration of linux-generic: linux-generic depends on linux-headers-generic (= 3.13.0.29.35); however: Package linux-headers-generic is not configured yet.
dpkg: error processing package linux-generic (--configure): dependency problems - leaving unconfigured

Ошибка переполнения диска является странной, потому что ни один из моих дисков не заполнен. Я знаю это, потому что когда я запускаю df, я получаю следующее:

Filesystem 1K-blocks      Used Available Use% Mounted on 
/dev/sda6   36178648  13162504  21155332  39% /
none               4         0         4   0% /sys/fs/cgroup
udev         3873544        12   3873532   1% /dev
tmpfs         776860      1384    775476   1% /run
none            5120         0      5120   0% /run/lock
none         3884300     25276   3859024   1% /run/shm
none          102400        68    102332   1% /run/user
/dev/sda2  124327968  42583252  81744716  35% /media/sudoer/48AEC994AEC97B48 
/dev/sda3  807468724 121812996 685655728  16% /media/sudoer/New Volume

Что мне делать на этом этапе? Заранее спасибо.

5
задан 4 October 2014 в 18:21

6 ответов

В файловой системе Unix файл и каталог имеют две части: inode и данные.

В inodes хранившая информация о файле, таком как разрешение, владелец, время изменения, время доступа, и так далее.

Общее количество inodes ограничено, таким образом, можно добраться No space left on device если Вы достигаете такого предела, даже если диск не очень полон.

Использование:

df -i

просмотреть inodes, если Вы получаете 100% для IUse и 0 IFree, это означает, что у Вас есть много маленького файла.

Например, если у Вас есть 2 миллиарда файлов, размер которых составляет 1 байт, Вы могли достигнуть предела inode, но Ваш диск мог быть не абсолютно полным.

Если это - Ваш случай, попытайтесь удалить больше файла, Вы можете и, чем восстановление apt-get update.

16
ответ дан 4 October 2014 в 18:21

Можно вымыться, пространство в начальной загрузке / (удалите старые заголовки Linux и т.д.), с:

sudo apt-get autoremove
1
ответ дан 4 October 2014 в 18:21

Я также встретился с этой проблемой. Согласно подсказке,

не могущий создать/usr/src/linux-headers-3.13.0-29-generic/include/...

, Как объяснено Lety, "Общее количество inodes ограничено". Таким образом, я удалил некоторые старые пакеты заголовков Linux с помощью диспетчера пакетов, таким образом /usr будет иметь достаточно inodes, например sudo apt-get remove linux-headers-3.13.0-3*, затем я могу работать sudo apt-get install -f для продолжения установки.

1
ответ дан 4 October 2014 в 18:21

Как @Lety сказал, проблема состоит в том, как найти папки с большим количеством крошечных файлов, которые потратили впустую весь Ваш inodes (как df -i покажите).

Найдите тяжелые пакеты (как старые ядра) с

wajig sizes | tail -n 30

какой requiere wajig установленный, иначе:

dpkg-query --show --showformat='${Package;-50}\t${Installed-Size}\n' | sort -k 2 -n | grep -v deinstall | awk '{printf "%.3f MB \t %s\n", $2/(1024), $1}'|tail -n 10

Использовать uname -r для нахождения текущего ядра Вы не хотите удалять его.

Затем попытка:

  1. Перезагрузка или попытка, если существует какой-либо процесс для уничтожения, который открыл большой файл, который был с тех пор удален sudo lsof +L1
  2. Удалите неиспользованные пакеты sudo apt-get autoremove
  3. Чистый кэш sudo apt-get clean или вручную на /var/cache/apt/archives
  4. Использовать apt-get remove или sudo dpkg --purge удалить некоторые старые ядра или тяжелые пакеты. Возможно, Вы все еще добираетесь unable to create /usr/src/linux-headers...
  5. Если Вы доберетесь здесь, то Вы будете использовать те медленные методы, чтобы найти виновную папку, но сначала перейти к обычным подозреваемым, использующим что-то как for i in /usr/src/*; do echo $i; find $i |wc -l; done:
    1. Папки заголовка Linux: /usr/src/linux-headers-*
    2. Журналы: /var/log/

Определенные счетчики папки:

  • du --inodes -d 1 /usr/src/ | sort -n
  • sudo find . -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -n
  • sudo find . -maxdepth 1 -type d | grep -v '^\.$' | xargs -n 1 -i{} find {} -xdev -type f | cut -d "/" -f 2 | uniq -c | sort -n
1
ответ дан 4 October 2014 в 18:21

Ваш tmpfs может быть полным. /tmp жизни в Вашей RAM или подкачка. Можно проверить, сколько пространства используется путем выполнения:

$ df -h | grep tmpfs
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           3.9G   33M  3.9G   1% /dev/shm
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
tmpfs           3.9G  3.9G     0 100% /tmp

Для временного увеличения его размера попробуйте следующую команду:

sudo mount -o remount,size=16G,noatime /tmp

Можно также постоянно увеличить размер через /etc/fstab.

1
ответ дан 23 November 2019 в 08:39

Исчерпание инодов в Ubuntu: если приведенные ниже команды показывают ту же ошибку, перейдите в /usr/src и удалите старые каталоги ядра (неиспользуемые), чтобы решить проблемы .

sudo apt-get -f install
sudo apt autoremove

Для получения дополнительной информации см.: https://medium.com/@brucepomeroy/running-out-of-inodes-on-ubuntu-718aef71ac16

0
ответ дан 15 December 2020 в 11:49

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

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