linux 如何扩展分区

Linux 中扩展分区可借助 LVM(逻辑卷管理)实现动态扩容;若为普通分区,需用 fdisk/parted 调整分区表,再通过 resize2fs 同步文件系统,操作前务必备份

Linux 系统中扩展分区是一项关键运维任务,尤其当存储容量接近上限时,合理规划与执行可显著提升系统稳定性,以下从前期准备、核心步骤、多场景方案、风险控制及常见错误排查五个维度展开详细说明,并提供实用示例与对比表格。

linux 如何扩展分区


前置条件核查清单

检查项 目的 执行命令/方法 预期结果
物理磁盘剩余空间 确认具备可分配的自由空间 lsblk + sudo fdisk -l 显示未分配区域(Free Space)
文件系统类型 判断是否支持动态扩容 blkid /dev/sdXn ext4/xfs/btrfs等
分区用途 区分根分区/家目录/数据分区 mount | grep [分区路径] 明确目标分区的业务属性
快照/备份状态 防止数据丢失 rsync 全量备份 完成二次校验
LVM 环境检测 识别逻辑卷组归属关系 pvdisplay vgscan 确认是否为 LVM 成员

⚠️ 重要提示:若目标分区为根分区(),建议通过 LiveCD/USB 启动后操作,避免因系统运行时修改分区导致崩溃。


基础场景:非 LVM 物理分区扩展(以 ext4 为例)

创建新分区并挂载测试

# 查看磁盘布局
lsblk
# 使用 fdisk 新建分区(假设 /dev/sda3 需扩展,后方有未分配空间)
sudo fdisk /dev/sda
# 内部操作:输入 d 删除原分区 → n 新建同起始扇区的新分区 → w 写入分区表
# 格式化新分区(保持文件系统一致)
sudo mkfs.ext4 /dev/sda3
# 临时挂载验证
sudo mount /dev/sda3 /mnt/test
df -Th /mnt/test  # 确认容量已更新

正式迁移数据与更新引导

# 停止相关服务(如数据库、Web服务器)
systemctl stop mysql mariadb apache2
# 同步原始分区数据到新分区(生产环境建议增量同步+校验)
rsync -avHAX --progress /old/partition/ /new/partition/
# 修改 /etc/fstab 确保开机挂载正确性
grep 'UUID=' /etc/fstab  # 替换旧 UUID 为新分区的 UUID
# 重启系统并验证
reboot
mount | grep 'on /dev/sda3'  # 检查挂载状态

高级场景:LVM 逻辑卷在线扩容

操作阶段 命令示例 说明
查看卷组信息 vgs 确认可用 PE(Physical Extent)数量
扩展逻辑卷 lvextend -L+5G /dev/mapper/vg0-lv 按需增加容量(支持百分比:-L+10%FREE
文件系统扩容 resize2fs /dev/mapper/vg0-lv 自动同步超级块与实际容量
监控扩容进度 watch "lvdisplay" 实时观察 Logical Volume Size 变化

优势对比:LVM 方案无需停机即可完成扩容,且支持跨物理磁盘动态调配空间,适合高可用场景。

linux 如何扩展分区


特殊文件系统处理要点

文件系统 扩容工具 注意事项
ext4 resize2fs 仅能扩大不能缩小,需提前备份
XFS xfs_growfs 支持离线/在线扩容,推荐用于大数据
btrfs btrfs filesystem grow 可添加新设备实现横向扩展
ZFS zpool online expand 需先创建镜像/RAIDZ 冗余结构

风险控制与故障排查

典型错误及解决方案

错误现象 可能原因 解决方法
resize2fs: Device or resource busy 分区仍被进程占用 卸载分区或切换至维护模式
No free space found 物理磁盘无连续空闲块 使用 parted 重新排列分区顺序
GUID 冲突导致启动失败 新分区生成重复标识符 手动指定唯一 UUID:tune2fs /dev/sda3 -U <新UUID>

应急回退方案

# 若扩容后无法启动,进入救援模式
cd /mnt/sysimage/chroot
# 恢复旧分区表备份(需提前制作)
sfdisk --no-reread /dev/sda < backup.sfdisk
# 重建 initramfs 并退出重启
dracut -f
exit

最佳实践归纳

  1. 优先级排序:优先扩展经常写入日志的分区(如 /var/log),其次考虑数据库数据目录。
  2. 性能优化:对于高频读写的分区,建议搭配 SSD 并启用 noatime 挂载选项。
  3. 监控机制:设置 df -h 定时任务,当使用率超过 85% 时触发告警。
  4. 文档记录:修改前后均需拍照记录 lsblkblkid 输出,便于追溯。

FAQs

Q1: 能否在不重启的情况下扩展正在使用的 ext4 分区?
A: 可以,但需满足两个条件:① 分区位于 LVM 卷组内;② 使用 lvextend + resize2fs 组合命令,直接操作物理分区会导致 I/O 错误,必须卸载后操作。

Q2: 为什么执行 resize2fs 后实际可用空间未增加?
A: 常见原因是未正确更新分区表,请检查 fdisk -l 显示的结束扇区是否已扩展,若未生效,需重新执行 fdisk 调整分区边界并写入分区表

linux 如何扩展分区

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/105655.html

(0)
酷盾叔的头像酷盾叔
上一篇 2025年8月16日 21:01
下一篇 2025年8月16日 21:07

相关推荐

  • linux如何退出vie32

    Linux中退出vi编辑器,可先按ESC键回到命令模式,再输入:q(不保存)、:q!(强制不保存)、:wq(保存)或ZZ(保存并退出)

    2025年8月3日
    000
  • linux如何安装sqlplus

    Linux安装sqlplus需先更新包索引,通过命令行安装wget,从官网下载对应版本的Oracle Instant Client基础包及SQLPlus包,解压至同一目录,配置环境变量并刷新,最后可通过创建软链接实现快速调用,确保路径正确即可运行sqlplus工具

    2025年7月19日
    200
  • linux体验如何使用技巧

    nux体验使用技巧包括熟悉常用命令如ls、cd等,善用快捷键如Ctrl + C复制、Ctrl + V粘贴,掌握sudo提权及后台运行命令方法。

    2025年7月21日
    300
  • 服务器安装Linux系统步骤指南

    准备安装介质(U盘或ISO镜像),通过服务器管理控制台(如iDRAC/iLO)加载镜像启动,按安装向导操作:选择语言、键盘布局、分区磁盘(常需配置RAID/LVM)、设置网络、创建用户及密码,最后安装引导程序并重启完成部署。

    2025年5月30日
    400
  • Linux怎么查看日志大小

    使用du -sh /var/log/查看日志目录总大小,ls -lh /var/log/*.log查看单个日志文件大小,常用路径为/var/log/。

    2025年6月30日
    200

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN