当前位置: 首页 > web >正文

Rocky Linux 9.2:从 /home 分区释放 10G 空间扩容到 / 根分区

在日常运维中,常见的问题之一就是安装的软件过多,导致根分区(/)空间不足,而其他分区(例如 /home)却有大量闲置空间。本文将演示如何在 Rocky Linux 9.2 上,通过 LVM(Logical Volume Manager) 技术,把 /home 分区的部分空间释放出来,再扩容到 / 根分区。

1. 环境说明

通过 df -h 查看当前磁盘空间:

# df -h
Filesystem             Size  Used Avail Use% Mounted on
/dev/mapper/rl-root     70G   26G   45G  37% /
/dev/mapper/rl-home     45G  1.8G   43G   4% /home
/dev/sda2             1014M  246M  769M  25% /boot
/dev/sda1              599M  7.0M  592M   2% /boot/efi

可以看到:

  • / 根分区:70G(未来可能不足)

  • /home:45G,其中使用仅 1.8G,有大量富余空间

目标:/home 分区释放 10G,扩容给 / 根分区

2. 核心思路

  1. 备份 /home 数据(安全起见)。

  2. 缩小 /home 的逻辑卷大小(减少 10G)。

  3. 把释放出来的空间重新分配给 / 的逻辑卷。

  4. 在线扩容 / 文件系统。

由于系统采用的是 LVM 管理,所以可以动态调整分区大小,操作较为灵活。

3. 操作步骤

3.1 备份 /home 数据

虽然缩容是安全操作,但存在风险,建议提前备份:

rsync -avx /home/ /root/backup_home/

3.2 卸载 /home

缩小分区之前需要卸载挂载点:

umount /home

如果提示 “busy”,可以强制卸载:

umount -l /home

3.3 检查文件系统并缩小 /home

先运行文件系统一致性检查(XFS 不支持缩容,通常 Rocky Linux 的 /home 用的是 XFS 文件系统,所以必须先删除再重建,这里假设你的 /homeXFS):

lvremove /dev/rl/home

⚠️ 注意:此操作会删除 /home 分区,之前的备份就派上用场了。

3.4 释放空间并扩容 /

确认 rl 卷组有空闲空间:

vgdisplay rl | grep "Free"

将空闲空间(含刚释放的 45G)中的10G加给 / 根分区:

lvextend -L +10G /dev/rl/root

如果你想把 所有空闲空间都给根分区

lvextend -l +100%FREE /dev/rl/root

扩展文件系统(XFS):

xfs_growfs /

3.5 重新创建 /home

/home 分配一个较小的逻辑卷,比如 35G:

lvcreate -L 35G -n home rl
mkfs.xfs /dev/rl/home
mount /dev/rl/home /home

3.6 恢复数据

将之前备份的数据恢复到新的 /home

rsync -avx /root/backup_home/ /home/

4. 验证

再次df -h查看分区情况:

期望结果:

/dev/mapper/rl-root   80G   26G   54G  33% /
/dev/mapper/rl-home   35G  1.8G   33G   6% /home

可以看到 / 根分区增加了 10G,而 /home 减少了 10G。


5. 注意事项

  1. 文件系统类型很关键

    • XFS 不支持在线缩容,只能删除 LV 再重建。

    • EXT4 可以用 resize2fs 在线缩小。

  2. 务必做好备份

    • 特别是缩容和删除 LV 前,必须备份 /home 数据。

  3. 分配策略

    • 如果 /home 空间基本闲置,可以考虑只留 10~20G,剩余全部分配给 /

6. 总结

通过 LVM 的动态分区管理,我们可以很方便地调整 Rocky Linux 的磁盘空间分配。本文展示了如何 /home 分区释放 10G 空间并扩容 / 根分区 的完整流程:

  • 备份数据

  • 删除 /home LV

  • 扩容 /

  • 重建 /home

这种方式不仅解决了根分区不足的问题,也充分利用了磁盘资源。

http://www.xdnf.cn/news/18074.html

相关文章:

  • 二进制为什么使用记事本读取会出乱码
  • eChart饼环pie中间显示总数_2个以上0值不挤掉
  • 0815 UDP通信协议TCP并发服务器
  • Mac (三)如何设置环境变量
  • 深入理解 Python 元类中的 __prepare__ 方法:掌控类属性定义顺序的艺术
  • docker镜像解决的一些问题
  • 双重调度(Double Dispatch):《More Effective C++》条款31
  • [Linux] Linux网络管理
  • 16-集合的Stream编程
  • 宋红康 JVM 笔记 Day03|内存结构概述、类加载器与类的加载过程、类加载器分类
  • 深入解析 @nestjs/typeorm的 forRoot 与 forFeature
  • C++面试题及详细答案100道( 31-40 )
  • 算法题Day2
  • Python 类元编程(元类的特殊方法 __prepare__)
  • MixOne:Electron Remote模块的现代化继任者
  • 【低成本扩容】动态扩容实战指南
  • 选择式与生成式超启发算法总结
  • 《设计模式》代理模式
  • 基于Python的电影评论数据分析系统 Python+Django+Vue.js
  • 【运维心得】三步10分钟拆装笔记本键盘
  • Langfuse2.60.3:独立数据库+docker部署及环境变量详细说明
  • 数据清洗处理
  • 【数据结构】深入理解单链表与通讯录项目实现
  • 【洛谷刷题】用C语言和C++做一些入门题,练习洛谷IDE模式:分支机构(一)
  • 典型 RAG实现:NFRA智能问答系统实战的总结与反思
  • 数据结构:迭代方法(Iteration)实现树的遍历
  • ubuntu更新chrome版本
  • 平滑方法(smoothing)
  • 零知开源——基于STM32F407VET6的TCS230颜色识别器设计与实现
  • 两个简单的设计模式的例子