Help us understand the problem. What is going on with this article?

No space left on device とエラーが出るときの対処法

More than 3 years have passed since last update.

問題

CentOSでファイル操作をしようとすると、「No space left on device」と言われるようになった。
こうなると、もう何もできない。(Gitコマンド叩け無い、ファイル作れない等)

原因を探る

エラーメッセージをそのまま読むと「このデバイス、もうスペースが無いよ」である。
HDDを使い切ってしまったのかとdfコマンドを叩いてみるが、まだ3.4Gも残っている。

$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/vda1              50G   44G  3.4G  93% /

色々調べているうちに、容量ではなくてinodeが足りない説が浮上した。

inodeとは、UNIX系OSで使用されるファイルシステムの名称で、ファイルの所有者やアクセス権、サイズ、作成日時、場所などを管理しているもののことだそうだ。

残りinodeはdfコマンドに-iをつければ確認できるらしく、叩いてみると...ビンゴである。

$ df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/vda1            3276800 3276799       1  100% /

解決法

上記の原因から、減らすのは容量ではなくファイル数であることがわかった。
以下のコマンドを実行すると、カレントディレクトリに存在するファイル数を再帰的に計算してくれる。(ルートディレクトリで叩くと鬼ヤバになるので注意したい)

$ sudo find . -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -n

これを使って、たくさんのファイル数を消費しているディレクトリを探し当てましょう。
その中で、消しても問題なさそうなディレクトリを一括で削除すると宜しいと思います。

0x50
コーダーです。インターフェイス周りのデザインや実装をやります。フロントエンドからサーバーサイドまで、色んな領域に足を突っ込んでは引き抜いてを繰り返しています。
http://p1ch.jp
dena_coltd
    Delight and Impact the World
https://dena.com/jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away