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

扩展根分区

当前情况分析

根据之前提供的 vgdisplay 输出:

  • 卷组 cl 的总大小为 ~1.82TB。
  • 已分配了几乎所有的空间(仅剩 1 个 PE,即 4MB)。

因此,在缩小 /home 分区并释放空间之前,无法直接扩展根分区。

解决方案

我们需要先执行以下步骤:

  1. 备份 /home 数据 并确保数据安全。
  2. 缩小 /home 逻辑卷 并释放空间回到卷组中。
  3. 使用释放的空间扩展根分区

以下是更新后的脚本,它将完成这些步骤,并确保有足够的空间进行扩展。

#!/bin/bash# 设置变量
HOME_BACKUP_DIR="/backup/home_backup"
BACKUP_FILE="${HOME_BACKUP_DIR}/home_backup.tar.gz"
ROOT_TARGET_SIZE="+450G" # 增加到目标大小 (当前大小基础上增加)
HOME_NEW_SIZE="1T"       # 新的 home 分区大小
VG_NAME="cl"             # 卷组名称
LV_HOME_NAME="home"      # home 逻辑卷名称
LV_ROOT_NAME="root"      # root 逻辑卷名称
LV_HOME_PATH="/dev/mapper/${VG_NAME}-${LV_HOME_NAME}"
LV_ROOT_PATH="/dev/mapper/${VG_NAME}-${LV_ROOT_NAME}"echo "开始执行自动化脚本..."# 创建备份目录
mkdir -p $HOME_BACKUP_DIR || { echo "创建备份目录失败"; exit 1; }# 备份 /home 数据
echo "正在备份 /home 数据..."
tar czf $BACKUP_FILE -C / home || { echo "备份 /home 数据失败"; exit 1; }
echo "/home 数据备份完成"# 检查 /home 是否挂载
if mountpoint -q /home; thenecho "/home 已挂载,正在卸载..."umount /home || { echo "卸载 /home 失败"; exit 1; }
elseecho "/home 当前未挂载,跳过卸载步骤。"
fi# 检查文件系统一致性
echo "检查 XFS 文件系统的一致性..."
xfs_repair -n $LV_HOME_PATH || { echo "检查 XFS 文件系统失败"; exit 1; }
echo "XFS 文件系统检查完成"# 缩小 XFS 文件系统至新大小
echo "缩小 XFS 文件系统至 ${HOME_NEW_SIZE}..."
# 注意:XFS 不支持直接缩小,所以需要删除并重新创建逻辑卷
lvremove $LV_HOME_PATH -y || { echo "删除旧的 cl-home 逻辑卷失败"; exit 1; }
echo "旧的 cl-home 逻辑卷已删除"# 创建新的 cl-home 逻辑卷
echo "创建新的 cl-home 逻辑卷..."
lvcreate -L ${HOME_NEW_SIZE} -n ${LV_HOME_NAME} ${VG_NAME} || { echo "创建新的 cl-home 逻辑卷失败"; exit 1; }
echo "新的 cl-home 逻辑卷已创建"# 格式化新的 cl-home 逻辑卷为 XFS 文件系统
echo "格式化新的 cl-home 逻辑卷为 XFS 文件系统..."
mkfs.xfs $LV_HOME_PATH || { echo "格式化新的 cl-home 逻辑卷失败"; exit 1; }
echo "新的 cl-home 逻辑卷已格式化"# 挂载新的 cl-home 逻辑卷
echo "挂载新的 cl-home 逻辑卷..."
mount $LV_HOME_PATH /home || { echo "挂载新的 cl-home 逻辑卷失败"; exit 1; }
echo "新的 cl-home 逻辑卷已挂载"# 恢复 /home 数据
echo "正在恢复 /home 数据..."
tar xzf $BACKUP_FILE -C / || { echo "恢复 /home 数据失败"; exit 1; }
echo "/home 数据恢复完成"# 扩展根分区
echo "扩展根分区 (/)..."
lvextend -L ${ROOT_TARGET_SIZE} $LV_ROOT_PATH || { echo "扩展根分区失败"; exit 1; }
xfs_growfs / || { echo "扩展根分区文件系统失败"; exit 1; }
echo "根分区 (/) 已扩展"# 清理
rm -rf $HOME_BACKUP_DIR || { echo "清理备份文件失败"; exit 1; }echo "✅ 自动化脚本执行完成!"

关键点说明

  1. 备份和恢复数据:首先备份 /home 数据到一个临时目录,然后在调整完逻辑卷后恢复数据。
  2. 处理 XFS 文件系统:由于 XFS 不支持直接缩小,我们通过删除旧的逻辑卷并创建一个新的较小的逻辑卷来实现。
  3. 确保有足够的空间:通过缩小 /home 来释放空间,使得可以扩展根分区。

使用方法

  1. 将上述脚本保存为 resize_lvm_v2.sh
  2. 给予脚本执行权限:
    chmod +x resize_lvm_v2.sh
    
  3. 以 root 用户身份运行脚本:
    sudo ./resize_lvm_v2.sh
    

请确保在运行此脚本之前已经做好了充分的数据备份工作,以防意外发生。如果还有其他问题或需要进一步的帮助,请告诉我!

相关文章:

  • Word中批量修改MathType公式
  • 完美解决react-native文件直传阿里云oss问题一
  • 港口危货储存单位主要安全管理人员考试精选题目
  • K8S - HPA + 探针实战 - 实现弹性扩缩与自愈
  • springboot框架常用配置
  • Microsoft Entra ID 详解:现代身份与访问管理的核心
  • 《PyTorch documentation》(PyTorch 文档)
  • 学习记录:DAY21
  • 深度解析:Vue.js 性能优化全景指南(从原理到实践)
  • 破局 AI 焦虑:企业如何抢占智能时代的制高点
  • DC-DC常见应用问题解疑
  • 2025年CC攻击防御全攻略:应对复杂化攻击的实战策略
  • DeepSeek基础-使用python请求deepseek
  • 2025华东杯A/B/C题解题思路+可运行代码参考
  • 从 “可办“ 到 “好办“:云蝠大模型如何重塑政务服务体验
  • ubuntu下一些环境配置
  • 插入到word里面的用origin画的图,怎么获取图片细节?
  • 【Spring AI】Java结合ollama实现大模型调用
  • 大数据治理自动化与智能化实践指南:架构、工具与实战方案(含代码)
  • 一种动态分配内存错误的解决办法
  • 关于新冠疫情防控与病毒溯源的中方行动和立场
  • 软硬件企业集中发布未成年人模式使用手册
  • 海量数据处于“原矿”状态,数据价值释放如何破局?
  • 新开发银行如何开启第二个“金色十年”?
  • 东风着陆场近日气象条件满足神舟十九号安全返回要求
  • 上海开花区域结果,这项田径大赛为文旅商体展联动提供新样本