10
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

容量は残っているし inode も枯渇していないのに "No space left on device" と怒られる問題

Last updated at Posted at 2018-04-12

先に結論

/tmp 領域がいっぱいだ.消そう.

背景

GCE 上インスタンス1にデプロイ済みのシステムが有り,一旦容量が枯渇してしまったのでディスク容量の拡張を行った.かなり面倒くさい手順だったがこちらは何とか終わった. df -h で確認してみる:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            837M  4.0K  837M   1% /dev
tmpfs           170M  336K  170M   1% /run
/dev/sda1        30G   11G   19G  36% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            5.0M     0  5.0M   0% /run/lock
none            849M     0  849M   0% /run/shm
none            100M     0  100M   0% /run/user
overflow        1.0M  1.0M     0 100% /tmp

ということで 19G 空きができてる(心もとないけど).ここで満を持して lsしようとするが,補完のところで...:

-bash: cannot create temp file for here-document: No space left on device

ということで怒られた.なぜだ!容量は十分あるじゃないか!

調査

inode 枯渇問題?

No space left on device とエラーが出るときの対処法によると容量はあっても inode が枯渇している場合にこのエラーが出るとのこと. df -i で調べてみる:

Filesystem      Inodes  IUsed   IFree IUse% Mounted on
udev            214046    377  213669    1% /dev
tmpfs           217142    341  216801    1% /run
/dev/sda1      1966080 305712 1660368   16% /
none            217142     14  217128    1% /sys/fs/cgroup
none            217142      6  217136    1% /run/lock
none            217142      1  217141    1% /run/shm
none            217142      2  217140    1% /run/user
overflow        217142      1  217141    1% /tmp

バッチリ残っている. ここで私は気がつく

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            837M  4.0K  837M   1% /dev
tmpfs           170M  336K  170M   1% /run
/dev/sda1        30G   11G   19G  36% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            5.0M     0  5.0M   0% /run/lock
none            849M     0  849M   0% /run/shm
none            100M     0  100M   0% /run/user
overflow        1.0M  1.0M     0 100% /tmp

...

overflow        1.0M  1.0M     0 100% /tmp

/tmp が 100% だった...

解決

というわけで /tmp の中身を消したらエラーは出なくなりました. bashls 時の補完で /tmp を使うんですね.そもそも,なぜ /tmp 領域が1Mしかないのか?という問題について調べたいですが,宿題にします.

追記

@tty74 様から答えをいただきました

2018-04-12 21:29

起動時にはディスクフルだったんでしょうか?
Ubuntuなどでは/tmp が書き込まないと1MBのサイズでoverlaysタイプでマウントをし直されます。

なるほど!たしかに, df -h で確認すると overflow という名前でマウントされている.
以下のブログでアンマウント方法がかかれていたので,参考に
sudo umount overflowで,きれいになった.
Overflow filesystem mounted as /tmp in linux

  1. Linux 4.4.0-112-generic Ubuntu SMP 2018 x86_64 GNU/Linux

10
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?