Azure 韩国账号 微软云 Azure 账号磁盘扩容指南
别急着删快照!Azure 磁盘扩容不是点两下就完事
上周五凌晨三点,我盯着 Azure 门户里那块标着「98% 已用」的系统盘,手指悬在「调整大小」按钮上,心跳比部署 ARM 模板时还快——毕竟上次扩容完,Windows Server 死活认不出新增的 64GB,最后靠重启+磁盘管理+手动扩展卷三连击才救回来。你是不是也经历过:Portal 上明明改了磁盘大小,进系统一看,C 盘还是老样子?或者 Linux 里 df -h 纹丝不动,lsblk 却显示新容量已生效?别慌,这不是 Azure 抽风,是你漏掉了「最后一公里」。
先搞清:扩的是谁?系统盘 or 数据盘?
Azure 的磁盘分两类,像极了你家冰箱和储藏室:系统盘(OS Disk)是装操作系统的「主卧」,默认随 VM 创建,一般叫 osdisk-xxx;数据盘(Data Disk)是后来挂上的「杂物间」,名字随意,比如 data-disk-01。二者扩容逻辑相似,但「激活新空间」的方式天差地别——Windows 系统盘要靠磁盘管理器「右键扩展卷」,Linux 数据盘得用 xfs_growfs 或 resize2fs,而系统盘在 Linux 里甚至要先 growpart 再 resize2fs。记混一步,扩容就变「行为艺术」。
第一步:Portal 上调尺寸——最温柔的开始
登录 Azure 门户 → 找到你的虚拟机 → 左侧菜单点「磁盘」→ 点击目标磁盘(注意:必须是「托管磁盘」,非托管磁盘?快去迁移,它早该退休了)→ 「配置」→ 拉动「大小」滑块或输入数值(支持 1GB~32767GB)。重点来了:改完必须点「保存」! 这个按钮藏在右上角,灰扑扑的,像极了老板邮件末尾的「请查收」——不点它,前面全白干。保存后,页面会显示「正在更新」,通常 30 秒内搞定。此时磁盘容量已变,但 OS 还蒙在鼓里。
第二步:让操作系统「看见」新空间
Windows 系统盘:磁盘管理器才是真主角
远程桌面连上 VM → 右键「此电脑」→「管理」→「磁盘管理」。你会看到系统盘后面跟着一块「未分配」区域(就是你刚扩的那部分)。右键 C 盘 →「扩展卷」→ 下一步到底。如果灰色不可点?检查:① 未分配空间是否紧邻 C 盘右侧(中间不能隔分区);② C 盘是否为 NTFS(FAT32 不支持在线扩展);③ 是否用了 BitLocker(需先暂停加密)。搞定后,df -h 换成 dir C:,你会发现可用空间嗖一下涨了。
Linux 系统盘(以 Ubuntu/Debian 为例):三行命令定乾坤
SSH 登录 → 先看现状:lsblk(看磁盘设备名,如 /dev/sda)→ sudo fdisk -l /dev/sda(确认分区表类型,GPT 或 MBR)→ 关键来了:sudo growpart /dev/sda 1(把第一个分区撑满整块磁盘)sudo resize2fs /dev/sda1(让 ext4 文件系统吃掉新空间)
如果是 XFS 文件系统(CentOS/RHEL),把最后一句换成:sudo xfs_growfs /(注意斜杠代表根目录挂载点)。执行完 df -h,空间立刻到账。
Azure 韩国账号 Linux 数据盘:挂载点决定命令写法
假设数据盘挂载在 /mnt/data,设备名为 /dev/sdb:
① sudo growpart /dev/sdb 1(扩展分区)
② 若是 ext4:sudo resize2fs /dev/sdb1
③ 若是 XFS:sudo xfs_growfs /mnt/data
切记:XFS 的 xfs_growfs 后跟的是挂载点路径,不是设备名!输错就等着报错吧。
那些让你抓狂的「扩容失败」真相
我们整理了 10 大高频翻车现场,附赠口诀:
- 口诀一:「扩容前必关机,热扩只限数据盘」——系统盘扩容必须关机(Portal 上会提示),数据盘可热扩,但 Linux 需
echo 1 > /sys/block/sdb/device/rescan让内核重读磁盘大小。 - 口诀二:「GPT 分区不用怕,MBR 有 2TB 小门坎」——老式 MBR 分区表最大支持 2TB,超了就得转 GPT(
gdisk工具搞定)。 - 口诀三:「LVM 用户请绕道,先 lvextend 再 resize」——用了 LVM?扩容流程变成:物理卷 → 卷组 → 逻辑卷 → 文件系统,四步缺一不可。
- 口诀四:「快照不是护身符,扩容前删快照保平安」——带快照的磁盘无法扩容!Portal 会直接禁用「大小」选项。删快照前记得备份重要数据。
- 口诀五:「ARM 模板用户看这里:sizeGb 字段别手抖」——用模板部署时,磁盘大小字段是
diskSizeGB,不是size,拼错就创建默认 32GB 小盘。
懒人福音:一行 PowerShell 自动化(Windows)
开 Azure Cloud Shell(PowerShell 模式),粘贴运行:
$rgName = "your-resource-group"
$vmName = "your-vm-name"
$diskName = "your-os-disk-name"
$ newSize = 128
# 更新磁盘大小
$disk = Get-AzDisk -ResourceGroupName $rgName -DiskName $diskName
$disk.DiskSizeGB = $newSize
$disk | Update-AzDisk -ResourceGroupName $rgName
# 关机(系统盘必需)
Stop-AzVM -ResourceGroupName $rgName -Name $vmName -Force
# 启动
Start-AzVM -ResourceGroupName $rgName -Name $vmName
脚本执行完,进系统直接打开磁盘管理器扩展卷即可。Linux 用户可私信我领 Bash 版本——毕竟 growpart 和 resize2fs 组合技,值得一个专属脚本。
最后说句掏心窝子的话
Azure 的扩容能力很稳,真正不稳的是人的操作链路。它不像本地硬盘插上就认,而是把「硬件扩容」和「软件感知」拆成两个独立环节。理解这个设计哲学,你就不会对着灰色的「扩展卷」按钮骂娘,也不会在 df -h 不变时怀疑人生。下次再看到磁盘告警,深呼吸,按本文顺序走一遍:Portal 改大小 → 关机(系统盘)→ 进系统执行扩展命令 → df -h 确认。做完记得给自己泡杯茶——这杯茶,敬所有在云上修过磁盘的工程师。

