Hyper-V上のLVMボリュームを空き領域まで広げる

Hyper-Vで論理ボリュームのサイズが、仮想ディスクの半分しかないということがあります。Hyper-Vの仮想マシン上にUbuntuサーバーをインストールしたのですが、ルートボリュームが半分しかないということに気が付きました。仮想ディスクを作るときに指定したサイズは256GBなのですが、Ubuntu Serverのウィザードに任せておいたら128GBだけ使われている状態になっていました。

現在の状態の確認

dfを使ってマシンの現在の状態を確認します。

$ df -h
Filesystem                         Size  Used Avail Use% Mounted on
udev                               3.9G     0  3.9G   0% /dev
tmpfs                              791M  1.1M  790M   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv  125G   11G  109G   9% /
tmpfs                              3.9G     0  3.9G   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
tmpfs                              3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/loop1                          62M   62M     0 100% /snap/core20/1242
/dev/loop2                          56M   56M     0 100% /snap/core18/2246
/dev/loop7                          62M   62M     0 100% /snap/core20/1270
/dev/loop4                          43M   43M     0 100% /snap/snapd/14066
/dev/loop5                          44M   44M     0 100% /snap/snapd/14295
/dev/loop6                          68M   68M     0 100% /snap/lxd/21835
/dev/loop3                          68M   68M     0 100% /snap/lxd/21803
/dev/loop0                          56M   56M     0 100% /snap/core18/2253
/dev/sda2                          976M  204M  706M  23% /boot
/dev/sda1                          511M  5.3M  506M   2% /boot/efi
tmpfs                              791M     0  791M   0% /run/user/1000

ルートボリュームのサイズは125GBです。

空き領域を埋める

LVMの論理ボリュームを拡張するには、論理ボリュームへのパスが必要になります。パスを調べるためlvdisplayを使用します。

$ sudo lvdisplay
  --- Logical volume ---
  LV Path                /dev/ubuntu-vg/ubuntu-lv
  LV Name                ubuntu-lv
  VG Name                ubuntu-vg
  LV UUID                jOhKhn-FPg7-ZtyK-tK10-fF2g-pPUL-Vt4Yaa
  LV Write Access        read/write
  LV Creation host, time ubuntu-server, 2021-05-27 03:29:41 +0000
  LV Status              available
  # open                 1
  LV Size                127.25 GiB
  Current LE             32576
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

lvdisplayは論理ボリュームの情報を出力します。出力された情報からパスは/dev/ubuntu-vg/ubuntu-lvであることが分かります。

論理ボリュームを拡張するには lvextend を使用します。

$ sudo lvextend -l+100%FREE /dev/ubuntu-vg/ubuntu-lv
  Size of logical volume ubuntu-vg/ubuntu-lv changed from 127.25 GiB (32576 extents) to <254.50 GiB (65151 extents).
  Logical volume ubuntu-vg/ubuntu-lv successfully resized.

コマンドライン引数の先頭で拡張する容量を指定します。-l+100%FREEは空き領域を全て使うという意味です。2番目の引数にはパスを指定します。

次に実際のファイルシステムに変更を反映するため、resize2fsを使用します。

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

resize2fs 1.45.5 (07-Jan-2020)
Filesystem at /dev/ubuntu-vg/ubuntu-lv is mounted on /; on-line resizing required
old_desc_blocks = 16, new_desc_blocks = 32
The filesystem on /dev/ubuntu-vg/ubuntu-lv is now 66714624 (4k) blocks long.

resize2fsは少し時間がかかることがあります。

成功したかどうかdfを使って確認します。

$ df -h
Filesystem                         Size  Used Avail Use% Mounted on
udev                               3.9G     0  3.9G   0% /dev
tmpfs                              791M  1.1M  790M   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv  251G   11G  229G   5% /
tmpfs                              3.9G     0  3.9G   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
tmpfs                              3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/loop1                          62M   62M     0 100% /snap/core20/1242
/dev/loop2                          56M   56M     0 100% /snap/core18/2246
/dev/loop7                          62M   62M     0 100% /snap/core20/1270
/dev/loop4                          43M   43M     0 100% /snap/snapd/14066
/dev/loop5                          44M   44M     0 100% /snap/snapd/14295
/dev/loop6                          68M   68M     0 100% /snap/lxd/21835
/dev/loop3                          68M   68M     0 100% /snap/lxd/21803
/dev/loop0                          56M   56M     0 100% /snap/core18/2253
/dev/sda2                          976M  204M  706M  23% /boot
/dev/sda1                          511M  5.3M  506M   2% /boot/efi
tmpfs                              791M     0  791M   0% /run/user/1000

成功しました。ルートボリュームの容量は251GBになりました。

投稿者プロフィール

林 晃
林 晃アプリ開発者
アールケー開発代表。Appleプラットフォーム向けのアプリ開発が好きなアプリ開発者。アプリの受託開発、技術書執筆、技術指導・セミナー講師。3DCGコンテンツ作成にも取組中です。

基礎から学ぶARKit


「基礎から学ぶARKit」を執筆しました。本書はARKitを使ったARアプリの開発方法を解説した技術書です。

ARKitを使ってARアプリを作るときの流れや基本的なAPIの使い方などをサンプルアプリを作りながら学べます。

詳細

基礎から学ぶMetal


「基礎から学ぶMetal」を執筆しました。本書はMetalを使ってGPUプログラミングを行うための最初のステップを解説するMetalの解説書です。

私が初めてGPUプログラミングを行ったとき、どこから手をつけて、学んでいけば良いのか分からず呆然としました。もし、あのとき、これを教えてくれればという部分を解説しました。本書で解説している部分はMetalの基礎となる部分で、Metalを使うときに必ず触れることになる部分です。

詳細

関連記事

  1. セカンダリアプリ判定

  2. XcodeやAppCodeで16進数や2進数で値を確認する方法

  3. AppCodeの割り当てメモリを増やす

  4. GPGの鍵の生成方法

  5. Wordでしおり(目次)を持ったPDFを作る方法

  6. SSHのクライアント側のセットアップ

最近の著書

  1. 基礎から学ぶ SwiftUI

最近の記事