当前位置: 首页>>技术问答>>正文


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软件包。很高兴去那之后。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/6451.html,未经允许,请勿转载。