美文网首页
Azure VM 无法正常启动的处理

Azure VM 无法正常启动的处理

作者: 华阳_3bcf | 来源:发表于2019-02-02 11:52 被阅读0次

    Azure VM无法正常启动,一般是系统文件出错,导致无法连接。处理方法是恢复系统文件,恢复的途径主要有下面三个思路:

    1. 从以前的备份snapshot恢复。
    2. 从Console进去修改出错的部分。
    3. 把系统盘mount到其它主机上修改。

    对于没有备份的系统,只能使用后两种方式,具体如下:

    方法一:进入Console处理

    登陆Azure web portal,找到对应的VM,打开诊断模式,重启VM,连接Console。

    从Console输出,了解什么原因导致VM启动失败,然后进入系统,以root身份(敲回车键,直接就进入root)修改对应文件,再重启。
    【注】2019/5/20 更新,这种办法现在行不通了,root需要密码进入。解决方案Use Serial Console to access GRUB and Single User Mode

    方法二:mount系统盘到其它主机

    使用Azure CLI 命令行操作。

    解除VM与系统盘的关系。

    az vm delete -g MyGroup -n MyVM

    $ az vm delete -g roy-kafka-rg -n roy-kafka-vm-hdp-01
    Are you sure you want to perform this operation? (y/n): y
    {
      "additionalProperties": {},
      "endTime": "2019-02-02T02:28:58.125809+00:00",
      "error": null,
      "name": "31f5dc00-a550-433f-b4db-4ed8e4a71522",
      "startTime": "2019-02-02T02:28:47.610582+00:00",
      "status": "Succeeded"
    }
    

    [注意] 因为是系统盘,只能通过删除VM的方式,如果是数据盘,可以 detach disk。

    把系统盘挂在其它VM上

    az vm disk attach -g MyGroup --vm-name AnotherVM --disk Old_VM_OS_disk

    [注意]两个VM最好是同样的类型(size,OS)否则磁盘可能挂载不了。

    登陆Linux系统,找到新磁盘,挂上去。

    1. 通过 lsblk 找到新磁盘
    2. mount 新磁盘
    3. 修改文件
    4. umount 磁盘
    5. 退出

    Azure 平台取消disk 与 VM的挂载关系

    az vm disk detach -g MyGroup --vm-name AnotherVM -n Old_VM_OS_disk

    基于修改后的OS 磁盘,重新创建VM

    az vm create -g MyGroup -n MyVM --attach-os-disk Old_VM_OS_disk --os-type linux --size SizeType --nics Old_nic_name

    [注意] 额外的两个参数 --size, --nics。size决定了CPU/Memory跟原来一样,nics决定了网卡跟原来一样,也就是子网,ip,nsg跟原来一样。

    重新连接VM

    VM实际上是新建的,通过ssh连接,发现fingerprint变了,需要修改本地的~/.ssh/known_hosts,再次连接。

    拓展

    VM 在 OpenStack 环境中连接不上,也是类似的思路。

    不同点:

    Console 需要输入root 密码,无法登陆。只能通过挂盘的方式来操作。

    挂盘操作步骤:

    1. 找到VM所在的物理机
    2. 在物理机上安装guestfish
    3. guestfish 修改虚拟机镜像里面的文件

    相关文章

      网友评论

          本文标题:Azure VM 无法正常启动的处理

          本文链接:https://www.haomeiwen.com/subject/cxdssqtx.html