仮想ハードディスクのサイズをハイパーバイザーで増やしましたが、Ubuntuはまだそのすべてのスペースをルートとして使用していません。ディスクはまずハイパーバイザー側で拡張され、その新しい容量がゲスト内で見えるようにする必要があります。この手順は、シンプルなext4パーティションに直接マウントされたルート / のみを対象としています。

パーティションとファイルシステムは二つの異なる層です。この手順は、まずパーティションエントリを拡張し、次にext4を拡張します。前のチェックがマシンに一致する場合のみ、次のステップに進んでください。
ext4のルート、ディスク、およびパーティションを特定する
まず、/ にマウントされているファイルシステムのソースとタイプを確認し、デバイスとその関係を調べます:
findmnt -no SOURCE /
findmnt -no FSTYPE /
lsblk
最初のコマンドはルートを持つパーティションを指し示す必要があります。二番目のコマンドは ext4 を示すべきです。lsblk では、このパーティションから親ディスクまで遡ります。明示的な列を得るには、次のように検査を補完できます:
lsblk -b -o NAME,PATH,TYPE,FSTYPE,SIZE,MOUNTPOINTS,PKNAME,PARTN
例からディスク名を推測しないでください。ルートは例えば /dev/vda2 にあり、ディスクは /dev/vda で、パーティション番号は 2 になります。NVMeでは、/dev/nvme0n1p2 がディスク /dev/nvme0n1 と番号 2 に対応しています。常に自分の出力でこれらを確認してください。
以下のコマンドでは、/dev/sdX は常に全ディスクのプレースホルダーであり、決してパーティションのためではありません。N は実際のルートパーティション番号を表します。実行前に必ず置き換えてください。これらの例をそのままコピーしないでください。
次に、特定したディスク上のパーティションテーブルと制限を確認します。次のコマンドで /dev/sdX を確認したディスク全体のパスに置き換えてください:
sudo fdisk -l /dev/sdX
fdisk -l はテーブルを読み取るために使用され、変更するためではありません。ディスクの容量、パーティションの制限、およびその順序を比較します。自由なスペースは、ルートパーティションの直後にあり、間に他のパーティションがない必要があります。fdiskのドキュメント は、このツールによって表示されるテーブルの情報を説明しています。この読み取りは、実際のトポロジーを確認するのに代わるものではありません。
書き込みの前に、仮想診断を行います。二つのプレースホルダーを実際に特定したディスクとパーティション番号に置き換えてください:
sudo growpart --dry-run /dev/sdX N
--dry-run モードは、変更なしにツールが何をするかを報告します。これは、連続して利用可能なスペース内で正しいパーティションの拡張が可能であることを示す必要があります。ubuntuのgrowpartドキュメントは、ディスク-パーティション番号の構文と仮想診断の役割を指定しています。
LVM、LUKS、またはRAIDを介してルートが存在する場合、ファイルシステムがBtrfsまたはXFSである場合、またはext4でない場合、拡張/論理パーティションまたは他の層がトポロジーを曖昧にしている場合、自由なスペースがルートの前にある場合や連続していない場合、または他のパーティションがルートの後にある場合は中断します。また、拡張したディスクが見えない場合、ツールが欠落している場合、診断が期待される拡張を示さない場合やエラーを返す場合も中断してください。パーティション操作でこれらのケースを回避しようとしないでください。
変更とバックアウトを準備する
パーティションテーブルを書き込むこの手順の唯一のコマンドの前に、復元可能なバックアップがあること、復元方法がわかっていること、および検査の出力が保持されていることを確認します。スナップショットは、実際に復元できる場合にのみバックアウトとして役立ちます。
また、マシンのリカバリコンソールとハイパーバイザーへのアクセスが可能であること、Ubuntuを再起動できる可能性を確認してください。介入ウィンドウを計画してください。カーネルが新しいパーティションサイズをホットプラグで認識しない場合、再起動が必要になるかもしれません。バックアップ、コンソールアクセス、または再起動の可能性が保証されていない場合は中断してください。
現在のファイルシステムの状態を記録し、findmnt、lsblk、fdisk -l および仮想診断の結果を保持しておき、後で比較します:
df -hT /
この出力は比較のためのものであり、パーティションとext4がすでに拡張されているという証拠にはなりません。
パーティションエントリを拡張する
前のすべての検証が適合し、復元可能なバックアップが準備され、リカバリアクセスと再起動が可能である場合のみ、進めます。次のコマンドはパーティションテーブルを変更します。必ず /dev/sdX と N を確認したディスクと番号に置き換えてください。最初は全ディスク、二番目はルートパーティションを指します。
sudo growpart /dev/sdX N
期待される結果は、連続して利用可能なスペースに向けたルートパーティションのエントリ拡張の報告です。growpart はパーティションのサイズを変更し、ext4のファイルシステムのサイズを変更しません。
コマンドがエラーを返したり、拡張が報告されなかったり、テーブルに警告を表示したり、他のデバイスを対象とするように見える場合は中断してください。resize2fs を続行せず、視覚的にパーティションを再作成または修正しようとしないでください。
カーネルによって認識されたサイズを確認する
操作後、テーブルとデバイスを確認します。/dev/sdX を特定したディスクに置き換えてください:
lsblk -b -o NAME,PATH,TYPE,FSTYPE,SIZE,MOUNTPOINTS,PKNAME,PARTN
sudo fdisk -l /dev/sdX
findmnt -no SOURCE /
同じパーティションは引き続きルートを保持し、カーネルによって lsblk で示される現在のサイズは、拡張されたパーティションエントリよりも大きく、一致する必要があります。テーブルに見える変更があっても、カーネルが以前のサイズを表示している場合は不十分です。
サイズが変わらなかった場合、テーブルの再読み込みが失敗した場合、テーブルとカーネルが一致しない場合、または認識されたパーティションが / にマウントされたものではない場合は中断します:resize2fs を実行しないでください。もし再読み込みが熱心でないがテーブルの拡張が確認された場合は、リカバリコンソールを使用して制御された再起動を計画してください。再起動後、ソース、タイプ、およびサイズの確認を再実行します。期待したサイズが依然として認識されない場合、または起動が問題になる場合は中断し、マシンの診断を行います。無闇にコマンドを増やさないでください。
パーティションの確認後にext4を拡張する
このステップは、findmnt が常に同じext4ルートを確認し、lsblk がそのパーティションが実際に新しいサイズを持っていることを確認した場合にのみ行います。プレースホルダー /dev/sdXN はここでルートパーティションの完全なパスを指し、それは全ディスクではありません。これは検証されたソースに置き換えてください。NVMeでは、パーティション名は特に /dev/nvme0n1p2 のようになります。
sudo resize2fs /dev/sdXN
期待される結果は、現在よりも大きくなったパーティション内でext4ファイルシステムの拡張です。resize2fsのドキュメント は、この操作をテーブルの変更と区別します:resize2fs はパーティションを変更しません。オンライン拡張はカーネルとファイルシステムのサポートに依存します;すべての構成で成功するとは限りません。
タイプがext4でない場合、パーティションが古いサイズを維持している場合、ソースがもはやマウントされたルートと一致しない場合、またはコマンドがエラーを返す場合は中断してください。/ をアンマウントして他の手順を即興することは避けてください。マウントされたルート上で縮小や e2fsck を実行しないでください。エラーには適切な診断が必要であり、無闇に新しいコマンドを実行することはありません。
使用可能なスペースを確認する
最後に、ソース、タイプ、パーティションのサイズおよび使用可能なスペースを確認します:
findmnt -no SOURCE /
findmnt -no FSTYPE /
lsblk -b -o NAME,PATH,TYPE,FSTYPE,SIZE,MOUNTPOINTS,PKNAME,PARTN
df -hT /
実際の拡張を確認するには、同じルートソース、タイプ ext4、カーネルによって認識された新しいパーティションサイズ、および df -hT / でのシステムファイルの容量が必要です。パーティションのサイズと df に報告されたスペースは同じではありません:ext4は自身の構造のためにその容量の一部を使用します。
もし df が増加していなかった場合、値が一致しない場合、またはコマンドがエラーを報告した場合、操作が成功したとは宣言せず、growpart を繰り返さないでください。診断のために出力を保存してください。非ルートのext4データパーティションをfdiskで拡張するための手順は異なり、この手順は適用されません。
要するに:ルートを正確に特定し、連続するスペースと仮想診断の結果を確認し、バックアップとリカバリを準備し、カーネルによって認識されたパーティションとext4を別々に確認してください。わずかな違いでもあれば、次のステップに進む前に中断してください。