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

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

我读完了所有能找到的帖子,甚至包括那些说这个问题在其他地方已经得到解答的帖子,但没有一个能解决我遇到的具体问题。运行更新管理器后,出现了与未满足依赖关系相关的错误,并建议使用apt-get 安装 -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

我怀疑最后五个字设备上没有剩余空间很重要,但 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 

答案1

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

  df -i 

这表明 inode 使用率为 99%。因此,尽管我的磁盘有足够的剩余空间,但由于 inode 数量有限,我无法创建更多文件。清理磁盘可以解决我的问题。

答案2

我认为你的启动分区里全是旧的内核映像,没有空间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-*,你就应该有空间了。

答案3

我使用过它sudo apt-get autoremove,它删除了一堆旧的内核头文件包。之后一切就好了。

答案4

如果你的磁盘空间不足,apt-get clean/apt-get autoclean没有给你足够的空间,并且你有一些多余的 RAM,请尝试我的答案:

https://unix.stackexchange.com/a/726355/250404

我使用 ramdisk 挤出足够的空间来完成apt --fix-broken install并恢复此操作。

相关内容