OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?

在 OCI 上创建测试主机时,明明给启动盘分配了 200G,但进入系统后执行 df -h,根目录却只有 30G 左右。这种情况并不是磁盘没有分配成功,而是分区和 LVM 还没有把剩余空间用起来。

01 | 先看 200G 到底在不在

笔者环境中,df -h 看到的是文件系统大小:

bash 复制代码
/dev/mapper/ocivolume-root 30G 8.7G 21G 30% /
/dev/mapper/ocivolume-oled 15G 140M 15G 1% /var/oled

这会让人误以为系统盘只有几十 G。

lsblk 里已经能看到整块磁盘是 200G:

bash 复制代码
sda 8:0 0 200G 0 disk

也就是说,OCI 已经把 200G 的启动盘分配给这台虚拟机了。问题不在云盘容量,而在系统内部的分区和 LVM 还没有扩展。

02 | 为什么根目录只有 30G?

继续看 lsblk

bash 复制代码
sda
├─sda1 100M /boot/efi
├─sda2 2G /boot
└─sda3 44.5G
 ├─ocivolume-root 29.5G /
 └─ocivolume-oled 15G /var/oled

这里的关键点是:虽然物理盘 sda 是 200G,但真正加入 LVM 的分区 sda3 只有 44.5G。

vgspvs 也能看到同样的信息:

bash 复制代码
VG VSize VFree
ocivolume 44.50g 0
bash 复制代码
PV VG PSize PFree
/dev/sda3 ocivolume 44.50g 0

也就是说,当前 LVM 卷组只有 44.5G,里面又被切成了两个逻辑卷:29.5G 给 /,15G 给 /var/oled

剩下大约 153G 仍然躺在 sda 这块 200G 磁盘里,但还没有分配给 sda3,也没有进入 LVM 卷组,所以 df -h 看不到。

03 | 把剩余空间扩到根目录

处理思路分四步:先扩分区,再扩 LVM 物理卷,然后扩逻辑卷,最后扩文件系统。

① 扩大 sda3 分区

让第三个分区 sda3 使用后面的剩余空间:

bash 复制代码
sudo growpart /dev/sda 3

② 刷新 LVM 物理卷

分区变大后,让 LVM 识别新的空间:

bash 复制代码
sudo pvresize /dev/sda3

③ 扩大 root 逻辑卷

把卷组中的空闲空间全部分配给根目录对应的逻辑卷:

bash 复制代码
sudo lvextend -l +100%FREE /dev/ocivolume/root

④ 扩大文件系统

笔者环境中的根目录使用 XFS 文件系统,因此使用:

bash 复制代码
sudo xfs_growfs /

执行完成后,再检查根目录大小:

bash 复制代码
df -h /

此时 /dev/mapper/ocivolume-root 的容量会从 30G 左右扩展到 180G+。这时,原本没有被使用的剩余空间才真正变成根目录可用空间。

关注我,和AI一起成长~

相关推荐
Nebula嵌入式19 小时前
【C语言】09-深入解析main函数
linux·c语言·开发语言·嵌入式
Dxy123931021620 小时前
Linux 编译安装 Python 3.12.10(多版本共存,不破坏系统Python)
linux·运维·python
xz驱动分享21 小时前
Linux DMA 子系统学习笔记
linux·dma·rk3588·嵌入式软件
w67820071 天前
Prisma不能优雅的支持DTO,试试Vona ORM吧
linux·运维·ubuntu
Darkwanderor1 天前
Linux系统编程实战项目:模拟实现shell
linux·c++
杨某不才1 天前
如何能让Linux服务器对shell 终端 + sftp 文件传输长期保活
linux·运维·服务器
vance041 天前
免费Cloudflare隧道隐藏公网IP
linux·tcp/ip·github
杨云龙UP1 天前
生产环境Oracle表空间扩容实战:使用Toad for Oracle图形界面新增Datafile(ASM+OMF)
linux·运维·数据库·oracle·表空间·asm 存储管理·toad
三言老师1 天前
文本工具组合统计服务器日志数据
linux·运维·服务器
mounter6251 天前
认识 Tetragon:基于 eBPF 的安全监控与强制执行工具
linux·ebpf·cve·kernel