У меня есть классическая виртуальная машина Azure под управлением Ubuntu 14.04. Он работал в стандартном A0 (1 ядро, 0,75 ГБ памяти), и я изменил размер до Standard A2 с помощью веб-портала.
После изменения размера SSH больше не работал. Он предупредил об изменении ключей и после того, как я удалил запись с известных хостов, он подключился к сеансу, но не принял пароль для учетной записи azureuser
.
Я попытался сбросить пароль, используя:
azure vm extension set compilemachine "VMAccessForLinux" "Microsoft.OSTCExtensions"
"1.*" -r "Microsoft.OSTCExtensions.VMAccessForLinux"
] Но CLI не работает из-за отсутствия гостевого агента Provision
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. создайте файл .json, вот так:
{
"username": "azureuser",
"password": "newpassword"
}
затем сохраните его на вашем компьютере.
.
2. вход в лазурь с помощью CLI:
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
после его завершения , мы можем использовать новый пароль для входа в ВМ (пожалуйста, попробуйте использовать FQDN для входа в эту ВМ:xxxx.cloudapp.net).
Кстати, если ошибка повторится, пожалуйста, используйте PowerShell для проверки значения ProvisionGuestAgent:
Add-AzureAccount
$vm = Get-AzureVM -ServiceName 'MyServiceName' -Name 'MyVMName'
$vm.GetInstance().ProvisionGuestAgent
Если значение не установлено в "true", мы должны использовать команду flow для установки значения "True" для ProvisionGuestAgent:
$vm.GetInstance().ProvisionGuestAgent = $true
Какие-нибудь подсказки о том, как восстановить данные из ВМ? Или восстановить доступ к ВМ?
Если вы хотите восстановить данные с ВМ, мы можем создать другую ВМ2, затем удалить эту ВМ(keep disk), и подключить диск к ВМ2, таким образом, мы сможем скопировать данные на новую ВМ.
.
Также мы можем добавить нового пользователя в /etc/passwd и /etc/shadow и /etc/group в vm1. После этого мы можем использовать этот VHD для создания новой ВМ, как и вашу предыдущую.