云服务器-云计算-服务器-BGP多线服务器-BGP服务器-多线服务器-云虚拟主机-云主机-云服务-云电脑-域名注册-ssl证书-vps服务器-高防服务器-BGP高防服务器-大宽带服务器-雷盾云

logo

新闻公告

雷盾云实时新闻公告,资讯动态,产品信息,一站式公告化服务。
新闻中心: > Linux系统根分区到数据盘的完整扩容实战

Linux系统根分区到数据盘的完整扩容实战

发布时间:2025-12-06 19:42

一、前言:磁盘空间告急,如何安全扩展?

真实场景还原

"我的服务器突然报磁盘空间不足,网站无法上传图片,数据库停止写入,紧急!"

"云平台控制台已经扩容了磁盘,但系统里还是显示原来的大小,怎么办?"

这是运维工程师最常见的问题之一。本文将提供两种文件系统(ext4和xfs)、两种分区方案(LVM和非LVM) 的完整扩展方案。

二、核心概念:理解Linux磁盘与分区

磁盘与分区的基础关系

text
 
 
 
 
物理层:硬盘(/dev/sda、/dev/vda)→ 分区表(MBR/GPT)→ 分区(/dev/sda1、/dev/sda2)
逻辑层:物理卷(PV)→ 卷组(VG)→ 逻辑卷(LV)→ 文件系统(ext4/xfs)
挂载点:/(根分区)、/home、/data等

两种扩展场景分析

text
 
 
 
 
场景一:云服务器磁盘扩容(常见)
  1. 控制台扩容云硬盘(如从40G扩展到100G)
  2. 系统内部识别新容量
  3. 扩展分区或新建分区
  4. 扩展文件系统

场景二:添加新数据盘
  1. 挂载新硬盘到服务器
  2. 创建分区和文件系统
  3. 挂载到指定目录
  4. 配置自动挂载

三、准备工作:安全第一

必备检查清单

bash
 
 
 
 
# 1. 查看当前磁盘和分区信息
lsblk                         # 树状显示所有块设备
df -hT                        # 查看已挂载分区的使用情况
fdisk -l                      # 查看所有磁盘分区表
ls -l /dev/sd* /dev/vd*       # 查看所有磁盘设备

# 2. 备份关键数据(必须!)
# 系统配置文件
tar -czf /tmp/system-config-backup.tar.gz /etc/fstab /etc/default/grub

# 重要数据(假设数据在/data目录)
rsync -av /data/ /backup/data-$(date +%Y%m%d)/

# 3. 确认文件系统类型
blkid                         # 查看所有分区的文件系统类型

# 4. 检查是否有LVM
pvs && vgs && lvs             # 如果命令存在且输出信息,说明使用LVM

# 5. 卸载需要操作的分区(如果可能)
# 注意:根分区不能卸载,其他数据分区可以
umount /dev/sdb1              # 如果挂载为/data等

风险提示与应对

text
 
 
 
 
高风险操作(需格外小心):
1. 操作根分区(/)→ 必须准备系统救援模式或Live CD
2. 修改分区表(fdisk/parted)→ 错误可能损坏所有数据
3. 强制扩展文件系统 → 可能损坏文件系统

安全措施:
1. 生产环境先在测试环境演练
2. 确保有完整备份
3. 选择维护窗口进行操作
4. 准备好系统恢复盘

四、方案一:非LVM系统根分区扩展(ext4/xfs)

场景:云服务器根分区扩容(/dev/vda1 → /)

步骤1:云控制台扩容磁盘

text
 
 
 
 
以阿里云为例:
1. 进入ECS控制台
2. 停止实例(必须!)
3. 在磁盘管理中选择"扩容"
4. 设置新容量(如40G→100G)
5. 启动实例

步骤2:系统内查看扩容状态

bash
 
 
 
<button class="ds-atom-button ds-text-button ds-text-button--with-icon" style="cursor: pointer; font-style: inherit; font-variant: inherit; font-weight: 500; font-stretch: inherit; font-size: 13px; line-height: 20px; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-s