Proxmoxで仮想マシンのディスク容量を拡張する方法

Proxmoxでディスク容量を増やしたにもかかわらず、仮想マシン内でその容量が認識されない場合の対処法です。

## 問題の状況

- Proxmoxの管理パネルから仮想マシンのディスク容量を拡張した
- 論理ボリュームのサイズが変更されたことが確認できた
- しかし、仮想マシン内で`df -H`コマンドを実行しても、容量が増えていない

```bash
# Proxmoxでのサイズ変更の確認
Size of logical volume pve/vm-100-disk-0 changed from 50.00 GiB (12800 extents) to 100.00 GiB (25600 extents).
Logical volume pve/vm-100-disk-0 successfully resized.
TASK OK

# VM内でのディスク使用状況
Filesystem                         Size  Used Avail Use% Mounted on
tmpfs                              3.1G  1.5M  3.1G   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv   26G   23G  1.9G  93% /
tmpfs                               16G     0   16G   0% /dev/shm
tmpfs                              5.3M     0  5.3M   0% /run/lock
/dev/sda2                          2.1G  101M  1.9G   6% /boot
tmpfs                              3.0G   13k  3.0G   1% /run/user/1000
```

## 原因

Proxmoxでの論理ボリュームのサイズ変更は、基盤となるストレージデバイスのサイズのみを変更します。仮想マシン内のパーティションとファイルシステムを手動で拡張する必要があります。

## 解決手順

### 1. 仮想マシンがディスク容量の増加を認識しているか確認

```bash
lsblk
```

このコマンドの説明：
- `lsblk`：システムに接続されているブロックデバイス（ディスク、パーティション）の情報を表示するコマンド
- オプションなしの場合、すべてのブロックデバイスを階層構造で表示します

出力例：
```bash
NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda                         8:0    0  100G  0 disk 
├─sda1                      8:1    0    1M  0 part 
├─sda2                      8:2    0    2G  0 part /boot
└─sda3                      8:3    0   48G  0 part 
  └─ubuntu--vg-ubuntu--lv 252:0    0   24G  0 lvm  /
```

この出力から、ディスク全体（sda）は100GBに増えていることが確認できますが、パーティション（sda3）は48GB、LVM論理ボリューム（ubuntu--vg-ubuntu--lv）は24GBのままで、まだ拡張されていないことがわかります。このコマンドで現在のディスク構成を確認することで、次に実行すべきコマンドを把握できます。

### 2. パーティションテーブルを拡張

```bash
sudo growpart /dev/sda 3
```

このコマンドの説明：
- `growpart`：パーティションテーブルを非破壊的に拡張するツール
- `/dev/sda`：対象のディスクデバイス
- `3`：拡張するパーティション番号（この例ではsda3）

このコマンドは、ディスクデバイス上のパーティションを、使用可能な最大容量まで拡張します。物理的なディスクサイズが増えた場合に、そのパーティションのサイズも増やすために使います。

### 3. 物理ボリュームを拡張

```bash
sudo pvresize /dev/sda3
```

このコマンドの説明：
- `pvresize`：LVM（Logical Volume Manager）の物理ボリュームのサイズを変更するコマンド
- `/dev/sda3`：拡張する物理ボリュームのパーティション

パーティションのサイズが増えたら、その上に構築されているLVMの物理ボリュームも拡張する必要があります。このコマンドは、物理ボリュームがパーティションの新しいサイズを認識するようにします。

### 4. 論理ボリュームを拡張

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

このコマンドの説明：
- `lvextend`：論理ボリュームのサイズを拡張するコマンド
- `-l +100%FREE`：使用可能なすべての空き容量を使用するオプション
- `/dev/mapper/ubuntu--vg-ubuntu--lv`：拡張する論理ボリュームのパス

論理ボリュームは、物理ボリュームの上に作成される仮想的なディスクボリュームです。このコマンドにより、物理ボリュームで使用可能なすべての空き容量を論理ボリュームに追加します。

### 5. ファイルシステムをリサイズ

```bash
sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
```

このコマンドの説明：
- `resize2fs`：ext2/ext3/ext4ファイルシステムのサイズを変更するコマンド
- `/dev/mapper/ubuntu--vg-ubuntu--lv`：リサイズするファイルシステムがあるデバイス

論理ボリュームのサイズが拡張されても、その上のファイルシステム自体はまだ元のサイズのままです。このコマンドは、ファイルシステムを拡張して、論理ボリュームの新しいサイズをすべて使用できるようにします。XFSファイルシステムの場合は代わりに`xfs_growfs`コマンドを使用します。

## 結果の確認

```bash
df -H
```

このコマンドの説明：
- `df`：ディスクの空き容量を表示するコマンド（Disk Free）
- `-H`：容量を人間が読みやすい形式で表示するオプション（1GB = 1,000,000,000バイトとして計算）

出力例：
```bash
Filesystem                         Size  Used Avail Use% Mounted on
tmpfs                              3.1G  1.6M  3.1G   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv  104G   23G   77G  23% /
tmpfs                               16G     0   16G   0% /dev/shm
tmpfs                              5.3M     0  5.3M   0% /run/lock
/dev/sda2                          2.1G  101M  1.9G   6% /boot
tmpfs                              3.0G   13k  3.0G   1% /run/user/1000
```

このコマンドで、ファイルシステムの容量がどのように変化したかを確認できます。上記の出力では、ルートファイルシステム（/）の容量が104GBに増加し、使用可能な空き容量が77GBになっていることが確認できます。この結果から、すべての拡張手順が正常に完了したことがわかります。

これで、ルートファイルシステム（/）の容量が104GBに増加し、77GBの空き容量が利用可能になりました。

<blockquote class="twitter-tweet" data-media-max-width="560"><p lang="ja" dir="ltr">ミニPCサーバーにProxmoxを入れる⑨<br>無事に領域の拡張できた、、、<br>サイズを変えるだけじゃなくて、ちゃんとOS側の設定も必要だった、、、 <a href="https://t.co/MDkQeOwoWF">https://t.co/MDkQeOwoWF</a> <a href="https://t.co/EyAfZhKi8L">pic.twitter.com/EyAfZhKi8L</a></p>&mdash; Maki@Sunwood AI Labs. (@hAru_mAki_ch) <a href="https://twitter.com/hAru_mAki_ch/status/1902397759216627887?ref_src=twsrc%5Etfw">March 19, 2025</a></blockquote> 

## 注意事項

- 上記の手順はUbuntuでLVMを使用している場合のものです
- 異なるパーティション構成やファイルシステムを使用している場合は、コマンドを適宜調整する必要があります
- 重要なデータがある場合は、事前にバックアップを取ることをお勧めします


<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>