迁到免费 ARM 实例后,默认系统盘只有 50G。眼下占用不高,但后面要装环境、跑数据库、留备份,我决定把它扩到 150G。
扩容时最容易懵的一点:控制台明明把盘改大了,登录机器一看,df 里还是老大小。这不是没生效,是中间还有两层没打通。这篇把完整步骤走一遍,全程不关机、业务不中断。

扩容到底在扩哪几层 一块云盘从物理容量到你能存文件,隔着三层,要逐层打通:
云平台上的卷(Volume) —— 控制台把 50G 改成 150G ↓ 系统看到的磁盘 /dev/sda —— 让内核重新识别磁盘大小 ↓ 分区 /dev/sda1 + 文件系统 —— 扩分区,再扩文件系统(ext4) 只做第一层,可用空间不会变,因为分区和文件系统还停在旧尺寸。
云卷、磁盘、分区和文件系统要逐层扩展。 云卷、磁盘、分区和文件系统要逐层扩展。 第一层:控制台改大小 在控制台找到引导卷,编辑容量,50G 改成 150G。几点:
主流云都支持运行中在线扩引导卷,不用关机,网站不受影响; 只改容量,其他别动:性能档位(甲骨文叫 VPU,默认 10)、加密、跨区域复制保持原样,免得影响性能或产生费用; 容量只能调大、不能调回,想清楚再填。 提交后卷已经是 150G,但机器里还看不到。
控制台扩容后,来宾系统还要重新识别容量。 控制台扩容后,来宾系统还要重新识别容量。 第二层:让内核重新扫描磁盘 扩容后操作系统未必立刻感知,需要触发一次重新扫描。甲骨文控制台扩容弹窗里会给出命令,核心是这两条:
对引导盘做一次只读探测,让内核重新读容量
sudo dd iflag=direct if=/dev/oracleoci/oraclevda of=/dev/null count=1
向 SCSI 设备的 rescan 接口写 1,触发重新扫描
echo "1" | sudo tee /sys/class/block/$(readlink /dev/oracleoci/oraclevda | cut -d'/')/device/rescan /dev/oracleoci/oraclevda 是甲骨文对引导盘的固定别名,等价 /dev/sda。其他云、或盘名不同时,通用做法是往 /sys/class/block/<盘名>/device/rescan 写 1;嫌麻烦,重启一次实例也能识别。
扫描后确认磁盘层面已变大:
lsblk
或
sudo fdisk -l /dev/sda 这时 sda 整体已是 150G,但分区 sda1 可能还显示约 50G——接着做第三层。
第三层:扩分区(growpart) 用 growpart 把第 1 个分区扩到占满整块盘:
sudo growpart /dev/sda 1 /dev/sda 和分区号 1 之间有空格,意思是扩 sda 的第 1 个分区。成功会输出类似:
CHANGED: partition=1 start=... old: size=... new: size=... 提示 command not found 就先装:
sudo apt update && sudo apt install -y cloud-guest-utils 第四层:扩文件系统(resize2fs) 分区大了,里面的文件系统(Ubuntu 默认 ext4)还不知道,最后在线扩一下:
sudo resize2fs /dev/sda1 ext4 支持挂载状态下在线扩容,不用卸载、不影响业务。
如果是 xfs 文件系统,对应命令是 sudo xfs_growfs /(按挂载点),别用 resize2fs。df -T 能看文件系统类型。
验证 df -h / 实际结果:
Filesystem Size Used Avail Use% Mounted on /dev/sda1 146G 9.9G 136G 7% / Size 从约 49G 变成 146G(标称 150G,文件系统略小是分区表和元数据占用,正常),可用约 136G。
扩分区与文件系统后,验证可用空间。 扩分区与文件系统后,验证可用空间。 免费配额会不会超 用免费套餐,这步必须算清楚。按甲骨文"永久免费"文档,存储免费额度是:
块卷 + 引导卷合计 200GB,永久免费,且只在账号的"主区域"; 另有 5 个免费卷备份名额。 50G 扩到 150G 后:已用 150G,额度 200G,还剩 50G,不超标。
两个容易忽略的点:
免费额度按主区域算,卷要在主区域才计入; 我没给卷做手动快照,5 个免费卷备份名额仍空着(数据库的 .sql 备份是文件,不算卷备份)。 操作前后都建议到官方免费资源页核对一遍,政策偶尔调整,以最新文档为准。
顺序回顾 控制台改大小 → 内核 rescan(或重启)→ growpart 扩分区 → resize2fs(xfs 用 xfs_growfs)扩文件系统 → df 验证,再核对一遍免费配额。