Ubuntuでディスクパーティションのサイズを拡張する方法

Ubuntu Linux仮想マシンでディスク容量を増やしたい場合、正しい手順を知らないと少し面倒な作業になることがあります。デフォルトのセットアップでは論理ボリューム(LVM)が使用されることが多いため、ディスクサイズを増やすには、ハイパーバイザーに容量を追加するだけでは不十分です。物理ディスクのサイズ変更、パーティションの拡張、そしてLVMとファイルシステムの拡張が必要になります。特にLVM管理に慣れていない場合は、この作業が面倒になることがあります。しかし、一度流れを理解すれば、問題なく実行できます。その結果、Ubuntu VMは新しい容量を認識し、すべてを再インストールしたり再作成したりすることなく、使い始めることができます。

Ubuntu Linuxで仮想ディスクスペースを拡張し、パーティションのサイズを変更する方法

ハイパーバイザー上の仮想ディスクを増やす

これが出発点です。当たり前のことなのに見落とされがちです。ハイパーバイザーにVMにディスク容量を増やすよう指示する必要があります。一般的なハイパーバイザー向けの簡単なヒントを以下に示します。

  • VMwareの場合:VM > 設定 > ハードディスクでディスクサイズを増やし、VMをパワーオフします。その後、VMを再起動し、VMツールを使用して新しいスペースを認識します。
  • Hyper-Vの場合:Hyper-Vマネージャーを使用します。VMを右クリックし、「設定」に移動して仮想ハードディスクを見つけ、「ディスクの編集」をクリックします。「拡張」を選択し、新しいサイズを設定します。その後、VMを再起動します。
  • KVMの場合: コマンドを使用してqemu-img resize /path/to/disk.img +10Gイメージを拡大し、VM を起動します。

もちろん、仮想化ではすべてが少し複雑になり、OS が新しい領域を検出するために再起動または更新が必要になる場合があります。

Ubuntu に新しいディスク領域を強制的にスキャンさせる

VMディスクの容量を増やしても、Ubuntuは新しい空き容量を自動的に認識しません。強制的に再スキャンする必要があります。

$ echo 1 > /sys/class/block/sda/device/rescan

このコマンドは、Ubuntuに物理ディスクを再検査し、変更を認識するよう指示します。設定によってはすぐに機能しますが、更新されていない場合はVMを再起動した方が簡単な場合もあります。

cfdiskでパーティションのサイズを変更する

次のステップ:パーティションテーブルを操作します。cfdisk(fdiskの使いやすいTUI)から開始し、以下を実行します。

$ sudo cfdisk

ルートファイルシステムが格納されているパーティション(通常は/dev/sda3 )を探してください。未割り当て領域があるはずです。「サイズ変更」オプションを使用してください。パーティションを選択し、余分な領域を埋めるようにサイズを変更し、「書き込み」を選択して確定します。その後、cfdiskを終了します。簡単ですが、誤った変更を行うと問題が発生する可能性があるので注意してください。

注: cfdisk で空き容量が表示されない場合は、代わりにparted をお試しください。大容量ディスクや GPT ディスクを扱う場合は、parted の方が信頼性が高い場合があります。

システムがLVMを使用しているかどうかを確認する

先に進む前に、LVM を使用しているかどうかを確認してください。以下を実行します。

$ sudo lsblk

LVMという行を探してください。ルートパーティションが/dev/mapper/ubuntu–vg-ubuntu–lvのように表示されている場合、すべてLVMによって管理されています。そうでない場合は、通常のパーティションのサイズを直接変更している可能性があります。その場合は手順が異なり、パーティションを調整した後、ファイルシステムのサイズを直接変更する必要があるでしょう。

物理ボリュームと論理ボリュームのサイズ変更

LVMをお使いの場合は、次の手順でPVのサイズを変更し、次にLVを拡張します。なぜでしょうか?LVMは物理ディスクをボリュームグループにスタックし、その中に論理ボリュームを格納するためです。使用可能なスペースを確保するには、まず新しいパーティションサイズに合わせてPVを拡張する必要があります。

$ sudo pvresize /dev/sda3

このコマンドは、新しい領域を使用できるように物理ボリュームを拡張します。その後、ボリュームグループを確認します。

$ sudo vgdisplay

現在の空き容量が表示されます。LV(ルートフォルダまたはホームフォルダが格納されているパーティション)を拡張するには、次のコマンドを実行します。

$ sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv

このコマンドはボリュームグループ内のすべての空き領域を使用します。論理ボリュームを拡張したら、次のコマンドでファイルシステム自体のサイズを変更します。

$ sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

この最後のステップにより、Ubuntuは新しいサイズを認識します。確認すると、df -hディスク容量が増加しているはずです。正直なところ、少し奇妙に感じるかもしれませんが、環境によっては、このプロセスが最初からうまくいかない場合があります。すべてを安定させるには、やり直したり、再起動したりする必要があるかもしれません。

非LVMセットアップの代替

LVMを使用していなくてもご心配なく。partedを使ってパーティションのサイズを直接変更してみてください。

$ sudo parted print free

サイズ変更するパーティションの番号を見つけて、次のコマンドを実行します。

$ sudo parted resizepart n

n をパーティション番号に置き換えてください。ただし、パーティションのサイズ変更は、間違った選択をすると危険な場合があるので注意してください。

Linuxのディスク管理についてさらに詳しく知りたい方は、GitHubリポジトリ「Winhance」でスクリプトやガイドをご覧ください。自動化は、それほど怖くなくなることもあります。