磁盘无损扩容分区扩容站点存储教程
为什么需要磁盘无损扩容
当站点存储空间不足时,直接重新分区会丢失数据,而磁盘无损扩容允许你在不停止服务、不丢失文件的前提下,把剩余空闲空间分配给已有分区。
本文针对Linux系统(以Ubuntu 20.04/CentOS 7为例),也覆盖宝塔面板用户的操作路径。
第一步:确认磁盘情况并做好备份
在动手前,先检查当前的磁盘分区和文件系统状态。
登录服务器,执行:
lsblk
查看磁盘分区大小和挂载点,重点关注你想扩容的分区(比如 /dev/vda1)。
接着用 df -h 确认文件系统使用率。
必须做的备份:
- 如果服务器是云主机,先创建系统盘快照(控制台操作,最保险)。
- 或者将关键网站数据、数据库导出备份到异地。
第二步:扩展磁盘空间(两种常见场景)
场景A:云主机控制台先扩盘
大多数云厂商(阿里云、腾讯云、华为云等)允许先在控制台调整磁盘容量。
操作路径:云服务器管理 → 磁盘 → 更多 → 扩容。
选择新的容量(如从20GB扩到40GB),确认后进入服务器内部操作。
扩盘后,执行以下命令使系统识别新空间:
echo 1 > /sys/class/block/vda/device/rescan # vda换成你的磁盘名
场景B:直接扩分区和文件系统
假设你的分区是 /dev/vda1,文件系统是 ext4,用以下命令:
# 安装工具(如果未安装)
yum install -y cloud-utils-growpart # CentOS
apt install -y cloud-guest-utils # Ubuntu
# 调整分区表
growpart /dev/vda 1
# 扩展文件系统
resize2fs /dev/vda1
执行完 df -h 就能看到分区大小已经更新。
宝塔面板用户操作
宝塔的后台在“软件商店”→“系统工具”中安装“磁盘扩容”工具(部分版本集成)。
也可以直接SSH执行上面的命令。
宝塔面板本身不会自动扩文件系统,必须手动执行 resize2fs 或 xfs_growfs(如果文件系统是XFS)。
第三步:常见避坑与验证方法
避坑指南
- 分区表类型:如果磁盘使用GPT分区表且未对齐,
growpart可能会报错。先用fdisk -l /dev/vda查看分区表类型,必要时使用parted工具。 - 文件系统类型:XFS文件系统用
xfs_growfs /mountpoint代替resize2fs。 - 挂载点权限:扩容后如果网站打不开,检查
/etc/fstab是否正确,并重启服务。 - 磁盘名称:注意
vda、xvda、sda的区别,以实际lsblk输出为准。
效果验证
df -h
确认对应分区的 Used和Avail 比例。
再访问网站,上传一个文件测试。
同时检查数据库写入正常。
高频问题解答
Q:扩容后空间没变化怎么办?
A:很大可能是没执行 resize2fs。先确认分区已经扩展(lsblk),再运行扩容命令。
Q:网站数据会丢失吗?
A:只要不误操作删除文件,正常扩分区不丢数据。但强烈建议先快照。
Q:宝塔面板有图形化扩盘功能吗?
A:部分版本可在“面板设置”→“磁盘管理”中扩展,但底层仍调用命令行,建议直接SSH操作更可控。
总结
磁盘无损扩容主要集中在两步:控制台扩盘 + 系统内扩分区和文件系统。
新手最容易忘了执行 resize2fs,导致空间实际未增加。
建议操作前养成备份习惯,操作后一定用 df -h 验证。
如果你正在迁移站点存储,也可以参考本站其他文章进一步优化磁盘分区布局。