No space left on device

 4G の USB メモリに Gentoo をインストールしていたときのこと。

 emerge で色々といじっていたら、No space left on device と出てどうにもならない状況になってしまった。

 df の結果は 1.8G も容量が余っている。対して、df -i の結果は100% 使用状態。

 つまり inode が枯渇している。

 Linux/ext3 にはデフラグのような整理機能がない*1ので、整理するとしたら tar で固めて別に移した後、フォーマットして再展開。なんという。。。

 使用しているUSBメモリのセクタは512。mke2fs -j でフォーマットすると、ブロックサイズが 4096 で inode は 32768 ごと。ちょっとでか過ぎるので、ブロックサイズを1024、inode を 4096 ごとに変更してみる。

mke2fs -j -b 1024 -i 4096 /dev/sda3

追記、というか結果 (2010-11-24T15:00)

 上記方策で容量問題解決。データ自体の使用率と inode の使用率が噛み合った。

*1:正確に言うとメンテされていない