仮想マシン上のubuntuで容量が足りなくなったら?
仮想マシン上でubuntuを使っているとうっかり HDD容量が足りなくなる事ありますよね。
そんな時は仮想HDDのHDD容量を増やしてあげれば良い訳ですが、増やしたHDD容量がubuntu上で利用できるまでの手順がややっこしいので整理してみました。
手順の全体の流れは次の通り。
◆ 仮想HDDのHDD容量を変更する。
◆ partition sizeを拡張する。(VM ubuntuでの操作。)
◆ (LVM) LVMを拡張する。(VM ubuntuでの操作。)
◆ 拡張した領域をFilesystemへ反映する。(VM ubuntuでの操作。)
上記はLVMを利用している環境での例となります。
また、LVMを利用していない場合はLVMの操作は省略してください。
※LVM環境の場合、新規仮想HDDを追加してLVMを更新するのが一般的だと思います。今回はLVMを利用してない環境と手順を合わせて整理したかったので上記のような手順となっております。
仮想HDDのHDD容量を変更する
利用している仮想環境に合わせて仮想HDDの設定を変更してください。
例ではESXi v5.5環境での手順です。
partition sizeを拡張する。(VM ubuntuでの操作。)
(parted) resizepart コマンドで partition size を拡張する。
手順の流れは次の通り。
- deviceの状態を確認する。 ⇒ (parted) print all
- 指定sizeの単位を設定する。⇒ (parted) unit
- sizeを拡張する。 ⇒ (parted) resizepart
- 拡張した結果を確認する。⇒ (parted)print all
$ sudo parted /dev/sda
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print all
Model: VMware Virtual disk (scsi)
Disk /dev/sda: 34.4GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 2097kB 1049kB bios_grub
2 2097kB 1076MB 1074MB ext4
3 1076MB 17.2GB 16.1GB
Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/ubuntu--vg-ubuntu--lv: 4295MB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags:
Number Start End Size File system Flags
1 0.00B 4295MB 4295MB ext4
(parted) unit
Unit? [compact]?
(parted) help unit
unit UNIT set the default unit to UNIT
UNIT is one of: s, B, kB, MB, GB, TB, compact, cyl, chs, %, kiB, MiB, GiB, TiB
(parted) unit GB
(parted) resizepart 3 34.4GB
(parted) print all
Model: VMware Virtual disk (scsi)
Disk /dev/sda: 34.4GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 0.00GB 0.00GB 0.00GB bios_grub
2 0.00GB 1.08GB 1.07GB ext4
3 1.08GB 34.4GB 33.3GB
Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/ubuntu--vg-ubuntu--lv: 4.29GB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags:
Number Start End Size File system Flags
1 0.00GB 4.29GB 4.29GB ext4
(parted)q
(LVM) LVMを拡張する。(VM ubuntuでの操作。)
拡張したpartition
sizeをLVM で利用できるように設定する。
手順の流れは次の通り。
◆PV sizeの拡張
- PVの状態を確認する。 ⇒ pvdisplay
- PVのsizeを拡張する。 ⇒ pvresize
-
拡張した結果を確認する。⇒ pvdisplay
◆LV sizeの拡張
- LVの状態を確認する。 ⇒ lvdisplay
- LVのsizeを拡張する。 ⇒ lvextend
- 拡張した結果を確認する。⇒ lvdisplay
◆PV sizeの拡張
$ sudo pvdisplay
--- Physical volume ---
PV Name /dev/sda3
VG Name ubuntu-vg
PV Size <15.00 GiB / not usable 0
Allocatable yes
PE Size 4.00 MiB
Total PE 3839
Free PE 2815
Allocated PE 1024
PV UUID G4pi2r-wlRi-8t5Y-pcaF-H47v-3uX4-4ylWLd
$ sudo pvresize /dev/sda3
Physical volume "/dev/sda3" changed
1 physical volume(s) resized / 0 physical volume(s) not resized
$ sudo pvdisplay
--- Physical volume ---
PV Name /dev/sda3
VG Name ubuntu-vg
PV Size <31.00 GiB / not usable 16.50 KiB
Allocatable yes
PE Size 4.00 MiB
Total PE 7935
Free PE 6911
Allocated PE 1024
PV UUID G4pi2r-wlRi-8t5Y-pcaF-H47v-3uX4-4ylWLd
もし、PVサイズを指定する場合は次のコマンドを利用すれば良い。
>pvresize –setphysicalvolumesize [size] [device]
$ sudo pvresize --setphysicalvolumesize 20G /dev/sda3
◆LV sizeの拡張
$ sudo lvdisplay
--- Logical volume ---
LV Path /dev/ubuntu-vg/ubuntu-lv
LV Name ubuntu-lv
VG Name ubuntu-vg
LV UUID H6hjX4-uFx2-HWxw-o7H3-rXDU-VI4a-lt4tL6
LV Write Access read/write
LV Creation host, time ubuntu-server, 2018-09-23 23:10:39 +0000
LV Status available
# open 1
LV Size 4.00 GiB
Current LE 1024
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
$ sudo lvextend -l 100%FREE /dev/ubuntu-vg/ubuntu-lv
Size of logical volume ubuntu-vg/ubuntu-lv changed from 4.00 GiB (1024 extents) to <27.00 GiB (6911 extents).
Logical volume ubuntu-vg/ubuntu-lv successfully resized.
$ sudo lvdisplay
--- Logical volume ---
LV Path /dev/ubuntu-vg/ubuntu-lv
LV Name ubuntu-lv
VG Name ubuntu-vg
LV UUID H6hjX4-uFx2-HWxw-o7H3-rXDU-VI4a-lt4tL6
LV Write Access read/write
LV Creation host, time ubuntu-server, 2018-09-23 23:10:39 +0000
LV Status available
# open 1
LV Size <27.00 GiB
Current LE 6911
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
拡張した領域をFile systemへ反映する。(VM ubuntuでの操作。)
拡張した領域をFile systemへ反映する。
手順の流れは次の通り。
- File systemのチェック。 ⇒ e2fsck
- File systemへ反映する。 ⇒ resize2fe
-
反映した結果を確認する。⇒ df
$ sudo e2fsck -f /dev/ubuntu-vg/ubuntu-lv
e2fsck 1.44.1 (24-Mar-2018)
/dev/ubuntu-vg/ubuntu-lv is mounted.
e2fsck: Cannot continue, aborting.
$ sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
resize2fs 1.44.1 (24-Mar-2018)
Filesystem at /dev/ubuntu-vg/ubuntu-lv is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 4
The filesystem on /dev/ubuntu-vg/ubuntu-lv is now 7076864 (4k) blocks long.
$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 464M 0 464M 0% /dev
tmpfs 99M 1.1M 98M 2% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 27G 3.6G 22G 14% /
tmpfs 493M 0 493M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 493M 0 493M 0% /sys/fs/cgroup
/dev/loop0 88M 88M 0 100% /snap/core/5548
/dev/loop1 88M 88M 0 100% /snap/core/5328
/dev/loop2 87M 87M 0 100% /snap/core/4917
/dev/loop3 58M 58M 0 100% /snap/powershell/11
/dev/sda2 976M 209M 701M 23% /boot
tmpfs 99M 0 99M 0% /run/user/1000