web-dev-qa-db-ja.com

マウントされていないパーティションの空き容量

sysprocなどのシステムファイルを使用して、マウント解除されたパーティションの空き領域を見つけることはできますか?

合計スペースを見つける方法は知っていますが、空きスペースについてはわかりません。システムファイルのみを使用することをお勧めします。マウントされていないパーティションの合計スペースには、/proc/partitionsファイルを使用しています。

7
Sarthak_Bhutani

そのための一般的な方法はありませんが、ほとんどの場合に機能する方法があります。

その理由、そのための一般的な方法がない理由カーネルはそれを知らない。それを知るには、まずパーティションを分析する必要があります。

パーティションをマウントしないと、カーネルはその存在のみを認識し、それ以上は認識しません。基本的に、それはランダムなデータを持つブロックのラインです。カーネルは、それがどこにあり、どのようにアクセスするかを知っていますが、それをどうするかはわかりません。

ただし、ファイルシステムのコンテンツをマウントせずに分析できるユーザー空間ツールもあります。すべてのファイルシステムには非常に異なるデータ構造があるため、それらを処理するには異なるツールが必要です。

Ext2/3/4の場合は

# dumpe2fs /dev/your_root|grep '^Free blocks'
dumpe2fs 1.42.13 (17-May-2015)
Free blocks:              5721580

これはファイルシステムのタイプに依存しますが、fsckを使用して、残っている空き容量を調べることができます。空き領域を見つけるには、ファイルシステムの構造を理解するツールが必要です。通常、fsck以外にそれらの多くはありません。

4
Johan Myréen

procfsは、特にプロセス関連情報に使用する必要があります。 (厳密にフォローされていませんが、まだ安全面にあるため、非推奨になる可能性があるため、それに依存しないでください)。

sysfsはシステム情報を提供します。これにより、ディスク全体のサイズに関する情報が得られます。

cat /sys/block/sda/size

sdaをパーティション名に置き換えます。

ls /sys/block/sda/

使用可能なパーティションに関する情報を提供しますsda1、sda2 ...

sdaと同じものを使用して、これらのパーティションのサイズを確認できます。

cat /sys/block/sda/sda1/size

上記の監視パーティション名と同じメモ。要件に応じて、sdaをsdb、sdcなどに変更します。

これがあなたの質問に答えることを願っています。

3
Devidas
# cfdisk /dev/sda 

このコマンドは、以下のスクリーンショットのように、/ dev/sdaに含まれるマウントされていない、パーティション化されていないスペースを表示します。

enter image description here

1
Bruce Malaudzi

あなたが言うように、「システムファイルのみを使用する」ことができるかどうかはわかりませんが、resize2fsマウントせずに見積もりを取得します。 manページから:

       -M     Shrink the file system to minimize its size as much as possible,
              given the files stored in the file system.

       -P     Print an estimate of the number of file  system  blocks  in  the
              file system if it is shrunk using resize2fs's -M option and then
              exit.

そう、 resize2fs -P /dev/PARTITIONは、そのパーティション上のファイルシステムが使用しているブロック数の見積もりを示します。パーティションの合計ブロックは、あなたが言ったように、/proc/partitions、またはblockdev --getsz /dev/PARTITIONの場合は、少し計算します。推定最小サイズが実際のディスク使用量にどれだけ近いかはわかりませんが、余裕を持たせるために、最小サイズは実際のディスク使用量よりも大きいと思います。マウントしてduを実行すると確認できます。

1
Stephen C