使用ubuntu桌面版的时候,遇到了Linux硬盘大小问题,在这里记录一下修复方案。
我的磁盘空间分配了 150G,文件系统实际可用的空间为 120G,但只有约 59G 可用。
我的磁盘结构如下:
总磁盘 /dev/sda:120G
-
/dev/sda1:1M(通常是 BIOS boot 分区) -
/dev/sda2:2G(/boot分区) -
/dev/sda3:118G 物理卷(PV) ,属于 LVM,需要在此空间进行扩展
这里着重说一下/dev/sda3
系统此时在这个 PV 上创建了一个 卷组(VG) :ubuntu-vg
卷组中有一个 逻辑卷(LV) :ubuntu-lv,大小 仅 59G
该 LV 挂载为根目录 /
此卷有大约 118G 的 LVM 物理空间,但只分配了 59G 给实际使用的逻辑卷,剩下 59G 未分配!
分配了 150G,但系统只看到 120G,因为我在虚拟机设置初始化之后后期进行了调整,此处暂时忽略。
我们需要解决的是 LVM 未用满可用空间,所以需要进行扩容。
Ubuntu支持在线扩展 ext4/XFS 文件系统,无需重启计算机,使用此方案扩展硬盘大小整个过程不会丢失数据,是安全的在线扩容操作。
1:确认卷组(VG)中有空闲空间
运行bash命令:
sudo vgs
会看到类似:
VG #PV #LV #SN Attr VSize VFree
ubuntu-vg 1 1 0 wz--n- 118.00g 59.00g
注意,此处的 VFree 就是未分配的空间。
2:扩展逻辑卷(LV)使用所有剩余空间
我们现在需要扩展 LV 到使用卷组中所有空闲空间
sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
-l +100%FREE 表示使用 VG 中所有未分配的物理 extents。
3:扩展文件系统以使用新空间
先确认文件系统类型:
df -T /
不同的Linux发行版文件系统类型不完全相同,我这里使用的是 Ubuntu。
Ubuntu 默认的文件系统是是 ext4,如果你更改了文件系统类型为 xfs ,也有对应的解决方案
如果是 ext4:
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
如果是 xfs:
sudo xfs_growfs /
需要注意的是,不同于ext4,XFS 文件系统只能扩容不能缩容,且 xfs_growfs 需要挂载点路径(如 /),而不是设备路径。
4:验证结果
df -h /
如果不出意外,即可看到根分区接近 118G 可用空间,忽略元数据空间开销,接近120G,代表空间已经完全使用。
精确扩展空间
想分配更精确的空间,而不是全部挂载使用,可以使用下列命令
比如只扩到 100G 而不是全部,可以用:
sudo lvextend -L +30G /dev/ubuntu-vg/ubuntu-lv # 增加 30G
或使用下列命令
sudo lvextend -L 100G /dev/ubuntu-vg/ubuntu-lv # 总共 100G
执行完成后,执行最终确认
resize2fs
