Linux LVM逻辑卷未占满磁盘分区【扩充LVM逻辑卷】
以前,安装linux按照传统的分区方式,选择custom,可以给磁盘划分出sda1, sda2...
这些在linux里称之为分区,partition,然后分别把/
,/home
,/var
等挂载到各个分区
但是随着LVM技术的推广,现在安装ubuntu如果采用默认的格式化整个磁盘的方式来安装,安装完成后发现磁盘空间没有占满,原本500多G的磁盘现在整个/
挂载只占用了200多G。造成这种后果很大一部分原因是原本有系统,重装系统导致。(不确定,至少我是这么经历的)
如下图所示:
df -h
lsblk
如上图所示,可以看到lsblk
看到的实际磁盘空间(物理)有446G多,但是却只有200G被挂载。
让我们再用
fdisk -l
查看分区,这个命令打印的比较多,包含了各种乱七八糟的分区,找到sda那块如下图:
我们发现原来分区没毛病,注意,sda1,2,3这是分区,相当于windows下c,d,e盘,而计算下发现图中sda1,2,3确实对应了真实的硬盘容量,也就是硬盘没有毛病,确实被ubuntu完全读了出来。
那么问题就可以缩小,确定是挂载少了。那么,挂载为什么少了?(注意,挂载是基于分区的,在分区上层)
原来这里没有直接挂载在物理分区上,而是把/
挂载在了逻辑分区LVM文件系统上,而这里显示的/dev/mapper/ubuntu--vg-ubuntu--lv
,这是一块逻辑分区文件(逻辑分区以文件形式存在)!它本身只有200G,那理所当然挂载在它之上的/
最多就是200G咯。
要扩展/
我们就扩展这个LVM文件,很简单,执行如下命令,让他占满磁盘剩余空间,乍干我们的磁盘!
sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
如果不想炸干:
sudo lvextend -L 50G /dev/mapper/ubuntu--vg-ubuntu--lv
上面这条扩充50G,当然这个扩充大小不能大于磁盘实际剩余大小。
如何查看LVM和实际磁盘大小区别,使用如下命令:
lvdisplay
显示如图:
这里看得到逻辑磁盘信息,看不到物理的,使用如下命令都可以看到:
vgdisplay
上面显示Free的246G,alloc的是200G!终于找到困惑的源头了,难怪我使用磁盘大小小于我的实际磁盘大小,原来是LVM捣的鬼。
最后,我们发现扩展之后输入上述命令还是显示200G alloc,原因是没有重新计算!还要输入如下命令进行重新计算:
resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
现在再输入vgdisplay
,容量充满,大功告成!
鸣谢: