• 締切済み

dfコマンドが表示する使用領域サイズは、何の情報?

dfコマンドが表示する使用領域サイズは、何の情報? お世話になります。 ファイルシステムのディスクの使用状況について、ご教授ください。 以下のディレクトリに対し、ディスクを割り当てています。 ディレクトリ名    割り当てサイズ /home         100(KB) /home/tmp      100(KB) /home直下には、tmpというディレクトリのみが存在する状態です。 サブディレクトリ(/home/tmp)配下に10KBのファイルを置いたとき、 ディスクの使用状況を見るには df -k /home/tmp で取得できると思います。 df -k /home としないのは、サブディレクトリに対してディスクを割り当てているため、 親ディレクトリに対して取得(df -k /home)しても使用状況に変化がなかったからです。 ここで質問なのですが、親ディレクトリに対してdfして得られる情報は、 具体的には何を意味しているのでしょうか? 数値に変化がないということが、何の情報を取得しているからなのかがわかりません。 参考サイトなど調べましたが、見つけることができませんでした。 ご教授いただければ幸いです。

みんなの回答

回答No.3

UNIXの基礎的な話になるのですが、 OSから見ればディレクトリも1ファイルでしかありません。 よって以下の通りです >/homeのパーティーションには各ディレクトリの定義情報(名前や権限など)に >必要な容量のみ含むことになるのでしょうか?

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.2

 df -k /homeが返す容量は、/homeというディレクトリーポイントでマウントされているブロックデバイスにおける容量だ。  そいでは次のようなディレクトリーツリーを考えてみましょう。 / /home/ /home/tmp/ /home/tmp/aaa 20KB /home/tmp2/ /home/tmp2/bbb 10KB  けつがスラッシュになっているのがディレクトリーでそうでないのがファイルだ。ディレクトリーツリーだけを見ると、homeの下にはtmpとtmp2の2つのディレクトリーが「属している」ように見える。ところがどっこい、質問者の状況では、/と/home/と/home/tmp/は全て別のパーティーションがマウントされている。  ここでdf -k /homeとすると、使用領域は20KBで、df -k /home/tmpとすると使用領域は10KBになる。  つまり、dfはディレクトリーではなく、あくまでもパーティーションに対して容量を計算して表示しているのだ。試しにdf -aとしてみると(マウントされている)パーティーション一覧が出てくるだろう。  /home/tmp/はディレクトリーツリー上では/home/の下に居るように見えるが、ディスク領域としては別計算になるために、/home/tmp/にいくらものを入れてもdf -k /homeとした時に結果が変わらなかったのだ。なぜ別計算になるかというとあなたがそう設定した(/homeにパーティションをマウントして/home/tmpにパーティションをマウントした)からだ。  これに対して、パーティションが変わってもディレクトリーツリーの下にあるものの容量を調べるにはdfではなくってduを使うと良いだろう。

preiades
質問者

補足

ご回答ありがとうございます。 df -k /homeとすると、使用領域は10KBで、 df -k /home/tmpとすると使用領域は20KBになる。 と読み変えて質問させていただきます。 もし /home/tmp2/bbb 10KB というファイルが存在しない状態でdf -k /homeとしたとき、 使用領域は0KBという理解でいいのでしょうか? それとも、 /home/tmp/ /home/tmp2/ というディレクトリは存在するので、 /homeのパーティーションには各ディレクトリの定義情報(名前や権限など)に 必要な容量のみ含むことになるのでしょうか? /home/tmp2/bbbのファイルサイズとdf -k /homeの結果表示される数値が違うので、 そういった情報も保持しているのかと考えました。

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

/homeが所属するパーティションの情報です。

参考URL:
http://www.linux.or.jp/JM/html/GNU_fileutils/man1/df.1.html

関連するQ&A

  • dfコマンドについて教えてください

    どうもこんにちわ。 サーバ(OS:Solaris7)のディスク使用状況の調査を行っています。 dfコマンドで調査を行い、依頼元へ結果を報告したのですが、 「他にも物理デバイスがあるはずだ」とのことを指摘されました。 もしかするとdfコマンドではマウントされているディスクの使用量しかわからないのでしょうか? マウントされていないディスクの使用量を調べるためにはどのようにしたらよいのでしょうか。 お教えいただければ幸いです。

  • df コマンドについて

    始めまして宜しくお願いいたします。 haru といいます。 環境 Fedora core2 ファイルシステム ext3 質問の内容は df コマンドを打ったとき このような表示になったのですが Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/hda2 40313996 3921284 34344828 11% /home この 使用% の パーセントはどのような計算で出てくるのでしょうか? なにか気づかれた方 アドバイス宜しくお願いします。

  • linux dfとduでdisk使用量が大きく違う

    お世話になります。 CentOS 6.2にてdfコマンドを使用したdisk使用量とduコマンドを使用したdisk使用量とで 結果が大きく異なります。 以下がコマンド実行時の結果です。何が考えられますでしょうか? ------------------------------------------------------------ df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/root 146G 138G 12M 100% / tmpfs 3.9G 0 3.9G 0% /dev/shm /dev/sda1 485M 36M 424M 8% /boot /dev/mapper/data 158G 1.4G 148G 1% /data /dev/mapper/home 146G 188M 138G 1% /home /dev/sdb1 1.8T 527M 1.7T 1% /mnt/usbhdd ------------------------------------------------------------ du -sh ./* 7.5M ./bin 26M ./boot 1.2G ./data 232K ./dev 23M ./etc 110M ./ftproot 176K ./home 2.5M ./lha-1.14i-ac20050924p1 120M ./lib 24M ./lib64 16K ./lost+found 4.0K ./media 332M ./mnt 4.0K ./opt du: cannot access `./proc/4152/task/4152/fd/4': No such file or directory du: cannot access `./proc/4152/task/4152/fdinfo/4': No such file or directory du: cannot access `./proc/4152/fd/4': No such file or directory du: cannot access `./proc/4152/fdinfo/4': No such file or directory 0 ./proc 80K ./root 14M ./sbin 4.0K ./selinux 4.0K ./srv 0 ./sys 13M ./tmp 682M ./usr 2.2G ./var --------------------------------------------------------- 又、削除済みでつかんだファイルは以下の様に表示されました。 ls -al /proc/*/fd/* | grep deleted ls: cannot access /proc/4265/fd/255: No such file or directory ls: cannot access /proc/4265/fd/3: No such file or directory ls: cannot access /proc/self/fd/255: No such file or directory ls: cannot access /proc/self/fd/3: No such file or directory

  • ディスクの使用サイズ表示の違い

    UNIXコマンドであるディレクトリ配下のディスクの使用サイズを表示させようと思っています。 ・du -k ・find -lsでファイルサイズを足す(ファイル、ディレクトリ、シンボリックリンクを含む) ・ls -Rでファイルサイズを足す(ファイル、ディレクトリ、シンボリックリンクを含む) 上記3つで行いましたが、全て違う結果になりました。 なぜこの様な事になるのでしょうか? よろしくお願いいたします。

  • fdiskとdfのパーティションサイズの差の理由

    CentOS5.5を使用中です。 /dev/sda1のパーティションサイズですが、 fdiskでは、40957686 blocks dfでは、39674192 blocks となっています。 この差は、何処から来ているのでしょうか。 [root]# fdisk -l Disk /dev/sda: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot Start End Blocks Id System /dev/sda1 * 1 5099 40957686 83 Linux /dev/sda2 5100 17847 102398310 83 Linux /dev/sda3 17848 18867 8193150 82 Linux swap / Solaris /dev/sda4 18868 60801 336834855 5 拡張領域 /dev/sda5 18868 31615 102398278+ 83 Linux /dev/sda6 31616 60801 234436513+ 83 Linux [root]# df Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/sda1 39674192 3850444 33775864 11% / /dev/sda5 99188468 641536 93427020 1% /home /dev/sda6 227093556 851940 214519792 1% /home2 /dev/sda2 99188500 1122216 92946372 2% /var tmpfs 4155208 8 4155200 1% /dev/shm

  • dfコマンドの出力結果について

    お世話になります。 仕事でsolarisサーバを扱うことになったのですが、 まったく知識がなく聞ける相手もいないため、質問させていただきます。 dfコマンドのヘルプを見ると、以下のような例が出ていました。     /         (/dev/dsk/c0t0d0s0 ): 287530 blocks  92028 files     /system/contract  (ctfs       ):    0 blocks 2147483572 files     /system/object   (objfs       ):    0 blocks 2147483511 files     /usr        (/dev/dsk/c0t0d0s6 ): 1020214 blocks  268550 files     /proc       (/proc       ):    0 blocks   878 files     /dev/fd      (fd        ):    0 blocks    0 files     /etc/mnttab    (mnttab      ):    0 blocks    0 files     /var/run      (swap       ): 396016 blocks   9375 files     /tmp        (swap       ): 396016 blocks   9375 files     /opt        (/dev/dsk/c0t0d0s5 ): 381552 blocks  96649 files     /export/home    (/dev/dsk/c0t0d0s7 ): 434364 blocks  108220 files この情報の見方について教えていただきたいのですが、、、 ・「 /         (/dev/dsk/c0t0d0s0 )」は、  ディスク:c0t0d0 のスライス:s0が、/にマウントされている。 ・「/usr        (/dev/dsk/c0t0d0s6 )」は、  ディスク:c0t0d0 のスライス:s6が、/usrにマウントされている。 ・c0t0d0s0とc0t0d0s6は、同じディスクに存在する別のスライス。 という認識でよいでしょうか? ・「/system/contract  (ctfs       )」は、  /system/contractにマウントされているctfsというのは何でしょうか?  マニュアルには「デバイスまたはファイルシステム」と書かれていますが、  ファイルシステムとするとctfsはどこのディスクに存在するのでしょうか。  ・dfで表示されないスライスの情報はどうやって調べるのでしょうか?  format→partition→printではたくさんのスライスが表示されますが、  dfコマンドの出力結果にはすべてが出てきません。  スライスがどのように使用されているかを調べる方法はありますでしょうか? 知識がないためわけのわからないことを聞いているのかもしれませんが、 なにかヒントでもいただけると幸いです。 よろしくお願いいたします。

  • 外付けHDDの使用領域と実際の使用量との差

    外付けのHDDの使用領域と実際の使用量には差があります。 その差はクラスタギャップなのだそうですが、疑問があります。 【外付けHDDの使用領域と実際の使用量との差について - ドライブ・ストレージ - 教えて!goo】 http://okwave.jp/qa/q7515614.html #2 >エクスプローラなどで、 >ディスクの総ファイルサイズと空き容量を足しても、 >ディスクのサイズにならないことがあります。 >たとえば、10GB のドライブで >使用量が 5GB でも空き容量が 1GB しかないことがあります。 >これはクラスタギャップという現象で、 >使用量と空き容量を足してもディスク容量にはなりません。 > >FAT16 や FAT32 ファイルシステムでは >(HPFS や NTFS もそうですが) >クラスタという単位でファイルを管理しています。 >つまり、1 バイトのファイルを格納する場合も 1 クラスタが消費されます。 >1 クラスタのサイズはファイルシステムやドライブの大きさによって可変ですが、 >たとえば 4KB クラスタの場合、1KB のファイルが 10000 個あると、 >使用量は 10MB ですが、実際には 40MB のディスクを占有するために >空き容量は「ディスク容量- 40MB」になります。 【Lenovo ディスクの使用量と空き容量を足してもディスクサイズになりません - Japan】 http://www-06.ibm.com/jp/domino04/pc/support/beginner.nsf/btechinfo/syb0-025f334 >エクスプローラなどで、ディスクの総ファイルサイズと空き容量を足しても、実際のディスクのサイズにならないことがあります。 >たとえば、10GB のドライブで使用量が 5GB でも空き容量が 1GB しかないことがあります。 > >これはクラスタギャップという現象で、使用量と空き容量を足してもディスク容量にはなりません。 > >FAT16 や FAT32 ファイルシステムでは (HPFS や NTFS もそうですが) クラスタという単位でファイルを管理しています。つまり、1 バイトのファイルを格納する場合も 1 クラスタが消費されてしまいます。1 クラスタのサイズはファイルシステムやドライブの大きさによって変わりますが、たとえば 4KB クラスタの場合、1KB のファイルが 10000 個あると、使用量は 10MB ですが、実際には 40MB のディスク領域を占有するために空き容量は「ディスク容量- 40MB」になります。 特別指定したチューンをしていなければ、クラスタサイズは4KBだと思います。 【NTFS、FAT、および exFAT の既定のクラスター サイズ】 http://support.microsoft.com/kb/140365/ja 10GB=実使用量5GB+空き容量1GB+クラスタギャップ4GB クラスタサイズが4KBの環境で、使用量5GBで占有領域が9GBとなるためには、1~3KBの端数が生じるファイルが百何十万個もなければならないことになります。 私のパソコンの全ドライブ使用合計容量は120GBです。ファイルの数の合計は25万弱でしかありません。最初の教えて!gooの質問では使用合計容量が181GBだそうですが、どういった使い方をしたらクラスタギャップで4GBも生じる結果になるのでしょうか。

  • 未使用領域

    よろしくお願いします。 WINDOWS XP HOMEを使用しております。 自作パソコンですがHDDを入れ替え(内臓増設、古いHDDはバックアップ用)新しいHDD160GBをC45GB残りを 未使用領域にしてOSをインストールしました。 この未使用領域をDドライブにしようとディスク管理から未使用領域を右クリック、新しいパーティション、プライマリパーティション、 パーティションサイズを指定して進めると、ドライブ名がG以降しか表示されません。Dドライブにするにはどうすればよいですか。

  • HDDの代替領域のサイズについて

    ■概要 OSやHDDが読込不可能なセクタを発見すると,HDD内に用意されている代替領域と差し替えるかと思いますが,この代替領域はどれぐらいのサイズが確保されているのか,確認する方法を教えてください. ■質問 (1) HDDから異音がしたのでchkdsk /r をかけたところ,477MBの不良セクタが見つかりました. これは,代替領域が477MB使用されている,という認識ですが合っていますでしょうか? ※chkdskコマンドの結果で不良セクタが約477MBある→代替領域が約477MB分使われる,という単純なロジックは成り立つかどうか気になっています. ※簡単のため,マッピングなどを管理する領域については考えていませんが,もしご存じの方がいれば,後学のため詳細をご教授頂きたいです. # chkdsk結果 1953512000 KB : 全ディスク領域 138915464 KB : 3028 個のファイル 2000 KB : 50 個のインデックス 477804 KB : 不良セクタ 173200 KB : システムで使用中 65536 KB : ログ ファイルが使用 1813943532 KB : 使用可能領域 4096 バイト : アロケーション ユニット サイズ 488378000 個 : 全アロケーション ユニット 453485883 個 : 利用可能アロケーション ユニット (2) 代替領域が事前にどれぐらい確保されているのか気になりました. いくつかググってみましたが,代替領域の実容量にまで言及しているページは見つかりませんでした. ディスクによって異なるとは思いますが,用意されている代替領域のサイズを確認する方法はあるのでしょうか? ■環境 OS:Windows Vista HomePremium 対象HDD:Western Digital社の WD20EARX [2TB SATA600] ■備考 既にデータはバックアップしており,単純に興味本位で聞いております.

  • ディスク使用領域の表示が実際と大幅に異なる

    winXP SP2 HOME を使用しています。 ドライブCの使用領域が身に覚えの無いほど多く20.6G(容量29.2G)と表示されていたのでディスクCを開き各項目の使用量をチェックしましたら以下のようにサイズが表示されていました。(ディスク上のサイズの誤差は10%以内程)  WINDOWS         3.41G Program Files      1.84G Documents and Settings 916MB 他(ハンゲーム)     117M あと数G使用量を増やすと動作が重くなったりデフラグ出来なくなってしまいます。 他にドライブDとEをデータ保存に使用してますが表示量と内容量に誤差は無い感じです。 使用領域がこれほどまで多く表示される原因はなぜでしょうか? そして表示されているだけではない場合、何で容量を食っていると考えられますか?またその対策などあれば教えていただけましたら幸いです。 初歩的な質問かもしれませんがよろしれませんがよろしくお願いします。