パーティションサイズとdf出力が異なるのはなぜですか?


16

パーティション/ dev / sda1があります。
ディスクユーティリティは、154 GBの容量があることを示しています。
df -hショー

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             123G  104G   14G  89% /
devtmpfs             1006M  280K 1006M   1% /dev
none                 1007M  276K 1006M   1% /dev/shm
none                 1007M  216K 1006M   1% /var/run
none                 1007M     0 1007M   0% /var/lock
none                 1007M     0 1007M   0% /lib/init/rw

なぜ結果が異なるのですか?不足している31 GBはどこですか?


3
fdisk -l /dev/sda(rootとして実行)の出力を投稿してください。
ジル 'SO-悪である停止

2
どのファイルシステムを使用していますか?ext2 / 3/4の場合は、使用tune2fs -l /dev/sda1して調べることができます。ブロック数とブロックサイズを見て、それらを掛けてファイルシステムサイズを取得します。また、fdisk -s /dev/sda1パーティションサイズを1kブロック単位で取得します。これに1024を掛けて、サイズをバイト単位で取得します。その数は、ファイルシステムよりもわずかに大きくする必要があります。私の40GB ext4パーティションでは、3072バイト大きくなっています。ファイルシステムが奇妙に小さい場合は、サイズを変更してみてください。ext2 / 3/4の場合、を使用しますresize2fs /dev/sda1。通常はコンピューターを使用しながらこれを行うことができます。
ペンギン359

@Gilles sudo fdisk -l / dev / sdaは表示します(他の人は興味がないので、sda1パーティションのみを投稿しています)。デバイスブートスタートエンドブロックIDシステム/ dev / sda1 1 18706 150253568 83 Linux
xralf

@ penguin359 ext4ファイルシステムがあります。ブロック数= 32668162、ブロックサイズ= 4096、32668162 * 4096 = 133808791552、fdisk -s / dev / sda1 * 1024 =153859653632。奇妙に小さいようです。データを失うことなくサイズを変更できますか?なぜそれが小さくなったのですか?
-xralf

@xralf:サイズ変更は安全である必要があります。データを失ったことはありません。ライブcdなど、マウントされていないパーティションに対して行う方が少し安全かもしれません。それでも、最初にバックアップを取得してください。主要なシステム管理者を行う前に、常にバックアップを取得してください。
Faheem Mitha

回答:


25

パーティションの容量が異なる理由の1つは、パーティションがいっぱいになった場合に備えて、ルート用に一部のスペースが予約されていることです。ルート用に予約されたスペースがなく、パーティションがいっぱいになると、システムは機能しません。ただし、この違いは通常1%程度であるため、ケースの違いを説明することはできません。dfのmanページから

引数が、マウントされたファイルシステムを含むディスクデバイスノードの絶対ファイル名である場合、dfは、デバイスノード(常にルートファイルシステム)を含むファイルシステムではなく、そのファイルシステムで使用可能なスペースを表示します。

したがって、dfは実際にはファイルシステムのサイズを示しています。これは通常、デバイスのサイズですが、これはあなたの場合には当てはまらないかもしれません。ファイルシステムはパーティション全体に広がっていますか?

する

resize2fs /dev/sda1

違いを生む?このコマンドは、ファイルシステムを増やしてパーティション全体をカバーしようとします。ただし、これを試す場合は、バックアップがあることを確認してください。


>>ファイルシステムはパーティション全体に拡張されていますか?私はそう思う。ext4です。<br>何をバックアップすればよいですか?大きなバックアップを作成するためのセカンダリディスクがありません。
-xralf

@xralf:(わかりました、これはこの質問に関してはトピック外ですが、...)バックアップがない場合は、すぐにセットアップしてください。適切なバックアップの唯一の代替手段(および適切な代替手段ではありません)は、分散バージョン管理システムを体系的に使用し、それを何らかのリモートロケーションにプッシュすることです。しかし、もちろん、すべてをバージョン管理下に置くことはできません。メディア。私が忙しいのなら言い訳をしてください。
ファヒムミサ

@xralf:質問自体に出力結果を投稿します。見やすく、読みやすいです。
ファヒムミタ

resize2fsは非常に安全な操作であり、バックアップする必要はありません(安定した電源があり、安定したソフトウェアを使用している場合)。ところで、ext *ファイルシステムのデフォルトの予約ブロック数は5%です。
rvs

@rvs:再バックアップに同意しません。少なくともDebianでは5%程度です。私は誤解していました。しかし、それがすべてのディストリビューションで標準であるかどうかはわかりません。
ファヒムミタ

5

主な違いは、1キロバイトが1000バイトであると言うものと、1キロバイトが1024バイトであると言うものがあることです。

ディスクメーカーはディスクサイズをこのように記述しているため、Gnome Disk Utilityは1キロバイト= 1000バイトを使用して容量を表示します。これは、ディスク容量が154,000,000,000バイトに近いことを意味します

一方、ほとんどのオペレーティングシステムでは、1キロバイト= 1024バイトと言われています。すべてのツールがこの規則を好んdffdisk使用しています。154,000,000,000バイト/ 1024/1024/1024 = 143.4 GBです。

jlliagreが正しく指摘しているように(そして、Gillesはfdisk出力を要求することを暗示しています)、ディスクユーティリティはハードディスク全体のサイズを通知します。しかし/dev/sda1、ハードディスク上の単一のパーティションです。たとえば、ハードディスクには、スワップ用の4〜8 GBパーティション(仮想メモリとも呼ばれる)や、通常100 MB程度のブートパーティションなど、他のパーティションがおそらくあります。

の出力を投稿しなかったfdisk -l /dev/sdaので、スワップパーティションが8 GBであると仮定しましょう。今、私たちは135 GBになりました

それから、違いに貢献するいくつかの他のものがあります。

たとえば、ファイルシステムはメタデータにディスクパーティションの一部を使用します。メタデータとは、ファイル名、ファイル許可、パーティションのどの部分がどのファイルに属しているか、パーティションのどの部分が空いているかなどです。私のシステムでは、パーティションの約2%がこれに使用されています。あなたのものが似ていると仮定すると、空き容量は約132 GBになります。

ファイルシステムは、rootユーザーのみが使用できるスペースを予約することもできます。私のシステムでは、パーティションの5%であるため、あなたの場合、合計容量は約125 GBになります。

正確な数は、ext2、ext3、ext4、fat、ntfs、btrfsなどを使用しているかどうか、およびパーティションをフォーマットするときに使用した設定によって異なります。

ext2またはext3を使用しsudo tune2fs -l /dev/sda1ている場合、スペースの行き先を理解するのに役立ちます。


ディスクユーティリティは、154 GB(153,859,653,632バイト)の容量を正確に示します。
-xralf

>> sudo tune2fs -l / dev / sda1 <<どのパラメーターがスペースの行き先を教えてくれますか?
-xralf

2

おそらく、それらはiノードによって使用されます。一部の金額は、MBRによって使い果たされる可能性があります。


1
MBRはシリンダー0にあるため、表示されません(最初のパーティションにも、セクター2048で始まることがよくあります)。ただし、スーパーブロックのコピーがあります。それでも、それはiノードです。参照:unix.stackexchange.com/questions/13547/…およびコマンド "lsblk / dev / sdX"および "dumpe2fs -h / dev / sdX"
David Tonhofer 14年

1

sda1はディスク全体ではなく、最初のプライマリパーティションです。df出力に表示されないマウントされていない他のパーティションを作成したか、何らかの理由でsda1が使用可能なすべてのスペースを埋めていないか、パーティションの使用可能なスペースをすべてファイルシステムが使用していない可能性があります。

fdisk -l パーティションテーブルがどのように見えるかを教えてくれます。


もちろん。ディスク全体ではなく、/ dev / sda1パーティションについてのみ説明しています。
-xralf

出力を表示せずにディスクユーティリティを参照するとき、それは質問から明らかではありませんでした。これを明確にするために編集する必要があります。/ファイルシステムをどのように作成したかを伝えることも有用です。
-jlliagre

ディスクユーティリティの出力の関連部分は、「sda1パーティションの容量= 154 GB」です。
-xralf

元の質問を編集して、それを明確にしてください。
jlliagre
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.