Linux 空间不足?根分区扩容

引言

在使用 Linux 或者 Unix-like 时候,经常会遇到空间不足,蹦出来个提示 No space left on device. 这时便要进行系统的硬盘扩容,但多数是添加一块硬盘,映射到系统的目录内。这样做会有些不好,因为一般都是在 ~ 下工作,如果要切换到指定磁盘目录,那会过于麻烦,所以要在系统的根分区进行磁盘的扩容。

环境配置

MacOs 下使用 Vmware 搭建的 Ubuntu20.04 Server,在第一次配置中,没有考虑到实际场景,分配了仅 20 GB 的空间,但在实际开发使用中愈发不足。

操作步骤

更改硬盘容量

更改虚拟机硬盘大小

开机虚拟机,输入命令 fdisk -l

注意需在 root 用户下

image-20220331211255815

查看当前可用空间大小vgdisplay

Free PE / Size 为零,暂时没有可扩展的硬盘

image-20220331211502935

新建数据卷

fdisk /dev/sda

注:之前已生成分区 /dev/sda4,按照自己所生成的填写

添加分区,输入 n

image-20220331211723450

如果需要查看帮助,输入 m

选择分区号,回车默认

image-20220331211813345

接下里一直回车,直到出现 Command (m for help)

输入 p,查看分区情况

image-20220331211937257

输入 w,保存当前更改;输入 q 退出,不保存

pvcreate /dev/sda4

image-20220331212256588

输入命令:vgextend /dev/ubuntu-vg /dev/sda4

1root@yother:~# vgextend /dev/ubuntu-vg  /dev/sda4
2  Volume group "ubuntu-vg" successfully extended

Free PE / Size 表示为空闲的容量

image-20220331212348791

执行 df -l 找到当前根目录分区

image-20220331212525987

分区扩容

 1# 增加10G
 2lvextend -L +10G /dev/mapper/ubuntu--vg-ubuntu--lv 
 3
 4# 增加到100G
 5lvextend -L 100G /dev/mapper/ubuntu--vg-ubuntu--lv 
 6
 7# 减少10G
 8lvreduce -L -10G /dev/mapper/ubuntu--vg-ubuntu--lv 
 9
10# 减少到100G
11lvreduce -L 100G /dev/mapper/ubuntu--vg-ubuntu--lv 

刷新调整分配

resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

查看调整后容量详情

再次执行 df -l

调整后的根分区大小

总结

在 Linux 上,对容量的调整总是一件繁琐的事情,但在自己实际操作后,按照常规流程下来也并没有那么的困难,动起小手。所谓生命不息,折腾不止。