VirtualBox下Ubuntu虚拟机的lvm分区扩容

最近VirtualBox下Ubuntu虚拟机遇到了根目录所在分区磁盘空间不够的问题。

VirtualBox下Ubuntu虚拟机的lvm分区扩容

先做了三个清理动作,效果不理想。

使用这三个命令做了清理之后,结果依然不够理想:

(1) sudo apt-get autoclean(已卸载软件的安装包)

(2) sudo apt-get clean(未卸载软件的安装包)

(3) 清理系统不再需要的孤立的软件包。sudo apt-get autoremove


于是我决定将ubuntu的虚拟机磁盘大小调整为40G。

(1) 在本地用VBoxManage命令对ubuntu虚机的vdi扩容

sudo VBoxManage modifyhd ubuntu-16.04.1-server-amd64.vdi --resize 40960

VirtualBox下Ubuntu虚拟机的lvm分区扩容

(2)VBoxManage list hdds看到确实扩容到了40G

VirtualBox下Ubuntu虚拟机的lvm分区扩容

(3) VirtualBox上也看到扩容到了40G。

VirtualBox下Ubuntu虚拟机的lvm分区扩容


ubuntu虚机里fdisk -l看到,扩容到40G生效了。

VirtualBox下Ubuntu虚拟机的lvm分区扩容

但是df -h查看的文件系统大小仍未改变。

VirtualBox下Ubuntu虚拟机的lvm分区扩容

使用命令sudo fdisk /dev/sda,然后选择n创建新的分区,类型为p,编号选择3。这里注意新建分区的开始位置要紧挨着现有的Linux LVM分区的结束位置,如下图所示。至于结束位置,我简单地指定成增加10G,因此结束位置是动态计算出来的。如下信息显示分区已经成功创建10G。

VirtualBox下Ubuntu虚拟机的lvm分区扩容

VirtualBox下Ubuntu虚拟机的lvm分区扩容

将新建分区的类型更改为8e:Linux LVM。最后输入w保存,很重要,否则前面的更改不会生效。

VirtualBox下Ubuntu虚拟机的lvm分区扩容

VirtualBox下Ubuntu虚拟机的lvm分区扩容

下一步是创建一个新的Physical volume物理卷: sudo pvcreate /dev/sda3

VirtualBox下Ubuntu虚拟机的lvm分区扩容

pvscan显示该物理卷还未分配给卷组 ubuntu-vg

VirtualBox下Ubuntu虚拟机的lvm分区扩容

使用命令vgextend ubuntu-vg /dev/sda3进行分配:

VirtualBox下Ubuntu虚拟机的lvm分区扩容

分配完成。

VirtualBox下Ubuntu虚拟机的lvm分区扩容

然后修改卷组的大小: sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-root

VirtualBox下Ubuntu虚拟机的lvm分区扩容

最后一步: resize2fs /dev/mapper/ubuntu--vg-root

VirtualBox下Ubuntu虚拟机的lvm分区扩容

大功告成

VirtualBox下Ubuntu虚拟机的lvm分区扩容