背景:非托管磁盘虚拟机“hlmcen69n1”,附加了一块100GB的数据磁盘。由于arm非托管磁盘机器无法通过Portal界面直接“Capture”,故只能通过命令行的方式进行捕获并还原,以下是通过Powershell命令进行的操作

1.在虚拟机内部执行一般化的操作【Linux机器:waagent -deprovision+user; Windows机器:sysprep】,本文以Linux机器为例进行说明

Linux机器:

Windows机器:

2.在Portal界面关闭该虚拟机,以便释放资源

3.通过Azure Powershell对虚拟机执行“Generalized”标记

PS C:\Users\he.liming> Set-AzureRmVM -ResourceGroupName hlmrgn -Name hlmcen69n1 -Generalized
OperationId :
Status :
StartTime :
EndTime :
Error :

4.执行完一般化的操作后,虚拟机就无法启动了

5.执行以下命令,捕获虚拟机【目前测试,捕获完成后,原虚拟机也未被删除】

PS C:\Users\he.liming> Save-AzureRmVMImage -ResourceGroupName hlmrgn -Name hlmcen69n1 -DestinationContainerName “vhdscature” -VHDNamePrefix "capture"
OperationId :
Status : Succeeded
StartTime : 2017/9/26 17:32:24
EndTime : 2017/9/26 17:32:25
Error :

6. 执行完上述操作后,原虚拟机使用的存储账号中会生产一个container,名称为“system”,在该容器的下级目录中可以找到捕获后生成的VHD文件【包含数据磁盘及操作系统磁盘】及json文件

7.将上述脚本文件download到本地,查看其内容

a.可以根据需求,更改存储账号,容器及OSdisl名称

b.注意到Json脚本中有一个参数为“networkInterfaceId”,需要事先创建一个网络接口,并将其对应的资源ID拷贝出来,待创建虚拟机时使用【备注:创建网络接口时,默认情况下public IP是Disabled,最好手动Enabled,否则创建的虚拟机没有公网IP】

c.可以通过json脚本修改虚拟机size

8.使用调整过的json模板创建新的机器"hlmcen69n2"

PS C:\Users\he.liming> New-AzureRmResourceGroupDeployment -ResourceGroupName hlmrgn -TemplateFile "C:\Users\he.liming\Desktop\capture-hlmcen69n1.json"

cmdlet New-AzureRmResourceGroupDeployment at command pipeline position 1
Supply values for the following parameters:
(Type !? for Help.)
vmName: hlmcen69n2
adminUserName: stone
adminPassword: ************
networkInterfaceId: /subscriptions/******/resourceGroups/hlmrgn/providers/Microsoft.Network/networkInterfaces/hlmcen69n2-nic DeploymentName : capture-hlmcen69n1
ResourceGroupName : hlmrgn
ProvisioningState : Succeeded
Timestamp : 2017/9/27 2:27:18
Mode : Incremental
TemplateLink :
Parameters :
Name Type Value
=============== ========================= ==========
vmName String hlmcen69n2
vmSize String Standard_A1
adminUserName String stone
adminPassword SecureString
networkInterfaceId String /subscriptions/******/resourceGroups/hlmrgn/providers/Microsoft.Network/networkInterfac Outputs :
DeploymentDebugLogLevel :

9.新部署的机器“hlmcen69n2”,可以成功连接使用,并且数据磁盘也会成功还原

捕获arm非托管磁盘虚拟机,并进行还原的更多相关文章

  1. Azure CLI2.0 捕获Linux ARM非托管磁盘虚拟机并创建ARM托管磁盘虚拟机

    1.系统内部取消预配VM,创建了测试文件目录及文件:hlm20180904/ hlm20180904.txt 2.使用CLI2.0创建VM映像 a.登陆CLI2.0 备注:在 Azure 中国区使用 ...

  2. Azure Powershell使用已有Image创建ARM非托管磁盘虚拟机

    生成Image映像文件,记录好Image的URL(下面URL为测试URL,具体请参考实际):ImageURL:https://hlmrgstoragen.blob.core.chinacloudapi ...

  3. Azure ARM (20) 将非托管磁盘虚拟机(Unmanage Disk),迁移成托管磁盘虚拟机(Manage Disk)

    <Windows Azure Platform 系列文章目录> PowerShell我已经提交到GitHub: https://github.com/leizhang1984/AzureC ...

  4. Azure Powershell使用已有特殊化非托管磁盘创建ARM虚拟机

    生成已有特殊化非托管磁盘的方法主要有如下两种: 1.使用StorageExplorer存储管理工具,复制特殊化磁盘到一个新的容器下 2.New Portal中删除虚拟机,默认vhd文件会保留在存储账号 ...

  5. 捕获arm托管磁盘虚拟机,并进行还原

    背景:托管磁盘虚拟机"hlmma69n2",附加了一块100GB的数据磁盘.可以通过Portal管理界面直接捕获该虚拟机并进行还原,详情见如下步骤: 1.在虚拟机内部执行一般化的操 ...

  6. 将 Windows 虚拟机从非托管磁盘转换为托管磁盘

    如果有使用非托管磁盘的现有 Windows 虚拟机 (VM),可通过 Azure 托管磁盘服务将 VM 转换为使用托管磁盘. 此过程会同时转换 OS 磁盘和任何附加的数据磁盘. 本文介绍如何使用 Az ...

  7. CentOS7.3托管磁盘虚拟机扩容数据磁盘

    随着托管磁盘的上线,虚拟机支持的单块磁盘容量从1TB到达了4TB,客户对单块磁盘容量的需求量也会变的很大. 操作之前需要重点查看: 由于扩容磁盘的操作非同小可,一旦哪一步出现问题,就会导致分区损坏,数 ...

  8. 如何将使用托管磁盘虚拟机的 OS 盘挂载到其他虚拟机上

    适用场景 当出现虚拟机无法启动等情况时,需要将虚拟机的 OS 磁盘挂载到其他虚拟机上进行问题诊断或者数据恢复.使用托管磁盘的虚拟机无法通过存储浏览器等工具进行管理,只能通过 PowerShell 来操 ...

  9. 手动将经典 VM 从 VHD 迁移到新的 ARM 托管磁盘 VM

    本部分有助于将现有 Azure VM 从经典部署模型迁移到资源管理器部署模型中的托管磁盘. 计划迁移到托管磁盘 本部分可帮助你针对 VM 和磁盘类型做出最佳决策. 位置 选取 Azure 托管磁盘可用 ...

随机推荐

  1. EditTable-V1.0--续集

    上一个功能有点少,这个V1.0版本是最小集合的. ================================= 双击单元格编辑,可以添加,删除单元格.并且保持相邻单元格不同的背景色. 引用了“M ...

  2. Hadoop之Hive篇

    想了解Hadoop整体结构及各框架角色建议飞入这篇文章,写的很好:http://www.open-open.com/lib/view/open1385685943484.html .以下文章是本人参考 ...

  3. iOS项目开发常用功能静态库

    YHDeveloperTools iOS项目开发常用功能静态库 查看源码 功能方法: 1.字符检查 [NSString checkStringWithType:Email andTargetStrin ...

  4. 4.variables

    变量在python可以是字符也可以是数字.例如:   x = 2 price = 2.5 word = 'Hello'   变量名在等号左边,值在右边,一旦变量被指定,就可以在程序的其他地方使用它. ...

  5. 用JAVA写一个冒泡排序

    一:实现思想: 基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒.即:每当两相邻的数比较后发现它们的排序与排序要 ...

  6. HtmlWebpackPlugin实现资源的自定义插入

    目前碰到的问题 我们用html-webpack-plugin的inject属性去自动插入打包后的js, css到页面中,但是如果想给script标签添加一个crossorigin属性呢, 例如: &l ...

  7. Coursera课程 Programming Languages 总结

    课程 Programming Languages, Part A Programming Languages, Part B Programming Languages, Part C CSE341: ...

  8. python写端口批量扫描器

    用到shodan模块 话不多说,马上开始 pip3 install shodan import shodan SHODAN_API_KEY=" 你的shodankey" api = ...

  9. Awesome-Link——我的积累、推荐和分享

    积累一些自己看过的比较好的技术博客.以后忘记了可以回过头来看,毕竟有些博客已经写的非常的好了.有些自己写的也会列举在上面.同时还包含一些好用的插件.工具.网站等等. github准备长期更新,欢迎st ...

  10. CTF---Web入门第一题 what a fuck!这是什么鬼东西?

    what a fuck!这是什么鬼东西?分值:10 来源: DUTCTF 难度:易 参与人数:7942人 Get Flag:3358人 答题人数:3475人 解题通过率:97% what a fuck ...