home の容量がいっぱいになった時2007年06月24日 12時38分43秒

ユーザ用のディスク領域が埋まってしまうのは、時々あることだ。個人で使っているのか、仕事で業務として使っているのかで、新しいディスクの調達のしやすさなどもそれなりに変わってくるとは思う。

緊急対策としてみられるのが、home1 や home2 等と、順次追加していくこと。.../home1/uyota、.../home2/uyota などと、あちこちに作るのは止めた方がいい。結局、ぐちゃぐちゃになってしまい、収集が付かなくなるの世の常だ。

これに更に、リンクなどを加えると収集が付かなくなる。個人的には cvs でこの被害にあったことがある。cvs が記録していたディレクトリがリンクを展開した後のパスになっていて、統合したときに全てを変換する必要になったこともある。

本当に臨時の対策だったら、/tmp でも使った方がいい。どうせ無くなっても困らない物だけにするのだ。

緊急対策としてやるのであれば、nullfs や unionfs を駆使した方がいい。管理者の権限が必要にはなるが、どうせ物理的に容量が足りない状況だ。一部のユーザを他のディスクに退避して、mount_nullfs で本来の位置から従来通りにアクセスできるようにする。そうすると、パス自体は変わらないので、大きいディスクを調達した後に全てのユーザを移せばいい。

もし、コピーをする余裕が無かったり、本当に短期間だけだとわかっているなら、unionfs で回避出来ることもある。

まとめると、ファイルシステムの容量が足りないのを一時的に回避する場合は、mount_* などのファイルシステムレベルのコマンドに頼るのが、王道と言うことだ。システムの低レベルのところが処理をするので、ユーザ空間内で一貫性を保てる。それにくらべ、ln や cd など、ユーザ空間のコマンドに頼って回避すると、後々苦労することになる。