亚马逊云个人实名 亚马逊云如何增加磁盘容量
你有没有过这种时刻:凌晨三点,服务器报警说根目录只剩2%空间;你火速登录EC2,发现df -h里/那一行红得像番茄酱;你手抖复制粘贴网上搜来的“扩容教程”,结果执行到resize2fs时弹出“Invalid argument”……然后你盯着黑屏,默默点了重启——顺便重启了人生。
别慌。今天咱们不讲概念,不堆术语,就当是坐在你工位旁边,泡着枸杞茶,一边敲命令一边唠嗑:亚马逊云(AWS)里到底怎么给磁盘加容量?不是“删日志凑合用”,也不是“重装系统求心安”,而是实打实、可回滚、不丢数据的扩容三步法:改云盘、调分区、扩文件系统。全程基于真实环境(Amazon Linux 2 / Ubuntu 22.04 + x86_64 + EBS gp3卷),命令带解释,报错有对策,连lsblk输出为啥多出个p1都给你画重点。
第一步:先搞清你在扩谁的肚子
AWS里磁盘不是一块铁板,它分三层:最上是文件系统(比如ext4),中间是分区表(MBR或GPT),底下才是EBS卷本身。扩容失败90%因为搞混了这仨——就像想给西装加肥,却去剪领带。
先登进你的EC2实例,跑这句:
lsblk -f
看输出里类似这样的结构:
NAME FSTYPE LABEL UUID MOUNTPOINT
nvme0n1
└─nvme0n1p1 ext4 1a2b3c4d-5e6f-7g8h-9i0j-k1l2m3n4o5p6 /
注意!nvme0n1是EBS卷本体,nvme0n1p1是它上面的分区,/是挂载点。如果你看到的是nvme0n1直接挂载(没p1),说明用了无分区直挂——这种情况反而更简单,但极少见。99%人面对的是带p1的结构。
第二步:云上扩容——动EBS卷,不动实例
重点来了:扩容EBS卷无需关机(但强烈建议快照备份!)。打开AWS控制台 → EC2 → 左侧“弹性块存储”→“卷”,找到你实例挂载的卷(看“附件”列),右键→“修改卷”。把“大小”从当前值(比如30GiB)改成目标值(比如50GiB),点“修改”。
等状态变成“in-use”且“已优化”,别急着进系统!这时候lsblk依然显示旧大小——因为OS还没“感知”到新空间。你得手动通知它:
sudo nvme format -s 1 /dev/nvme0n1 # 仅限Nitro实例(新机型)
sudo growpart /dev/nvme0n1 1 # 扩展分区1占满新卷空间
亚马逊云个人实名 ⚠️注意:如果设备名是xvda(老一代实例),命令换成sudo growpart /dev/xvda 1;如果growpart报“command not found”,装它:sudo yum install cloud-utils-growpart -y(AL2)或sudo apt install cloud-guest-utils -y(Ubuntu)。
再跑lsblk,你会看到nvme0n1p1大小变了!但df -h还是老样子——分区是胖了,衣服(文件系统)还没换。
第三步:地上扩容——让文件系统吞下新地盘
根据文件系统类型选命令:
- ext4(最常见):
sudo resize2fs /dev/nvme0n1p1 - xfs:
sudo xfs_growfs /(注意:这里填挂载点/,不是设备名!)
执行完立刻df -h——恭喜,/目录容量已更新!
避坑指南:那些让你想砸键盘的瞬间
❌ 坑1:“扩容后空间没变!”
八成卡在growpart没执行,或执行了但忘了resize2fs。记住口诀:卷大了→分区要撑开→文件系统得吃饭。
❌ 坑2:“resize2fs报错‘The filesystem is mounted’”
这是正常提示!ext4支持在线扩容,它只是提醒你“我在动活体”,不是报错。继续执行就行。
❌ 坑3:“xfs_growfs提示‘data size changed’但df没变”
检查挂载点是否写错(比如写了/dev/nvme0n1p1而非/),或确认文件系统确实是xfs:df -T /。
❌ 坑4:“扩容后启动不了?”
只可能发生在你误操作了/boot分区或GRUB配置。本文方法只动根分区,只要不碰/boot目录和grub.cfg,绝对安全。
Bonus:数据卷扩容(比如挂载在/mnt/data)
步骤几乎一样,唯一区别:卸载再操作。
sudo umount /mnt/data- 控制台扩容EBS卷
sudo growpart /dev/nvme1n1 1(假设设备名是nvme1n1)sudo resize2fs /dev/nvme1n1p1(或xfs_growfs /mnt/data)sudo mount /mnt/data
为什么数据卷要卸载?因为某些旧内核对挂载中xfs扩容支持不稳定。保险起见,卸载总没错。
最后送你三条保命原则
① 快照永远第一顺位:扩容前花1分钟打个快照,比救火快十倍;
② 别信一键脚本:网上那些“复制即扩容”的Shell,往往忽略分区表类型(GPT需额外处理);
③ 验证比速度重要:扩容后跑sudo touch /testfile && sudo rm /testfile,确保读写正常。
所以你看,AWS磁盘扩容哪是什么玄学?它就是拧三颗螺丝:云上拧松卷尺寸,系统里拧开分区边界,最后给文件系统发张“扩容许可证”。下次再看到磁盘告急,别慌——泡杯茶,打开终端,按顺序拧,拧完还能顺手给运维同事发条消息:“刚给服务器做了个微创增肥手术,它现在胃口很好。”

