捕获arm非托管磁盘虚拟机,并进行还原
背景:非托管磁盘虚拟机“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非托管磁盘虚拟机,并进行还原的更多相关文章
- Azure CLI2.0 捕获Linux ARM非托管磁盘虚拟机并创建ARM托管磁盘虚拟机
1.系统内部取消预配VM,创建了测试文件目录及文件:hlm20180904/ hlm20180904.txt 2.使用CLI2.0创建VM映像 a.登陆CLI2.0 备注:在 Azure 中国区使用 ...
- Azure Powershell使用已有Image创建ARM非托管磁盘虚拟机
生成Image映像文件,记录好Image的URL(下面URL为测试URL,具体请参考实际):ImageURL:https://hlmrgstoragen.blob.core.chinacloudapi ...
- Azure ARM (20) 将非托管磁盘虚拟机(Unmanage Disk),迁移成托管磁盘虚拟机(Manage Disk)
<Windows Azure Platform 系列文章目录> PowerShell我已经提交到GitHub: https://github.com/leizhang1984/AzureC ...
- Azure Powershell使用已有特殊化非托管磁盘创建ARM虚拟机
生成已有特殊化非托管磁盘的方法主要有如下两种: 1.使用StorageExplorer存储管理工具,复制特殊化磁盘到一个新的容器下 2.New Portal中删除虚拟机,默认vhd文件会保留在存储账号 ...
- 捕获arm托管磁盘虚拟机,并进行还原
背景:托管磁盘虚拟机"hlmma69n2",附加了一块100GB的数据磁盘.可以通过Portal管理界面直接捕获该虚拟机并进行还原,详情见如下步骤: 1.在虚拟机内部执行一般化的操 ...
- 将 Windows 虚拟机从非托管磁盘转换为托管磁盘
如果有使用非托管磁盘的现有 Windows 虚拟机 (VM),可通过 Azure 托管磁盘服务将 VM 转换为使用托管磁盘. 此过程会同时转换 OS 磁盘和任何附加的数据磁盘. 本文介绍如何使用 Az ...
- CentOS7.3托管磁盘虚拟机扩容数据磁盘
随着托管磁盘的上线,虚拟机支持的单块磁盘容量从1TB到达了4TB,客户对单块磁盘容量的需求量也会变的很大. 操作之前需要重点查看: 由于扩容磁盘的操作非同小可,一旦哪一步出现问题,就会导致分区损坏,数 ...
- 如何将使用托管磁盘虚拟机的 OS 盘挂载到其他虚拟机上
适用场景 当出现虚拟机无法启动等情况时,需要将虚拟机的 OS 磁盘挂载到其他虚拟机上进行问题诊断或者数据恢复.使用托管磁盘的虚拟机无法通过存储浏览器等工具进行管理,只能通过 PowerShell 来操 ...
- 手动将经典 VM 从 VHD 迁移到新的 ARM 托管磁盘 VM
本部分有助于将现有 Azure VM 从经典部署模型迁移到资源管理器部署模型中的托管磁盘. 计划迁移到托管磁盘 本部分可帮助你针对 VM 和磁盘类型做出最佳决策. 位置 选取 Azure 托管磁盘可用 ...
随机推荐
- 如何在Spring框架上做开发之Context启动中的“Hook”
1.概述 有些时候,我们需要在spring启动过程中加入一些自己的逻辑,特别是一些基本框架和spring做整合的时候(例如:mybatis-spring-boot-starter),就需要使用Spri ...
- 2018年手机应用UI设计趋势预测
用户需求瞬息万变,而手机软件UI设计为适应变化的用户需求,也相应的发生着变化.但是,这并不意味着用户需求和UI设计趋势就是无迹可寻的.事实上,根据前几年的手机app界面设计变化的特点,尤其是2017年 ...
- Kafka的特点及使用场景
Kafka是分布式发布-订阅消息系统.它最初由LinkedIn公司开发,之后成为Apache项目的一部分.Kafka是一个分布式的,可划分的,冗余备份的持久性的日志服务.它主要用于处理活跃的流式数据. ...
- Java 与C++的各种优势与弱点--学习更新中
时隔两年没有怎么碰Java了,最近开始学习回顾下.在这里记录下学习的点滴,持续更新...希望对c++\java等不同语言有较为清晰的认识,至少不要学完以后,哪一个都不会了... Java 优势: 1. ...
- [转载]解决sudo: sorry, you must have a tty to run sudo
前几天遇到一个问题,在一个终端中调用另一个shell,始终是无法执行的,后来捕捉到报错信息为sudo: sorry, you must have a tty to run sudo,后来,在网上了解到 ...
- 【.Net边角料系列】1-单例模式(我真不是你想的那样)
什么事边角料? 边角料就是你编程的时候,很少能够用上,或者说你压根就不知道得东西,我就称这些东西为边角料.这个叫.net边角料可能有点大,其实这个系列是纯粹的C#边角料系列. 为什么写.net边角料呢 ...
- oracle如何导出和导入数据库表
oracle如何导出和导入数据库表 oracle如何将项目中的表导出后在导入自己的数据库中,这是一个完整的操作,对于数据库备份或在本地查看数据验证数据进场用到,一般情况下我都用dos黑窗口进行操作,简 ...
- Node+mongodb线上部署到阿里云
Node+mongodb线上部署到阿里云 部署使用的主要工具是pm2+nginx,使用码云的私有仓库,自动部署到服务器,私有仓库和服务器要事先设置好免密码登录.使用DNSPOD进行域名解析.事先准备好 ...
- Redis 数据结构与内存管理策略(上)
Redis 数据结构与内存管理策略(上) 标签: Redis Redis数据结构 Redis内存管理策略 Redis数据类型 Redis类型映射 Redis 数据类型特点与使用场景 String.Li ...
- bzoj:1685 [Usaco2005 Oct]Allowance 津贴
Description As a reward for record milk production, Farmer John has decided to start paying Bessie t ...