![无法在 Azure 上启动 Ubuntu 虚拟机](https://linux22.com/image/686172/%E6%97%A0%E6%B3%95%E5%9C%A8%20Azure%20%E4%B8%8A%E5%90%AF%E5%8A%A8%20Ubuntu%20%E8%99%9A%E6%8B%9F%E6%9C%BA.png)
我有一台用于测试的虚拟机。我两周前最后一次启动它并在其上运行了标准 aptitude safe-upgrade,然后将其关闭。我今天(7 月 8 日)刚刚启动虚拟机,然后出现以下错误:
对于发布者为“Microsoft.OSTCExtensions”且类型为“LinuxDiagnostic”的 VM 扩展,在工件存储库中未找到满足所请求版本“2.0”的版本。
如果我尝试重新部署并调整虚拟机大小,我会收到同样的错误。虚拟机是使用资源管理器(非经典虚拟机)设置的。
答案1
尝试进入虚拟机设置,然后进入诊断,关闭诊断。如果这不能让机器启动,那么谷歌搜索如何使用 powershell 或 azure cli 登录 azure,然后删除扩展。删除扩展后,您可以重新启动机器并重新打开诊断。
答案2
我通过删除 Microsoft.OSTCExtensions.LinuxDiagnostic 扩展解决了该问题。我采取的步骤如下:
即使显示有错误,也要启动虚拟机。如果我在启动虚拟机之前尝试删除扩展,则会收到以下错误:
无法删除虚拟机扩展“Microsoft.Insights.VMDiagnosticsSettings”。错误:OperationNotAllowed:当 VM 未运行时无法修改 VM 中的扩展。
启动虚拟机时我仍然收到原始错误消息:
无法启动虚拟机“some-vm”。错误:在工件存储库中未找到满足发布者为“Microsoft.OSTCExtensions”且类型为“LinuxDiagnostic”的 VM 扩展所请求版本“2.0”的版本。
VM 启动后,通过 Azure 网站的扩展菜单中删除扩展。然后单击卸载。卸载可能需要几分钟,让它完成。在我的例子中,我还删除了 VMAccessForLinux 扩展。
- 我停止了虚拟机然后重新启动它,现在我可以通过 SSH 进入它。
感谢 Ryan 提供的有关删除诊断的提示。这让我找到了删除扩展的正确方法。GordonB,我考虑过删除虚拟机并重新创建它,但这是我最后的选择。
我没有安装这些扩展,我假设它们是在一年前左右创建虚拟机时安装的。有人知道为什么扩展突然停止工作吗?谢谢。
答案3
编辑我刚刚意识到你不只是试图调整大小,你还试图启动,抱歉。这只适用于不会关闭或重新启动的机器。
尝试按照以下文章重新启动 waagent 服务。如果此操作无效,您可能需要尝试手动安装 waagent 以确保您拥有正确的版本。
https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-linux-update-agent/
答案4
删除虚拟机,使用相同的磁盘创建另一个虚拟机。值得一试。