Сломанный пакет после обновления: linux-headers, ошибка: BrokenCount > 0

Ubuntu 12.04.

После обновления я получаю красный значок предупреждения в системном трее, предупреждающий об ошибке: количество ошибок> 0

При открытии диспетчера обновлений я вижу, что сломанный пакет - linux-headers-3.2.0-33-generic-pae (new install)

В частности, у меня есть Ubuntu на AspireOne с 8 ГБ встроенной памяти.

Я попытался apt-get clean, как предложено в другом вопросе на этом сайте, и попытался переустановить пакет в Synaptic.

Я пытался перезагрузиться, но безрезультатно.

Я также пробовал apt-get install --fix-broken и получаю следующее:

sudo apt-get install --fix-broken
[sudo] password for elina: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following extra packages will be installed:
  linux-headers-3.2.0-33-generic-pae
The following NEW packages will be installed:
  linux-headers-3.2.0-33-generic-pae
0 upgraded, 1 newly installed, 0 to remove and 38 not upgraded.
1 not fully installed or removed.
Need to get 0 B/977 kB of archives.
After this operation 11,3 MB of additional disk space will be used.
Do you want to continue [Y/n]; y
(Reading database ... 437051 files and directories currently installed.)
Unpacking linux-headers-3.2.0-33-generic-pae (from .../linux-headers-3.2.0-33-generic-pae_3.2.0-33.52_i386.deb) ...
dpkg: error processing /var/cache/apt/archives/linux-headers-3.2.0-33-generic-pae_3.2.0-33.52_i386.deb (--unpack):
 unable to create `/usr/src/linux-headers-3.2.0-33-generic-pae/include/config/usb/gspca/sonixb.h.dpkg-new' (while processing `./usr/src/linux-headers-3.2.0-33-generic-pae/include/config/usb/gspca/sonixb.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.2.0-33-generic-pae_3.2.0-33.52_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Я испробовал все предложения, которые смог найти:

sudo apt-get clean
sudo apt-get autoclean
sudo apt-get autoremove
sudo apt-get update
sudo apt-get upgrade
sudo apt-get -f install
sudo apt-get install --fix-broken

Затем я увидел это на Ошибка было упоминание о свободном пространстве. Итак, я сделал df -h, и результат был:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       7,0G  5,5G  1,1G  84% /
udev            235M  4,0K  235M   1% /dev
tmpfs            97M  816K   96M   1% /run
none            5,0M     0  5,0M   0% /run/lock
none            242M  352K  242M   1% /run/shm

Я вижу, что в моей корневой папке у меня свободно 1.1Gb. Разбитый пакет

linux-headers-3.2.0-33-generic-pae_3.2.0-33.52_i386.deb

занимает всего 11,3 Мб на моем жестком диске.

1118 Я тааак потерян. Я действительно надеюсь, что что-то здесь мне не хватает. Я не хочу переформатировать это ведро. Это действительно не стоит времени. Любая помощь для исправления этого будет горячей.

7
задан 02.03.2017, 23:58

4 ответа

Я действительно нашел решение своих проблем. Казалось, что использование root для запуска nautilus привело к тому, что все иноды поднялись до 100%. Пришлось вычистить их в корнях мусора. Поэтому я сделал следующее:

df -i

Это дало мне следующее:

$ df -i
Filesystem     Inodes  IUsed IFree IUse% Mounted on
/dev/sda1      460560 456125  4435  100% /
udev            60125    491 59634    1% /dev
tmpfs           61943    403 61540    1% /run
none            61943      3 61940    1% /run/lock
none            61943      8 61935    1% /run/shm

woops! Иноды в использовании 100%? это означает, что где-то хранится множество крошечных файлов. Где?

Я использовал команду:

sudo du -h /* | grep '[0-9]M'

Это дало огромный список файлов, которые выглядели нормально, за исключением того факта, что корневые корзины были полны файлов в:

[113 ]

Итак, я запустил:

sudo rm -r /root/.local/share/Trash/files/

и:

sudo touch /forcefsck

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

После этого, запустив:

df -i
and df -Th

произвел следующее:

$ df -i
Filesystem     Inodes  IUsed  IFree IUse% Mounted on
/dev/sda1      460560 196674 263886   43% /
udev            60125    487  59638    1% /dev
tmpfs           61943    393  61550    1% /run
none            61943      3  61940    1% /run/lock
none            61943      8  61935    1% /run/shm

$ df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda1      ext4      7,0G  4,7G  2,0G  71% /
udev           devtmpfs  235M  4,0K  235M   1% /dev
tmpfs          tmpfs      97M  816K   96M   1% /run
none           tmpfs     5,0M     0  5,0M   0% /run/lock
none           tmpfs     242M  356K  242M   1% /run/shm

iNodes вернулись в нормальное состояние, и я фактически увидел небольшое увеличение дискового пространства (с 1,1 до 2,0 Гб) Это также сделало систему очень быстрой, так что имел место положительный побочный эффект для решения проблемы, так как мой компьютер теперь работает молниеносно!

Хочу заметить, что если вы страдаете от та же проблема, любая папка в вашей системе может содержать эти крошечные файлы, которые заполняют ваши inode. Внимательно изучив список, созданный с помощью:

sudo du -h /* | grep '[0-9]M'

, вы сможете найти, какая папка нуждается в исправлении.

6
ответ дан 16.10.2019, 15:14

У меня была такая же ошибка при установке wine с менеджером обновлений, и единственное, что помогло, это удалить все мои пакеты с помощью rm / var / lib / apt / lists * -vf

sudo rm /var/lib/apt/lists/* -vf

мои пакеты, затем я запустил Центр программного обеспечения. Он сказал, что у него сломаны пакеты, поэтому я решил починить их. Здесь скачаны необходимые пакеты. После этого все прошло хорошо.

4
ответ дан 16.10.2019, 15:14
  • 1
    кажется, что та же ошибка может быть произведена многими путями. В моем случае решение немного отличалось и I' ve добавил его ниже. – Javier 30.11.2012, 18:21

Недавно я обнаружил ту же проблему, но виновником была сама Ubuntu. Благодаря тому, что он "не" обрабатывает "вращение".

Предыдущие версии пакета linux-headers-generic, а также пакетов linux-images так и не были удалены. Если это были последние два или три, не проблема, но было почти 20 версий ядра и заголовков ядра. пакет linux-headers содержит огромное количество файлов, которые съедают все ваши i-узлы. Удалив все заголовки ядра, кроме последнего, (предыдущие linux-headers-generic-3.2.0-?), Я сократил число используемых i-узлов со 100% до 45%.

Сначала я не знал, в чем причина проблемы, но после прочтения вашего случая я проверил количество i-узлов и был заполнен на 100%, на практике это примерно 200 свободных инодов из почти 700 000.

Простое удаление предыдущих пакетов linux-headers делает свое дело. Synaptic делает это проще с помощью функции поиска GUI + и функции заказа.

Я пишу это также как помощь людям, которые недавно столкнулись с этой проблемой.

3
ответ дан 16.10.2019, 15:14
  • 1
    В моем случае было приблизительно 50 версий версии 3.13.0. udev -rv ядра, сказал мне, что я работал 3.10.13-108, который был также тем, перечисленным как поврежденный пакет (беспокойно). Поэтому я сохранил версии 10* и 9* для пребывания на стороне осторожности. inode использование упало с 100% до 41% – Javier 05.02.2017, 18:51

Все эти ответы не помогли мне. Но я нашел эту страницу, и, используя идеи, я мог быстро снизить счетчик инодов со 100% до 50%: http://www.pkdavies.co.uk/142-dpkg-no-space- left-on-device.html

Идея состоит в том, чтобы в основном находить папки, поедающие иноды.

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

# cd /

Затем найдите папки, поедающие большинство инодов:

# for i in `ls -1A`; do echo "`find $i | sort -u | wc -l` $i"; done | sort -rn | head -20

Это даст вам список папок. Выполните описанные выше шаги еще раз, чтобы перейти в папку с наибольшим количеством инодов и снова запустить команду поиска.

Я нашел много неиспользуемых и неустановленных ядер, которые все еще занимали место и inode в папках исходных кодов ядра, например, в /usr/src/linux-headers-*.

ВНИМАНИЕ, НЕ УДАЛЯЙТЕ ИСТОЧНИКИ УСТАНОВЛЕННОГО ЯДРА - ПРОВЕРЬТЕ uname -rv, КОТОРЫЙ ЕСТЬ

Поэтому, после того как я нашел папки, я удалил устаревшие каталоги по одному, например, с

root@gamma:/usr/src# sudo rm -rf linux-headers-3.2.0-30

После этого я мог успешно выполнить это для восстановления моей системы:

# apt-get -f install

Надеюсь, это поможет.

3
ответ дан 16.10.2019, 15:14
  • 1
    Определите текущий выпуск ядра и версию с uname -rv. Это будет тем для избегания при удалении каталогов старых версий. Обращаться с осторожностью. – Gene T 05.02.2017, 18:47

Теги

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