ディスク使用の混乱:SSD上のLinuxホームパーティションに10Gがありません


15

Linux Mintでは、空きディスク容量は622 MBしかありませんが、ギガバイトが残っているはずです。

パーティションを見ると、約10ギガバイトが使用されていないことがわかります。私は問題をグーグルで調べましたが、解決策が見つかりませんでしたが、でディスク使用量を確認する必要があるというヒントを見つけましたdf -h

sudo df -h /home
Filesystem      Size  Used Avail Use% Mounted on
/dev/nvme0n1p8  189G  178G  622M 100% /home

違いを:出力は、私にはどんな意味がないSizeUsed11ギガバイトですが、それだけで示して622M利用できるよう。

SSDは古いものではないので、このような矛盾はないと思います。

私は何をすべきか?


3
@Kusalanandaがコメントしたように、なぜ10GBを取得できないのか(これは答えで正しく対処したことを願っています)だけでなく、/ homeのほとんどのスペースを使用している理由も質問する必要があります。理由がわかっている場合(例:多くのメディアファイルを保存するなど)、そうでない場合は心配する必要があります。潜在的なクリーニングにより10GB以上のスペースを節約できます。それで、それは何でしょうか?
AB

「パーティションを見てみると、約10ギガバイトの未使用があると言われています。」—これはどこで言われたのですか?
ctrl-alt-delor

2
dfの出力から@ ctrl-alt-delor –サイズ:189G、使用済み:178G
billyjmc

@ ctrl-alt delor、gpartedから10GBの数字を取得しました–後でbilの出力から11Gを取得しました。これは、billyjmcが正しく推測したためです。
-tobiornottobi

回答:


22

ファイルシステムがext4である場合、予約済みのブロックがあります。これは主に、処理を支援し、断片化を回避し、rootユーザーのみが利用できるようにするためです。この設定では、tune2fsを使用してライブで変更できます(ファイルシステムがマウントされているときにすべての設定をこのように処理できるわけではありません)。

-m予約済みブロックの割合

特権プロセスによってのみ割り当てられるファイルシステムの割合を設定します。ファイルシステムの断片化を回避し、非特権プロセスによるファイルシステムへの書き込みが防止された後、syslogd(8)などのシステムデーモンが引き続き正常に機能できるようにするために、特権プロセスで使用するためにいくつかのファイルシステムブロックを予約します。通常、予約ブロックのデフォルトの割合は5%です。

そのため、予約を1%(〜2GB)に下げて、予約済みスペースのない〜8GBにアクセスできるようにするには、次のようにします。

sudo tune2fs -m 1 /dev/nvme0n1p8

注:この-mオプションは、実際にはパラメーターとして10進数を受け入れます。あなたは使用することができます-m 0.1(ほとんどのものを以前に使用できない10ギガバイトのアクセス)のみ〜200メガバイト程度確保します。-r代わりにオプションを使用して、ブロックごとに直接予約することもできます。0個の予約ブロックを持つことはおそらくお勧めできません。


3
ユーザーは8 GBを「戻す」ことはできません。消費する8 GBが増えています。すべてのディスク領域を使い果たしているものを追跡し、必要に応じてクリーンアップを実行するか、別の方法で別の場所に移動するか、パーティションを拡大することをお勧めします。
クサラナナンダ

1
@Kusalananda語彙を変えます。使用方法については、OPのフィードバックが必要です。この質問は、未知の高使用率が存在することを示唆するものではなく、10GBしかありません。
AB

1
非常に良い答えです。ありがとうございます。5%は、欠落している10ギガバイトと非常に明確に一致しているようです。全体としてそれほど多くのディスク領域を使用することについては心配していませんが、パーティションを増やすことはできます。:)
tobiornottobi

4
あなたの答えは確かに正しいですが、この場合のルート予約スペースの価値はそれほど大きくないことに注意する価値があります。これは/homeであり、ルートのスペースを確保することは、ファイルシステムの他の部分ほど重要ではありません(たとえば、システムログを引き続き書き込むことができるようにするため)。また、これはSSDであるため、断片化を防止することは、回転する金属ディスクに優先順位がない場合があります。
-marcelm

@marcelmそれは私には理にかなっています。しかし、それはまだSSDの/ homeパーティションで便利ですか、それとも単にスペースの無駄ですか?ルートの予約スペースを1%に下げることをお勧めしますか?
tobiornottobi

8

削除されたファイルも「スペース不足」の一因になる可能性があります

lsof | grep deleted | grep /home

私のためにこの出力を返します

chrome    11181           criggie   15u      REG              254,0   
4194304  50651663 /home/criggie/.config/google-chrome/BrowserMetrics/BrowserMetrics-5D0236AF-2BAD.pma (deleted)

これは、PID 11181として実行されているChromeがそのBrowserMetricsファイルを開いてから削除し、ファイルハンドルがまだ開いていることを示しています。これは、ファイルがディレクトリリストに表示されないが、まだディスク領域を占有していることを意味します。

なぜプログラムはこれを行うのですか?実行中のバイナリが終了すると、OSは開いているファイルハンドルを解放し、古い一時ファイルを残すリスクなしにディスク上のファイルが消えます。

私が見ることができないのは、そのファイルのディスク使用量の大きさです。


2
よく書かれたプログラムのほとんどはこれを行うべきではありません。これはバグであり、報告する必要があります。これらの不明瞭なバグのほとんどは、最適化フェーズになるまで実際には表示されないだけです。彼らがこれをしている特定の理由があるかもしれないことに注意してください、私はここでハンドルをこの間開いたままにしておく理由を私は知らないかもしれません。
酒に酔ったコードモンキー

4
@DrunkenCodeMonkey Dude-そのChrome ...あなたは完全に正しいです。
クリギー

4
@DrunkenCodeMonkey、非常に多くのよく書かれたプログラムがこれを行います。それはファイルがプログラムの終了時にかかわらず、削除される保証ので、* nixの上の一時ファイルを作成するためのオープン・削除開閉パターンは、ほぼ普遍的である、正常終了をクラッシュ、メモリ不足によって殺され、殺された:それは終了します停電などにより
マーク

3
@DrunkenCodeMonkeyだから、プログラムがそれで終わらない場合はどうでしょうか?
leftaroundabout

3
@DrunkenCodeMonkey:パターンはopen- delete - work -closeです。プログラムがまだ一時ファイルの内容で何かを実行している場合(たとえば、ディスク上のキャッシュとして使用したり、テレメトリデータをログに記録したりする場合)、もちろん開いたままにしておく必要があります。(もちろん、これは、プログラムが閉じられるべきであるが閉じられなかった、実際には古い非クローズドファイルハンドルである可能性もあります。しかし、そのようなファイルが1つしかないこと、およびリソースリークの明らかな兆候がないことを考えると私は、ファイルがおそらく意図的に開かれたままになっているという仮定から始めます。)
Ilmari Karonen
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.