Использование inode моего сервера увеличилось до 100%, из-за чего я не могу удалить дополнительные linux-kernel-headers
и linux-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, и теперь я застрял.
В моем случае /
раздел отображался как 100%
использование inode, из-за которого мне не удалось удалить дополнительные linux-headers
и дополнительное ядро linux-images
. 1. Сначала я удалил все журналы старше 20 дней. 2. Я переместил некоторые файлы из /var/cache/
папку в /mnt/test/
папка, которая вызвала 3%
бесплатные inodes в моей системе.
$ 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/
раздел имел свободные inodes.
Учитывая ваш вывод df -i и вы видите, что вы не используете LVM, единственное решение, которое у вас есть, - это начать удаление файлов.
Каждый файл, присутствующий в системе / разделе, будет занимать один индексный дескриптор.
Каталоги также потребляют inode.
Итак, вам нужно выяснить, что вызывает такое количество файлов.
Возможно, это какой-то процесс, создающий множество временных файлов.
Возможно, это файлы журналов.
Вы можете использовать команду ниже, чтобы увидеть, какой каталог является самым большим нарушителем
find / -printf "%h\n"|grep -v "^/proc"|grep -v "^/sys"|cut -d\/ -f1-3|sort|uniq -c|sort -rn