No space left on device で新しいファイルが作れん
でも df -h ではまだ半分空いてる
【疑問】容量はあるのにファイルが作れん。df と du、inode、e2fsck・tune2fs・dumpe2fs と xfs_repair・xfs_db【LPICレベル1】
前提のおさらい。ファイルシステムは ext4・XFS・Btrfs など種類ごとに mkfs.種類 で作る。作るときに inode の数などが決まる
>>1df -i を見る。inode(ファイル1個ごとの管理情報)が尽きると、容量が残ってても作れない。小さいファイルが大量にあるときに起きる
>>3
df のオプション-h 読みやすい単位-i inode の数と使用率-T ファイルシステムの種類も
試したら / は Size 128G・Use% 6%、inode は IUse% 6% やった
>>1
どのディレクトリが容量を食ってるかは?
>>5
du。du -sh ディレクトリ で合計、du -h --max-depth=1 で1段下ごと
>>6
truncate で作った64MiB のファイルは、ls -l では 67108864 バイトやのに du では 4.0K やった。du は実際に使ってるブロックを数えるから、穴あきのファイルは小さく出る。--apparent-size を付けると 64M になった
>>2
壊れてないか調べるのは?
>>8
ext 系は e2fsck(fsck から呼ばれる)。アンマウントしてからe2fsck -n 何も直さずに調べるだけ。きれいなら clean と出て終わった-f きれいでも全部調べる。Pass 1 から 5 まで動いた-p 安全なものは聞かずに直す、-y 全部 yes
>>9
設定を見たり変えたりするのが tune2fstune2fs -l 情報を表示(ブロック数・inode 数・予約ブロック・マウント回数など)-L ラベル、-c 30 30回マウントしたらチェック、-i 2w 2週間ごとにチェック、-m 予約ブロックの割合、-j ext2 にジャーナルを足す
>>10
試したら最初は Maximum mount count が -1(回数でのチェックなし)、-c 30 -i 2w のあとは 30 と 1209600 秒(2 weeks)になった
>>10
予約ブロックは root のための残り。65536 ブロックのファイルで 3276 やった
既定の5%で、端数は切り捨て
>>10dumpe2fs -h でもスーパーブロックの情報が出る。-h なしならブロックグループごとの細かい情報まで
>>8
XFS は?
>>14
xfs_repair で調べて直す(fsck.xfs は何もしない)。xfs_repair -n は調べるだけで、Phase 1 から 7 まで動いて最後に No modify flag set と出たxfs_db -r で中を読むだけの調査。xfs_admin -l でラベル、-u で UUIDxfs_fsr はマウントしたまま断片化を減らす
>>3
容量は df -h、inode は df -i、場所は du。調べるのは e2fsck -n と xfs_repair -n、設定は tune2fs。これで原因を探せる
管理人のひとこと
df -h(容量)・df -i(inode)・df -T(種類)。inode が尽きると容量があってもファイルを作れない。du -sh(合計)・du -h --max-depth=1。du は実際に使っているブロックを数える(穴あきのファイルは小さく出る、--apparent-sizeで見かけの大きさ)。- e2fsck はアンマウントして実行。
-n調べるだけ、-f強制、-p自動修復、-yすべて yes。 - tune2fs:
-l情報、-Lラベル、-cマウント回数、-i期間、-m予約ブロックの割合(既定5%)、-jジャーナル追加。dumpe2fs(-hでスーパーブロックだけ)。 - XFS:xfs_repair(
-n調べるだけ)、xfs_db(-r読むだけ)、xfs_admin(-lラベル、-uUUID)、xfs_fsr(マウントしたまま断片化を減らす)。