powershell - 将托管操作系统磁盘快照还原到现有 VM

标签 powershell azure azure-powershell azure-managed-disk

与此类似one但仅使用 powershell 并使用托管磁盘和现有虚拟机。

我拍摄了托管操作系统磁盘的快照并想要恢复它,但不知道如何恢复。我已经尝试了很多方法,但现在认为即使虚拟机被释放,也无法分离操作系统磁盘。无论我仔细研究reference ,我找不到任何东西可以帮助我将快照恢复到现有磁盘。这可能吗?

最佳答案

I can't find anything to help me restore a snapshot to an existing disk. Is this even possible?

据我所知,Azure 支持将快照还原到现有磁盘。

但我们可以使用快照创建托管磁盘并将其附加到现有虚拟机。

以下是使用快照创建托管磁盘的 PowerShell 脚本:

PS C:\Users> $resourceGroupName = 'vm'
PS C:\Users> $snapshotResourceGroupName = 'vm'
PS C:\Users> $snapshotName = 'manageddisk1'
PS C:\Users> $managedDiskType = 'StandardLRS'
PS C:\Users> $location = 'eastus'
PS C:\Users> $managedDiskCreateOption = 'Copy'
PS C:\Users> $diskName = 'manageddisk2'
PS C:\Users> $snapshot = Get-AzureRmSnapshot -SnapshotName $snapshotName -ResourceGroupName $snapshotResourceGr
oupName
PS C:\Users> $diskConfig = New-AzureRmDiskConfig -AccountType $managedDiskType -Location $location -CreateOptio
n $managedDiskCreateOption -SourceResourceId $snapshot.Id
PS C:\Users> New-AzureRmDisk -DiskName $diskName -Disk $diskConfig -ResourceGroupName $resourceGroupName


AccountType        : StandardLRS
TimeCreated        : 4/21/2017 1:26:27 PM
OsType             : Windows
CreationData       : Microsoft.Azure.Management.Compute.Models.CreationData
DiskSizeGB         : 128
EncryptionSettings :
OwnerId            :
ProvisioningState  : Succeeded
Id                 : /subscriptions/5384xxxx-xxxx-xxxx-xxxx-xxxxe29axxxx/resourceGroups/vm/providers/Microsoft.Compute/
                     disks/manageddisk2
Name               : manageddisk2
Type               : Microsoft.Compute/disks
Location           : eastus
Tags               :

如果您想将其附加到现有虚拟机,我们可以使用以下脚本:

PS C:\Users> $datadisk2 = Get-AzureRmDisk -ResourceGroupName vm -DiskName manageddisk2
PS C:\Users> $vmName = 'jasonvm'
PS C:\Users> $rgname = 'vm'
PS C:\Users> $dataDiskName = 'manageddisk2'
PS C:\Users> $vm = Get-AzureRmVM -Name $vmName -ResourceGroupName $rgName
PS C:\Users> $vm = Add-AzureRmVMDataDisk -VM $vm -Name $dataDiskName -CreateOption Attach -ManagedDiskId $dataD
isk2.Id -Lun 2
PS C:\Users> Update-AzureRmVM -VM $vm -ResourceGroupName $rgName

RequestId IsSuccessStatusCode StatusCode ReasonPhrase
--------- ------------------- ---------- ------------
                         True         OK OK

这样,我们就可以在Azure VM中找到这个托管磁盘: enter image description here

关于powershell - 将托管操作系统磁盘快照还原到现有 VM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43524110/

相关文章:

python - Azure 函数可以将 Git 存储库克隆到 Blob 存储吗?

通过 webhook Azure 启动/停止 VM

azure - Get-AzureRmVM 需要名称参数吗?

powershell - PowerShell启动之前的PSModulePath变量要求

windows - 如何在多脚本中使用 powershell 函数?

powershell - 具有 Select-Object 和Where-Object 的管道内的 If 条件

azure - 降级 AzureRM PowerShell 模块

rest - 合作伙伴中心 获取资源名称 对象级别

caching - azure appfabric 缓存写入后面功能

azure - 应用程序见解 kusto 查询列出所有子项目