You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform部署Azure通用化Linux镜像报StorageProfile.dataDisks.lun错误

问题根因

你制作自定义镜像的源虚拟机挂载了LUN为0的数据盘,Azure会将该数据盘的LUN配置写入镜像元数据,部署从该镜像创建的虚拟机时,必须匹配镜像声明的所有数据盘LUN要求,否则就会抛出你遇到的*StorageProfile.dataDisks.lun does not have required value(s) for image specified in storage profile.*错误。

解决方案

方案1:在虚拟机定义中显式声明镜像要求的LUN 0数据盘

修改你的azurerm_linux_virtual_machine资源配置,新增对应LUN 0的data_disk块,无需单独使用azurerm_virtual_machine_data_disk_attachment资源声明该盘:

resource "azurerm_linux_virtual_machine" "vm" {
  # 原有其他配置保持不变
  os_disk {
    # 原有OS盘配置保持不变
  }
  # 新增LUN 0的数据盘配置,匹配镜像要求
  data_disk {
    lun                  = 0
    caching              = "ReadWrite"
    storage_account_type = "StandardSSD_LRS"
    # 需要继承镜像中数据盘的内容用FromImage;需要全新空盘则改为Empty并指定disk_size_gb
    create_option        = "FromImage" 
    # create_option = "Empty"
    # disk_size_gb = 250
  }
  # 原有其他配置保持不变
}

如果你当前单独挂载的LUN 1数据盘是额外新增的,可以保留原有的azurerm_virtual_machine_data_disk_attachment配置,无需修改。

方案2:重新制作无附加数据盘的通用化镜像

如果你不需要镜像中携带数据盘内容,可以重新制作镜像:

  1. 启动源虚拟机,卸载LUN 0的数据盘
  2. 重新执行通用化操作waagent -deprovision+user
  3. 重新捕获通用化镜像到共享映像库
    使用新镜像部署时就不会有LUN要求,原有Terraform配置无需调整即可正常使用。

内容的提问来源于stack exchange,提问作者user2172398

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 13:30:01