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

esc*_*zul 7 updates apt

Ubuntu 12.04。

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

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

具体来说,我将 ubuntu 安装在具有 8GB 内部存储空间的 AspireOne 上。

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)
Run Code Online (Sandbox Code Playgroud)

我已经尝试了所有我能找到的建议:

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
Run Code Online (Sandbox Code Playgroud)

然后我看到错误中提到了可用空间。所以我做了一个 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
Run Code Online (Sandbox Code Playgroud)

我看到我的根文件夹中有 1.1Gb 可用空间。破损的包裹是

linux-headers-3.2.0-33-generic-pae_3.2.0-33.52_i386.deb
Run Code Online (Sandbox Code Playgroud)

在我的硬盘上只占用 11.3Mb。

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

esc*_*zul 7

我实际上找到了解决我的问题的方法。似乎使用 root 启动 nautilus 导致所有 inode 上升到 100%。不得不清理根部垃圾中的那些。所以我做了以下事情:

df -i
Run Code Online (Sandbox Code Playgroud)

这给了我以下内容:

$ 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
Run Code Online (Sandbox Code Playgroud)

哇!inode 使用率 100%?这意味着存储在某处的大量小文件。在哪里?

我使用了命令:

sudo du -h /* | grep '[0-9]M'
Run Code Online (Sandbox Code Playgroud)

这给出了一个巨大的文件列表,这些文件似乎没问题,除了根垃圾箱中充满了以下文件:

/root/.local/share/Trash/files/
Run Code Online (Sandbox Code Playgroud)

所以我跑了:

sudo rm -r /root/.local/share/Trash/files/
Run Code Online (Sandbox Code Playgroud)

和:

sudo touch /forcefsck
Run Code Online (Sandbox Code Playgroud)

然后重新启动让最后一个命令完成它的工作。

之后,运行:

df -i
and df -Th
Run Code Online (Sandbox Code Playgroud)

产生了以下内容:

$ 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
Run Code Online (Sandbox Code Playgroud)

iNodes 恢复正常,我实际上看到磁盘空间略有增加(从 1,1 到 2,0 Gb)这使系统也非常快,因此修复问题有积极的副作用,因为我的计算机现在似乎快如闪电!

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

sudo du -h /* | grep '[0-9]M'
Run Code Online (Sandbox Code Playgroud)

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