あまりにも多くのインデックスノードが使用されています。

あまりにも多くのインデックスノードが使用されています。

私はUbuntu 14.xを使用しており、最近何らかのディスクがいっぱいのメッセージでファイルの作成に失敗しました。

スペースが2GB以上あるのにこれはダメですが、iノードがいっぱいになると発生する可能性があると聞きました。

私は経験豊富なLinuxユーザーではないので、それを削除する方法がわかりません。まず、上記のコマンドをrootとして入力して、どれだけのinodeが使用されているかを確認しました。

$ df -i -h
Filesystem     Inodes IUsed IFree IUse% Mounted on
udev             248K   414  248K    1% /dev
tmpfs            250K   467  250K    1% /run
/dev/xvda1       512K  512K     0  100% /

はい、100%です。次に、現在システムで使用されているinodeの数を表示するコマンドを見つけました。

#  for i in /*; do echo $i; find $i |wc -l; done

次のように印刷されます。

/bin
172
/boot
353
/dev
416
/etc
1971
/home
21808
/lib
17720
/proc
43272
/sys
36453
/tmp
5134
/usr
423458
/var
10117
...

だから/ home / devからいくつかのファイルを削除し、いくつかの無料のinodeを取得しましたが、それほど多くはありませんでした。

Filesystem     Inodes IUsed IFree IUse% Mounted on
/dev/xvda1       512K  464K   49K   91% /

また、必要なファイルを再インストールすると inode が再利用されるため、実際に問題は解決されません。

/usrディレクトリがほとんどinode(423458)を占めているのがわかりますが、他のシステムやプログラムに影響を与えずに削除できるファイルが何であるかはわかりません。

削除する「不要な」inodeを見つける方法は?どんなアドバイスも本当にありがとうございます。

答え1

私のシステムに比べてファイルが多い/usrので、そこで検索を続けることをお勧めします。コマンドからに変更すると、すべてのディレクトリで機能します/**数字を比較するターゲットがないと難しいかもしれません。私のサブディレクトリにあるファイルの数は次のとおりです/usr

bin 2397
games 32
include 4607
lib 27379
local 34
sbin 271
share 1
src 22971

(で作られたfor i in *; do echo -n "$i "; find $i |wc -l; done

関連情報