更新后损坏的包:linux-headers,错误:BrokenCount> 0

Ubuntu 12.04。

更新后,我在系统托盘中收到一个红色警告图标,警告错误:已损坏计数> 0

打开更新管理器,我看到破坏的软件包是linux-headers-3.2.0-33-generic-pae (new install)

具体而言,我的AsbuireOne上有我的ubuntu,内存为8GB。

我按照本网站上的另一个问题的建议尝试了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.3Mb。

我太失落了。 我真的希望这里有一些我不知道的东西。 我不想重新格式化这个桶。 这真的不值得花时间。 任何帮助解决这个问题都会很热门。

我实际上找到了解决问题的方法。 似乎使用root来启动nautilus会导致所有inode达到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! inode使用100%? 这意味着存储了很多很多小文件。 哪里?

我使用了命令:

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

这给了一个巨大的文件列表似乎没问题,除了根目录已经充满了以下文件:

 /root/.local/share/Trash/files/ 

所以我跑了:

 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 Gb)这使得系统也非常快,因此修复问题会产生积极的副作用,因为我的计算机现在看来似乎快闪电!

我想要注意的是,如果您遇到同样的问题,系统中的任何文件夹都可能包含那些填满您的inode的小文件。 仔细检查使用以下方法创建的列表:

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

将帮助您找到需要更正的文件夹。

使用更新管理器安装wine时遇到了同样的错误,唯一有帮助的是使用rm / var / lib / apt / lists * -vf删除所有软件包

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

它删除了我的包,然后我启动了软件中心。 它说它打破了包裹,所以我选择修理它们。 它下载了必要的包。 一切顺利之后。

我最近发现了同样的问题,但罪魁祸首是Ubuntu本身。 由于它“不”处理“旋转”的方式。

以前版本的linux-headers-generic软件包以及linux-images软件包从未被删除。 如果它是最后两个或三个没问题,但有几乎20个版本的内核和内核头文件。 linux-headers包中包含大量文件,这些文件占用了所有的i-node。 删除除最后一个树内核头文件之前的所有内容(以前的linux-headers-generic-3.2.0-?),我从100%的i-nodes下降到45%。

起初我不知道是什么导致了这个问题,但在阅读了你的案例之后,我检查了我的i-nodes计数并且是100%已满,在实践中就像200个免费的inode来自近700.000。

只需删除以前的linux-headers包即可。 使用GUI +搜索function和订单function,Synaptic可以更轻松。

我写这个也是为了帮助最近遇到这个问题的人。

所有这些答案都没有帮助我。 但我找到了这个页面,并使用那里的想法,我可以迅速将我的inode数从100%降低到约50%: http : //www.pkdavies.co.uk/142-dpkg-no-space-left-on -device.html

这个想法,基本上是找到正在吃掉inode的文件夹。

在终端中,cd到root开始:

 # cd / 

然后搜索占用大多数inode的文件夹:

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

这会给你一个文件夹列表。 再次按照上述步骤进入具有最大inode数的文件夹,然后再次运行搜索命令。

我发现许多未使用和未安装的内核仍占用内核源文件夹中的空间和inode,例如在/usr/src/linux-headers-*

请注意,不要删除安装的uname -rv来源—请与uname -rv检查这是什么?

因此,在找到文件夹后,我一次删除了一个过时的目录,例如

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

在此之后我可以成功运行它来修复我的系统:

 # apt-get -f install 

希望这可以帮助。