Inode 使用率已升至 100%,因此无法卸载任何软件包

Inode 使用率已升至 100%,因此无法卸载任何软件包

我的服务器的 inode 使用率已达到 100%,因此我无法卸载额外linux-kernel-headerslinux-kernel-images

$ df -i
Filesystem     Inodes  IUsed  IFree IUse% Mounted on
/dev/xvda1     524288 523970    318  100% /
none           481856      2 481854    1% /sys/fs/cgroup
udev           480561    396 480165    1% /dev
tmpfs          481856    317 481539    1% /run
none           481856      1 481855    1% /run/lock
none           481856      1 481855    1% /run/shm
none           481856      3 481853    1% /run/user
/dev/xvdb      262144     11 262133    1% /mnt

硬盘使用率也只有 78%

$ sudo df -kh
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.8G  5.7G  1.7G  78% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            1.9G   12K  1.9G   1% /dev
tmpfs           377M  368K  377M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            1.9G     0  1.9G   0% /run/shm
none            100M     0  100M   0% /run/user
/dev/xvdb       3.9G  8.1M  3.7G   1% /mnt

当我尝试使用sudo apt-get autoremove命令删除标题和图像时,出现以下错误。

$ sudo apt-get autoremove
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
 linux-headers-3.13.0-83-generic : Depends: linux-headers-3.13.0-83 but it is not installed
E: Unmet dependencies. Try using -f.

当我这样做时sudo apt-get -f install,它出现以下错误。

dpkg: error processing archive /var/cache/apt/archives/linux-headers-3.13.0-83_3.13.0-83.127_all.deb (--unpack):
 unable to create `/usr/src/linux-headers-3.13.0-83/arch/sh/include/asm/sparsemem.h.dpkg-new' (while processing `./usr/src/linux-headers-3.13.0-83/arch/sh/include/asm/sparsemem.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.13.0-83_3.13.0-83.127_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

当我这样做时$ sudo dpkg --configure -a,它出现以下错误。

    libpostfix-dns.so.1 -> libpostfix-dns.so.1.0.1
/sbin/ldconfig.real: Can't create temporary cache file /etc/ld.so.cache~: No space left on device
dpkg: error processing package libc-bin (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: error: unable to create new file '/var/lib/dpkg/status-new': No space left on device

现在我不知道如何解决这个问题。任何专家的建议都是很好的。我不确定我应该从哪里开始删除文件。这是文件系统的描述。

/$ sudo du -sh *
9.6M    bin
418M    boot
12K dev
6.9M    etc
216K    home
0   initrd.img
0   initrd.img.old
789M    lib
4.0K    lib64
16K lost+found
4.0K    media
28K mnt
684M    opt
du: cannot access ‘proc/21817/task/21817/fd/4’: No such file or directory
du: cannot access ‘proc/21817/task/21817/fdinfo/4’: No such file or directory
du: cannot access ‘proc/21817/fd/4’: No such file or directory
du: cannot access ‘proc/21817/fdinfo/4’: No such file or directory
0   proc
23M root
372K    run
9.4M    sbin
4.0K    srv
0   sys
19M tmp
2.9G    usr
669M    var
0   vmlinuz
0   vmlinuz.old

注意:我已经删除了超过 20 天的日志文件。这无助于减少 inode 使用量,现在我陷入了困境。

答案1

在我的例子中,/分区显示为100%inode 使用情况,因此我无法卸载任何额外的linux-headers内核linux-images。1. 首先,我删除了所有超过 20 天的日志 2. 我将一些文件从/var/cache/一个文件夹移动到/mnt/test/另一个文件夹,这导致3%我的系统上有空闲的 inode。

    $ sudo apt-get clean 
    $ sudo apt-get autoremove
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    The following packages will be REMOVED:
      linux-headers-3.13.0-67 linux-headers-3.13.0-67-generic
      linux-headers-3.13.0-68 linux-headers-3.13.0-68-generic
      linux-headers-3.13.0-70 linux-headers-3.13.0-70-generic
      linux-headers-3.13.0-71 linux-headers-3.13.0-71-generic
      linux-headers-3.13.0-73 linux-headers-3.13.0-73-generic
      linux-headers-3.13.0-74 linux-headers-3.13.0-74-generic
      linux-headers-3.13.0-76 linux-headers-3.13.0-76-generic
      linux-headers-3.13.0-77 linux-headers-3.13.0-77-generic
      linux-image-3.13.0-67-generic linux-image-3.13.0-68-generic
      linux-image-3.13.0-70-generic linux-image-3.13.0-71-generic
      linux-image-3.13.0-73-generic linux-image-3.13.0-74-generic
      linux-image-3.13.0-76-generic linux-image-3.13.0-77-generic
    0 upgraded, 0 newly installed, 24 to remove and 144 not upgraded.
    After this operation, 955 MB disk space will be freed.
    Do you want to continue? [Y/n] Y

卸载这些头文件和图像后,inode 使用率下降到64%现在

$ df -i
Filesystem     Inodes  IUsed  IFree IUse% Mounted on
/dev/xvda1     524288 331671 192617   64% /
none           481856      2 481854    1% /sys/fs/cgroup
udev           480561    396 480165    1% /dev
tmpfs          481856    317 481539    1% /run
none           481856      1 481855    1% /run/lock
none           481856      1 481855    1% /run/shm
none           481856      3 481853    1% /run/user
/dev/xvdb      262144   1933 260211    1% /mnt

当然,这不是解决100%inode 使用问题的唯一方法。但就我而言,这种方法有效,因为我的/mnt/分区有空闲的 inode。

答案2

鉴于您的 df -i 输出,并且发现您没有使用任何 LVM - 您唯一的解决方案是开始删除文件。
系统/分区上的每个文件都将占用一个 inode。
目录也会占用 inode。
因此,您需要弄清楚是什么导致了文件数量的增加。
也许是某个进程创建了许多临时文件。
也许是日志文件。

您可以使用以下命令查看哪个目录是最大的问题

find / -printf "%h\n"|grep -v "^/proc"|grep -v "^/sys"|cut -d\/ -f1-3|sort|uniq -c|sort -rn

相关内容