Azureresize并丢失密码

我有一个运行Ubuntu 14.04的经典Azure虚拟机。 它运行在一个标准的A0(1核心,0.75 GB的内存),我调整到标准A2使用Web门户。

resize后,SSH不再工作。 它警告更改的密钥,并从已知的主机中删除条目,它连接到会话,但不接受azureuser帐户的密码。

我试图重置密码使用:

 azure vm extension set compilemachine "VMAccessForLinux" "Microsoft.OSTCExtensions" "1.*" -r "Microsoft.OSTCExtensions.VMAccessForLinux" 

但是由于缺乏configuration客户代理,CLI不起作用

 info: Executing command vm extension set + Getting virtual machines error: Provision Guest Agent must be enabled on the VM before setting VM Extension. error: Error information has been recorded to /Users/user/.azure/azure.err error: vm extension set command failed 

有关如何从虚拟机恢复数据的任何提示? 还是要恢复对虚拟机的访问?

在这种情况下,您可以下载虚拟机​​的虚拟硬盘,并将其挂载到任何Windows系统(或将其连接到Hyper-V虚拟机)。

我们可以使用这个脚本来重置密码:
1.创build一个.json文件,如下所示:

 { "username": "azureuser", "password": "newpassword" } 

然后将其保存在您的PC上。
2.用CLIloginazure色:

 azure login azure config mode asm azure vm extension set ubuntu VMAccessForLinux Microsoft.OSTCExtensions "1.4" --private-config-path C:\Users\Desktop\jason\protected.json info: Executing command vm extension set + Getting virtual machines + Updating vm extension info: vm extension set command OK 

完成后 ,我们可以使用新密码login虚拟机(请尝试使用FQDNlogin此虚拟机:xxxx.cloudapp.net)。

顺便说一句,如果错误再次出现,请使用PowerShell检查ProvisionGuestAgent值:

 Add-AzureAccount $vm = Get-AzureVM -ServiceName 'MyServiceName' -Name 'MyVMName' $vm.GetInstance().ProvisionGuestAgent 

如果该值未设置为“true”,则应使用flow命令将ProvisionGuestAgent设置为“True”:

 $vm.GetInstance().ProvisionGuestAgent = $true 

有关如何从虚拟机恢复数据的任何提示? 还是要恢复对虚拟机的访问?

如果你想从虚拟机中恢复数据,我们可以创build另一个虚拟机2,然后删除这个虚拟机(保留磁盘),并将这个磁盘挂载到虚拟机2,这样我们可以将数据复制到新的虚拟机上。
另外,我们可以将新用户添加到vm1的/ etc / passwd和/ etc / shadow和/ etc / group中。 完成之后,我们可以使用这个VHD来创build一个新的虚拟机,和以前一样。