Google Cloud(GCP)Ubuntu 系统盘扩容完整教程:从磁盘扩容到文件系统扩展
在使用 Google Cloud(GCP)部署服务器时,系统盘常常会因为日志、项目文件、数据库增长而出现空间不足的问题。本教程将介绍如何在 不重装系统、不破坏数据 的前提下,安全地扩容 Ubuntu 系统盘,并扩展文件系统使新增空间真正可用。
本教程适用于:
- Ubuntu 18.04 / 20.04 / 22.04 / 24.04
- 系统盘(Boot Disk)扩容
- Ext4 或 XFS 文件系统
一、在 GCP 控制台扩容系统盘
首先需要在 GCP 控制台增大磁盘大小,这一步只是修改云磁盘容量,操作系统里的分区和文件系统大小暂时不会变化。
- 登录 Google Cloud Console
- 左侧菜单进入:Compute Engine → VM instances
- 点击需要扩容的实例名称进入详情页
- 在页面中找到 Boot disk(启动磁盘) 区域,点击右侧的 Edit(编辑)
- 在弹出的磁盘设置中,调整 Size(大小),例如从
20 GB调整到100 GB - 保存更改(某些情况下可能需要先停止实例再修改)
完成上述操作后,云磁盘本身容量已经变大,但系统里的根分区和文件系统暂时仍然是原来的大小,所以需要在 Ubuntu 中执行扩展操作。
二、SSH 登录服务器并查看当前磁盘情况
使用 SSH 登录到 GCP 上的 Ubuntu 服务器:
ssh your-user@your-server-ip
查看磁盘结构:
lsblk
示例输出:
sda 100G
└─sda1 20G
可以看到:
/dev/sda是整块云磁盘,现在已经是 100G/dev/sda1是根分区,仍然是扩容前的 20G
接下来需要扩展 /dev/sda1 分区以及其上的文件系统。
三、确认根分区文件系统类型(ext4 还是 xfs)
不同文件系统扩展命令略有区别,先查看根分区的文件系统类型:
df -Th /
示例输出一(ext4):
/dev/sda1 ext4 20G 10G 9G 53% /
示例输出二(xfs):
/dev/sda1 xfs 20G 10G 9G 53% /
记住这里的两点:
- 设备名称:通常是
/dev/sda1 - 文件系统类型:一般是 ext4 或 xfs
四、扩展分区和文件系统(Ext4 常见情况)
大多数 GCP Ubuntu 实例的根分区使用的是 ext4 文件系统,这种情况使用下面的命令即可完成扩容。
1. 扩展分区
使用 growpart 将整块磁盘的空闲空间扩展到分区 /dev/sda1 中:
sudo growpart /dev/sda 1
参数说明:
/dev/sda:磁盘设备名称1:要扩展的分区号(也就是/dev/sda1的“1”)
正常情况下会看到类似输出:
CHANGED: partition=1 start=... old: size=... new: size=...
2. 扩展 ext4 文件系统
分区扩展后,需要扩展文件系统才能真正使用新增空间:
sudo resize2fs /dev/sda1
等待命令执行完成后,ext4 文件系统会自动扩展到当前分区的最大大小。
特点:整个过程不需要重启服务器,扩展完成后空间立即可用。
五、扩展分区和文件系统(XFS 情况)
如果第三步中看到根分区的文件系统类型是 xfs,则扩展方法略有不同。
1. 扩展分区
扩展分区的命令相同:
sudo growpart /dev/sda 1
2. 扩展 XFS 文件系统
对于 XFS 文件系统,需要使用 xfs_growfs 来扩展:
sudo xfs_growfs /
其中 / 表示根挂载点,命令会自动将根分区扩展为可用的最大容量。
六、验证系统盘扩容是否生效
无论是 ext4 还是 xfs,扩展完成后都可以使用 df -h 检查结果:
df -h
示例输出:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 98G 10G 88G 11% /
可以看到根分区已从原先的 20G 扩容到了接近 100G,新空间可正常使用,说明系统盘扩容成功。
七、扩容流程小结
整个 GCP Ubuntu 系统盘扩容流程可以总结为两大步:
- 在 GCP 控制台扩容云磁盘
- 通过 Console 将 Boot Disk(启动磁盘)容量从原来的大小增大到新的大小(例如 20G → 100G)。
- 在 Ubuntu 系统内扩展分区和文件系统
- 使用
growpart扩展分区(例如/dev/sda1)。 - 根据文件系统类型使用:
- ext4:
sudo resize2fs /dev/sda1 - xfs:
sudo xfs_growfs /
- ext4:
- 使用
只有“云磁盘容量扩容 + 分区/文件系统扩展”两步都完成,系统盘空间才会真正变大并被操作系统识别。
八、常见问题(FAQ)
1. 扩容操作会导致数据丢失吗?
正常情况下不会。这里使用的 growpart 和 resize2fs / xfs_growfs 都是在原数据基础上扩展分区和文件系统,不会覆盖已有数据。不过在生产环境下,建议在操作前做好快照或备份,以防意外。
2. 扩容后需要重启服务器吗?
不需要。本教程中的操作都是在线扩容,命令执行成功后即可在系统中直接看到新的空间。
3. 我可以多次扩容同一块系统盘吗?
可以。GCP 支持多次将同一块磁盘容量逐步增大,每次扩容后在系统内重复执行扩展分区和文件系统的步骤即可。
4. GCP 单块磁盘最大能扩到多大?
根据 Google Cloud 官方说明,标准持久磁盘(Persistent Disk)单块最大可以达到数十 TB 级别,普通使用场景足够使用。
通过以上步骤,就可以在 Google Cloud 上安全、快速地完成 Ubuntu 系统盘扩容,无需重装系统,也不会影响现有服务的正常运行。
发布者:彬彬笔记,转载请注明出处:https://www.binbinbiji.com/jianzhanjiaoliu/3783.html