Ubuntu磁盘空间不足或配置错误时,如何操作扩容?

我们前面介绍过CentOS系统如何调整磁盘分区**(** CentOS调整磁盘分区和扩容,但是我最近安装Ubuntu系统,貌似又遇到了分区的问题。

上次安装Ubuntu Server版系统时**(** 没有图形界面,如何快速部署一个Ubuntu 24.10的Server虚拟机,在分区这一步,没仔细看,最下面有一个分区,划分的大小是77.997 GB,而上面/根目录只分配了38.996 GB,在AVALIABLE DEVICES设备部分,有个剩余空间free space,里面还有39 GB没有分配。

所以,安装完成之后就成了以下效果。

也就是说,/dev/sda3这个分区我们只用了一半。知道问题了就能解决,参考之前CentOS的配置,我们只需要扩展现有逻辑卷/dev/mapper/ubuntu--vg-ubuntu---lv就可以了。

首先,检查当前的物理卷、卷组和逻辑卷的状态。

properties 复制代码
vgdisplay ubuntu-vg
lvdisplay /dev/ubuntu-vg/ubuntu-lv

可以看到,逻辑卷LV(Logical Volume) ubuntu-lv的路径为/dev/ubuntu-vg/ubuntu-lv,对应**卷组 (Volume Group)**ubuntu-vg下面确实还有39 GB的可用磁盘空间。

这样,我们就可以使用lvextend命令来扩展逻辑卷,我们可以使用如下命令直接将所有剩余的空间都分配给现有的逻辑卷。

nginx 复制代码
lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv

LV逻辑卷扩展完成后,还需要调整文件系统的大小以匹配新的逻辑卷大小。

对于ext4文件系统,我们可以使用resize2fs命令自动将文件系统扩展到逻辑卷的最大容量。

nginx 复制代码
resize2fs /dev/ubuntu-vg/ubuntu-lv

到此,磁盘分配的遗留问题就解决完了。

对应地,我们还有两种扩容操作,本次也一并验证一下。

第一种,我们在虚拟机中扩展了磁盘空间,将磁盘大小从80 GB调整到100 GB。

此时,我们在系统中查看磁盘信息,可以看到虚拟机硬盘已经成功扩容到100 GB,但/dev/sda3分区的大小仍然为原来的78 GB,顶部还有GPT PMBR大小不匹配的警告。

接下来,我们首先需要通过gdisk工具更新GPT分区表为新的磁盘大小。配置方式有两种,第一种是进入gdisk后,先输入x命令进入专家模式,再输入e命令来重新计算GPT分区表中的最大可用扇区数,按Y写入新的分区表;第二种是进入gdisk后,先输入x命令进入专家模式,再输入n将重新同步PMBR,最后输入w写入更改并退出gdisk。

nginx 复制代码
gdisk /dev/sda

接下来,我们还是使用gdisk来调整/dev/sda3的分区。先输入d删除/dev/sda3分区,再输入n创建一个新的分区,选择默认的第一个扇区和最后一个扇区,以使用最大的分区大小;然后输入t更改新分区的类型代码8300,最后输入w写入更改并退出 gdisk。

接下来,我们先使用partprobe强制重新读取分区表以识别新的分区大小,再使用pvresize命令来扩展/dev/sda3,然后使用lvextend命令直接将所有剩余的空间都分配给现有的逻辑卷,并使用resize2fs命令自动将文件系统扩展到逻辑卷的最大容量。

properties 复制代码
partprobe /dev/sda
pvresize /dev/sda3
pvscan
lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
resize2fs /dev/ubuntu-vg/ubuntu-lv
lvdisplay /dev/ubuntu-vg/ubuntu-lv

到这里,我们的磁盘就变成97 GB了。

最后,我们看一下第二种情况,我们给虚拟机再挂载一块20GB的磁盘。

进入系统,检查一下新硬盘的识别情况。

可以看到,新磁盘已经作为/dev/sdb被识别到了。我们首先使用pvcreate命令初始化新磁盘/dev/sdb为物理卷。

nginx 复制代码
pvcreate /dev/sdb

然后使用vgextend命令将新物理卷添加到逻辑卷组ubuntu-vg中。

nginx 复制代码
vgextend ubuntu-vg /dev/sdb

然后又是重复使用lvextend命令直接将所有剩余的空间都分配给现有的逻辑卷,并使用resize2fs命令自动将文件系统扩展到逻辑卷的最大容量。

properties 复制代码
lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
resize2fs /dev/ubuntu-vg/ubuntu-lv
lvdisplay /dev/ubuntu-vg/ubuntu-lv

搞定了,叉会儿腰!

***推荐阅读***

【送书福利】中国移动无线智算网络领域最新图书《通算一体:使能泛在AI》

Ubuntu安装、配置、操作、测评MySQL数据库全体验

当你买了一台Linux云主机,应该如何测试主机性能?

没有图形界面,如何快速部署一个Ubuntu 24.10的Server虚拟机

拿捏!Ubuntu和FortiGate对接GENEVE是如此简单

用Ubuntu的时候,你是不是被127.0.0.53困扰好久了?来看看怎么修改DNS配置

Ubuntu使用Tesla P4配置Anaconda+CUDA+PyTorch

Ubuntu配置PPTP服务端和客户端

在Ubuntu系统手撸一个自动搭建openVPN服务端的SHELL脚本

Ubuntu一键导入openVPN配置文件

用轻量应用服务器的注意了,0.5GB内存的规格请谨慎使用

使用ddns-go实现自动配置IPv6的DDNS

成本增加了100块,内网服务器上公网解决方案2.0重磅来袭!

相关推荐
天上飞的粉红小猪8 分钟前
linux的文件系统
linux·运维·服务器·1024程序员节
珊瑚礁的猪猪侠36 分钟前
正则表达式入门到精通教程(Linux实操版)
linux·人工智能·正则表达式
czhc11400756631 小时前
JAVA1026 方法;类:抽象类、抽象类继承;接口、接口继承 Linux:Mysql
java·linux·mysql
m0_748240251 小时前
基于Reactor模式的高性能C++仿Muduo库:Server服务器模块实现
服务器·c++·php
王同学_1162 小时前
Linux系统端口关闭并排查相关自启动项(麒麟环境)
linux·运维·服务器
大聪明-PLUS2 小时前
Linux 中的 DNS 工作原理(二):各级 DNS 缓存
linux·嵌入式·arm·smarc
Xiaoweidumpb2 小时前
Linux Docker docker-compose 部署python脚本
linux·python·docker
q9085447032 小时前
Prometheus+Grafana 智能监控告警系统(服务器指标采集、mysql指标采集)
服务器·grafana·prometheus
郝学胜-神的一滴2 小时前
使用 Python 元类与属性实现惰性加载:Effective Python 第47条
linux·服务器·开发语言·python
袁煦丞 cpolar内网穿透实验室2 小时前
安卓旧机变服务器,KSWEB部署Typecho博客并实现远程访问:cpolar内网穿透实验室第645个成功挑战
android·运维·服务器·远程工作·内网穿透·cpolar