@システム部
システム屋さんの備忘録
duコマンドの表示するサイズ
Linuxではシステムをまるごとコピー(バックアップ)したい時、コピー元とコピー先のディスクを両方マウントしておいて
cp -ax /mnt/src /mnt/target
でコピー後、ブート関係のファイルと /etc/fstab を調整すれば簡単にシステムをコピーできます。(ライセンスを考えなくて良いので本当に楽)
. 本当にコピーできたか確認するためコピー元とコピー後の容量をduコマンドで確認すると微妙に違っていることがあります。
du -sk /mnt/src 222234 /mnt/src du -sk /mnt/target 222131 /mnt/target
. これはduコマンドではディレクトリのサイズも合計していますが、そのサイズがコピー元とコピー先で違うためです。では、ディレクトリのサイズとは何でしょう? これはディレクトリにあるファイルエントリを保持するために必要なサイズです。当然たくさんのエントリを持つディレクトリは多くの領域を必要とすることになります。
. この領域は一旦拡張されるとファイルを削除しても縮小しません。したがって、過去非常に多くのエントリを持っていて現在は少ししかエントリ数のないディレクトリをコピーしたとすると、当然ディレクトリサイズが減少することになります。
. 以上、ちょっとしたことで長時間悩んでしまわないように私の経験から・・・