apt-get:设备上没有剩余空间(12.04)

我已经阅读了我能找到的每一个主题 – 甚至那些说这个问题已经在其他地方得到解答但却没有解决我遇到的具体问题的主题。 Update Manager运行并产生与未满足的依赖关系相关的错误,并建议使用apt-get install -f ,该消息失败并显示以下消息:

Unpacking linux-headers-3.5.0-36 (from .../linux-headers-3.5.0-36_3.5.0-36.57~precise1_all.deb) ... dpkg: error processing /var/cache/apt/archives/linux-headers-3.5.0-36_3.5.0-36.57~precise1_all.deb (--unpack): unable to create `/usr/src/linux-headers-3.5.0-36/arch/arm/mach-iop32x/include/mach/glantank.h.dpkg-new' (while processing `./usr/src/linux-headers-3.5.0-36/arch/arm/mach-iop32x/include/mach/glantank.h'): No space left on device 

我怀疑最后5个字在设备没有剩余空间是显着的,但df和du都显示足够的空间。 所以我想知道,什么设备需要更多空间?

来自df -h输出

 Filesystem Size Used Avail Use% Mounted on /dev/sda1 5.5G 4.4G 786M 86% / udev 996M 4.0K 996M 1% /dev tmpfs 402M 880K 401M 1% /run none 5.0M 0 5.0M 0% /run/lock none 1004M 156K 1004M 1% /run/shm /dev/sdb1 30G 1.4G 27G 5% /home /dev/sdc1 299G 31G 268G 11% /media/HD-PCTU2 

我刚遇到同样的问题。 我在其他地方遇到了提到的inode,并在我的终端中运行以检查inode的使用情况:

  df -i 

这表明inode的使用率为99%。 因此,虽然我的磁盘有足够的空间,但由于inode数量的限制,我无法创建更多文件。 一些磁盘清理是我的问题的解决方案。

我认为你的启动分区充满了旧的内核映像,没有新的apt-get试图安装的空间。 你可以输入

 dpkg -l linux-headers-\* linux-image-\* | grep ^ii 

进入终端窗口。 当我这样做时,我明白了

 ii linux-headers-3.8.0-18 3.8.0-18.28 all Header files related to Linux kernel version 3.8.0 ii linux-headers-3.8.0-18-generic 3.8.0-18.28 amd64 Linux kernel headers for version 3.8.0 on 64 bit x86 SMP ii linux-headers-3.8.0-19 3.8.0-19.30 all Header files related to Linux kernel version 3.8.0 ii linux-headers-3.8.0-19-generic 3.8.0-19.30 amd64 Linux kernel headers for version 3.8.0 on 64 bit x86 SMP ii linux-headers-3.8.0-21 3.8.0-21.32 all Header files related to Linux kernel version 3.8.0 ii linux-headers-3.8.0-21-generic 3.8.0-21.32 amd64 Linux kernel headers for version 3.8.0 on 64 bit x86 SMP ii linux-headers-3.8.0-22 3.8.0-22.33 all Header files related to Linux kernel version 3.8.0 ii linux-headers-3.8.0-22-generic 3.8.0-22.33 amd64 Linux kernel headers for version 3.8.0 on 64 bit x86 SMP ii linux-headers-3.8.0-23 3.8.0-23.34 all Header files related to Linux kernel version 3.8.0 ii linux-headers-3.8.0-23-generic 3.8.0-23.34 amd64 Linux kernel headers for version 3.8.0 on 64 bit x86 SMP ii linux-headers-3.8.0-25 3.8.0-25.37 all Header files related to Linux kernel version 3.8.0 ii linux-headers-3.8.0-25-generic 3.8.0-25.37 amd64 Linux kernel headers for version 3.8.0 on 64 bit x86 SMP ii linux-headers-generic 3.8.0.25.43 amd64 Generic Linux kernel headers 

由于我有很多,我可以删除一些最老的

 sudo apt-get remove linux-headers-3.8.0-18 

如果apt-get失败,因为它错过了某些包依赖项(由于缺少免费的inode而无法安装),您可以直接使用dpkg

 sudo dpkg --remove linux-headers-3.8.0-18 

对你最老的linux-headers-*这样做几次,你应该有空间。

我使用了sudo apt-get autoremove ,它删除了一堆旧的kernel-headers包。 很高兴去那之后。

据我所知,Linux ext *文件系统中的inode限制大约为40亿,但不是更少,这是大量的文件。 所以你的问题是某些东西产生了很多文件。 我可以建议你先检查一下: http : //blog.scoutapp.com/articles/2014/10/08/understanding-disk-inodes所以你会发现什么填充了你的FS的inode。 我也可以建议清理apt缓存:

 sudo apt-get clean 

 sudo apt-get autoclean