更改 vdi 文件大小
在虚拟机关闭的情况下, 执行以下操作
# cmd 下执行
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" list hdds
# 显示结果
UUID: 3431e0fe-ad04-4e2d-983f-69b18d5fb097
Parent UUID: base
State: locked read
Type: normal (base)
Location: C:\Users\zhanlin\VirtualBox VMs\C7\C7.vdi
Storage format: VDI
Capacity: 20480 MBytes
Encryption: disabled
UUID: 304f75b7-575f-4ca3-b1a8-aefec725eb45
Parent UUID: 3431e0fe-ad04-4e2d-983f-69b18d5fb097
State: locked write
Type: normal (differencing)
Location: C:\Users\zhanlin\VirtualBox VMs\C7\Snapshots/{304f75b7-575f-4ca3-b1a8-aefec725eb45}.vdi
Storage format: VDI
Capacity: 20480 MBytes
Encryption: disabled
注意如果你曾经建立过快照, 那么可能会有两个文件需要扩容:
- 正经的 vdi 文件: C7\C7.vdi
- 快照使用的 vdi 文件: C7\Snapshots/{304f75b7-575f-4ca3-b1a8-aefec725eb45}.vdi
一旦建立过快照, 你目前使用的状态应该都是基于最新快照的, 所以需要为快照文件扩容:
# 为 vdi 文件扩容, 实际上在有快照存在的情况下, 我感觉这一步没有必要
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd "C:\Users\zhanlin\VirtualBox VMs\C7\C7.vdi" --resize 20480
# 为快照扩容, 其中 20480 是 20480mb, 即 20 GB
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd "C:\Users\zhanlin\VirtualBox VMs\C7\Snapshots/{304f75b7-575f-4ca3-b1a8-aefec725eb45}.vdi" --resize 20480
在 Linux 中启用新硬盘
重启虚拟机, 确认扩容后的结果:
sudo fdisk -l /dev/sda
# 显示结果, 已经是 21.5 GB 了, 但是 df -h 会发现并未在使用中
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0007375a
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 16777215 7339008 8e Linux LVM
/dev/sda3 16777216 41943039 12582912 8e Linux LVM
然后开始启用新分区:
sudo fdisk /dev/sda
# 依次选择以下选项
n
p
3
# 此时回车两次, 使用默认值扩容
# 然后再依次选择以下选项
t
3
8e
w
# 此时会保存退出, 并且一般会提示, 以下内容, 此时重启
WARNING: Re-reading the partition table failed with error 16:设备或资源忙。 The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8)
查看 VG Name 和 mapper
# 查看 VG Name
sudo vgdisplay
# 显示结果
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 18.99 GiB
PE Size 4.00 MiB
Total PE 4862
Alloc PE / Size 4862 / 18.99 GiB
Free PE / Size 0 / 0
VG UUID S6qpoZ-XkIC-eGC2-3oRn-gMfU-VMq0-G2TVjx
# 查看 mapper
ll /dev/mapper
# 显示结果
lrwxrwxrwx 1 root root 7 Sep 9 11:32 centos-root -> ../dm-0
lrwxrwxrwx 1 root root 7 Sep 9 11:27 centos-swap -> ../dm-1
crw------- 1 root root 10, 236 Sep 9 11:27 control
其中, VG Name centos
和 centos-root
后续会使用.
依次执行以下命令:
sudo pvcreate /dev/sda3
sudo vgextend centos /dev/sda3 # 前面查询到的 centos
sudo lvextend /dev/mapper/centos-root /dev/sda3 # 前面查询到的 centos-root
其实确认文件系统:
cat /etc/fstab | grep centos
# 显示结果
/dev/mapper/centos-root / xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
此时如果是 xfs 系统, 执行如下命令:
sudo xfs_growfs /dev/mapper/centos-root
否则执行:
sudo resize2fs /dev/mapper/centos-root
最后查询扩容效果:
df -h
# 显示结果
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 19G 6.0G 13G 33% /
devtmpfs 908M 0 908M 0% /dev
tmpfs 920M 0 920M 0% /dev/shm
tmpfs 920M 8.6M 911M 1% /run
tmpfs 920M 0 920M 0% /sys/fs/cgroup
/dev/sda1 1014M 149M 866M 15% /boot
tmpfs 184M 0 184M 0% /run/user/1000
Comments