スケジュールされたブロックの問題:パーティションサイズが正常に変更されましたが、OSはそれを認識しません。

スケジュールされたブロックの問題:パーティションサイズが正常に変更されましたが、OSはそれを認識しません。

私はデュアルブートシステムを実行しており、LinuxディストリビューションはUbuntu 14.04です。

/dev/sda6私はGPartedを使用して、ディレクトリが通常マウントされる論理パーティションを拡張しました。/homeGParted レポートによると、操作は正常に完了しました。パーティションサイズは85GiBで、予想通り83GiBが使用され、2GiBが使用可能です(d)。

ところで、ここには2つの奇妙な点があります。

  1. そのバフはログイン後に認識されません。ディスク使用量チェックを有効にすると、df -hレポート/dev/sda6に正しくマウントされたパーティションサイズが/home85GiBで、そのうち83GiBが使用されていると表示されます。0利用可能。利用率は100%と言われています。

  2. もう1つの奇妙なことは、GUIを介して定期的にユーザープロファイルにログインできることです。ただし、資格情報が認識された後は、システムの動作が停止し、デスクトップ環境に切り替えられません。情報を取得するには、df -hテキスト端末に一般IDでログインするか、GUIからゲストとしてログインする必要があります。ところで、データが破損しているようではありません。

この状況をどのように解決できますか?目的は、パーティションサイズの増加をオペレーティングシステムで完全に使用できるようにすることです。助けてくれてありがとう。

答え1

おそらく、extこれらのファイルシステム(通常はデフォルトのLinuxファイルシステムext4)の1つを使用しています。ほとんどの場合、作成時と呼ばれる特定のバッファを使用して生成されますreserved blocks。この予約済みスペースはシステムプロセスとルートによってのみ記録されるため、ユーザーディスクがいっぱいになることからオペレーティングシステムを保護します。

主な目的dfは、利用可能な合計ディスク容量の量を表示することです。 (ユーザーが)使用するスペースも表示しますが、予約されたスペースは表示しません。

デフォルトでは、このバッファはディスク全体の5%を占めます。そのようなバッファがあるかどうかを確認できますsudo tune2fs -l /dev/sda6 | grep Reserved。入力により、sudo tune2fs -l /dev/sda6 | grep [bB]locksBの予約済みブロック数とブロックサイズを読み取り、構造が占めるパーティションスペースを確認することもできます。これは、システムが85GiBとしてマークされていますが、83個のみが使用され、無料では0個のみが使用されることを示しています。

必要に応じて、バッファをより低い値に設定できますsudo tune2fs -m 2 /dev/sda6(2はパーセントサンプル値、デフォルトは5です)。

より良いオプションは、実際にサイズを変更して安全に十分な空きディスク容量を確保することです。 85GiBのうち2GiBはわずか2.35%です。これはあまりありません。ほとんどの場合、比較的早く埋められます。スペース使用量が83GiBで安定すると確信している場合は、tune2fsを使用して安全のために0%を予約できますが、ディスクがいっぱいになると(85GiBまで)すべての内容を記録できず、システムがクラッシュして修正するのが難しくなります。 。

5%安全マージンは比較的合理的な安全マージンです。したがって、この場合は、緊急事態に備えてパーティションを少なくとも90GiB、おそらく100GiB以上に設定します。ディスクスペースは安価ですが、ディスクがいっぱいになって発生する問題を解決するのにかかる時間ははるかに高価です。

答えこの問題推論についてより多くの洞察を提供します。

答え2

状況をよりよく説明するには、いくつかの言語的混乱を排除する必要があります。ゴポットdfそして2fs調整ディスク領域の少し異なる概念には、同じまたは類似の単語を使用してください。

私は疑似方程式の理解を書き直し、次の演算子をオーバーロードしました。

'=' means 'corresponds to'
'@' means 'according to'

私はdf -hこの低プロファイルを使用し、さらに維持し始めました。tune2fs -lブロック数は通常、適切な構文に従ってブロックサイズで返されます。これを掛けると、ディスク領域のサイズが得られます。ディスク容量測定値が同じ下数(2または10)で表示されていることを確認してください。

まず、以下の観点からゴポット

size @ gparted = size @ df = block count * block size @ tune2fs
unused @ gparted = free blocks * block size @ tune2fs 
used @ gparted = used @ df = (block count - free blocks) * block size @ tune2fs

これまでは非常に直感的です。

それからdf

size @ df = size @ gparted = block count @ tune2fs 
used @ df = used @ gparted = (block count - free blocks) *block size @ tune2fs
available @ df = max[(free blocks - reserved block count) * block size @ tune2fs, 0]

だから、書くことができる@はdf次のものとは異なることを意味します無料tune2fs@そして未使用@ gparted

要約すると、利用可能な空間df測定値は過度合計スペース(で空きスペースtune2fsまたは未使用スペースとしてマーク)gpartedがune2fsで予約されたクォータを超えています。超過がゼロの場合、正しい操作のために予約されたディスク容量が不足していることを示します。

関連情報