Loading
0

阿里云ECS镜像导入到本地VMware虚拟机中方法

技术小学生微信公众号
腾讯云服务器大促销。
华为服务器
前言:当前站点是部署在阿里云的,需要将镜像从阿里云导出,然后在本地VMware虚拟机中导入这个镜像,本教程介绍操作方法,希望对新手朋友有帮助。
流程:ECS制作镜像 ---> 创建与ECS同地域的OSS ---> 将镜像导出到OSS ---> 从OSS中下载这个镜像 ---> 将镜像从.raw格式转换为.vmdk 格式 ---> VMware虚拟机导入转换后的镜像;
本教程从转换格式开始,前面到的步骤很简单,若不知道可以联系阿里云客服。
如何将VMware虚拟机.vmdk导入阿里云ECS服务器:https://blog.tag.gg/showinfo-3-36324-0.html
本教程以 Ubuntu 20和Centos7.x为例。
Ubuntu
安装很顺利,没出现幺蛾子。
Centos7.x安装后出现“dracut-initqueue: Warning: dracut-initqueue timeout - starting timeout scripts.”报错,可参考后面的方法处理。
将镜像从.raw格式转换为.vmdk 格式
1、安装“qemu-img”工具,该工具可以将RAW、QCOW2、QCOW1、VMDK、VDI、VHD(vpc)、VHDX或QED格式的镜像转换为VHD格式以及RAW和VHD格式的互相转换。
官网下载地址:https://qemu.weilnetz.de/w64/
安装后设置环境变量,确保打开cmd后输入“qemu-img --help”可以识别到命令。(如果提示找不到命令则说明环境变量没设置好)阿里云官网有设置教程。
2、下载镜像文件后解压出来得到的是.raw格式文件,例如 blog.tag.gg.raw。打开cmd命令提示符,用cd命令进入镜像所在文件夹,例如:E:\VM\blog.tag.gg.raw\ 如果所示。

3、执行如下命令转换镜像格式。

qemu-img convert -f raw blog.tag.gg.raw -O vmdk blog.tag.gg.vmdk

说明:
  • raw:是转换前的格式。
  • blog.tag.gg.raw:是解压出来得镜像文件名也可以跟路径(如果在当前目录就不跟路径了)
  • vmdk:转换后的镜像格式。
  • blog.tag.gg.vmdk:设定转换后的镜像名或路径,(如果在当前目录就不跟路径了)
转换需要一点时间,稍等即可,转换后如图。

题外话:
如何将vmdk镜像转换为阿里云支持的raw镜像?

qemu-img convert -f vmdk tongxin.vmdk -O raw tongxin.raw


VMware虚拟机导入转换后的镜像
创建新虚拟机时主要注意如下几个选项设置,其他选项根据自己情况选择即可。

 

 

 

然后启动虚拟机即可。(启动可能需要时间比较长,耐心等待即可
用Ubuntu测试导入一切正常,不需要额外设置,但Centos7导入后启动报错dracut-initqueue: Warning: dracut-initqueue timeout - starting timeout scripts,请参考下面处理方法。

 
关于启动后问题:
Centos系统导入后启动后大概率会报错:“dracut-initqueue: Warning: dracut-initqueue timeout - starting timeout scripts.”
方法1:亲测可以使用。
在启动选择内核时,选择最后一个,如图。

在启动界面可能会显示如图,忽略等待一些时间即可(可能时间比较长,耐心等待,可能需要几分钟到几十分钟)
 

如果等待很久很久都无法启动一直显示上面截图界面,则请参考如下处理。
亲测:(三个方法,可以尝试方法1和方法3试下)
方法1:操作前建议将镜像文件复制一个保留,以免改错了。例如将要导入的镜像复制为了“blog.tag.gg-2.vmdk”(同时建议在vm中拍摄一个快照保留
在本地虚拟机中安装一个全新centos7系统(若已有可直接参考下面处理),然后在新的虚拟主机中增加一个硬盘,选择这个镜像,例如“blog.tag.gg-2.vmdk

 

 


增加后启动新的虚拟机,进入系统。
执行如下命令可以看到之前的镜像以数据盘方式挂载到了新的虚拟机中了。

fdisk -l

显示如下:

执行如下命令挂载sdb1这个硬盘(该硬盘是之前镜像)如果您的虚拟机不是sdb1,则以您的情况为准
挂载:

mount /dev/sdb1 /mnt

切换根目录到镜像系统

chroot /mnt

然后执行如下命令关闭上面截图启动显示“http://100.100.100.200/2016”的报错。

touch /etc/cloud/cloud-init.disabled
systemctl disable cloud-init

修改后关闭这个新的虚拟机,然后用修改后镜像blog.tag.gg-2.vmdk重新创建虚拟机,启动时选择如图即可启动了。(一定要将原来临时使用的新虚拟机关闭,不然文件在占用无法使用blog.tag.gg-2.vmdk这个镜像


方法2:测试了效果不明显。
通过网上查找了一下,说可以通过救援模式进入系统,执行如下命令重新生产引导信息在重启即可。进入救援模式后执行命令 ll /boot/ 查看如下信息,将 initramfs-3.10.0-1127.19.1.el7.x86_64.img 和 3.10.0-1127.19.1.el7.x86_64 更换为您系统自己的信息。
可以执行命令“uname -r”查看内核信息

dracut -f /boot/initramfs-3.10.0-1127.19.1.el7.x86_64.img  3.10.0-1127.19.1.el7.x86_64


方法3:
转载自网络,没有测试,但看上去应该可行,可以做好备份后测试下。(数据无价,务必做好vm快照)
拍摄快照
首先,还是需要选择第四项以确保正常进入系统。为了保证大家的数据,建议操作进行后续操作前使用VMware的快照功能对当前虚拟机进行拍照(相当于备份,出问题可以回滚)。
在虚拟机上右键,依次选择快照,拍摄快照,等待完成即可。


查看当前内核版本
进入系统后,执行如下命令

uname -a


可以看到我这里对应的版本号为3.10.0-1062.e17,如果细心一点的话会发现每次系统登录时这个版本号也会出现。
查询当前所有内核版本

rpm -qa|grep kernel


移除多余内核
注意上图红框中的内容,不要删除错了。(这里可以把两个内核放在一行用空格隔开写,为了清楚起见,这里将它们分开写)

    yum -y remove kernel-3.10.0-1062.9.1.el7.x86_64
    yum -y remove kernel-3.10.0-1127.18.2.el7.x86_64

修复

dracut -f

耐心等待命令执行完毕,重新启动虚拟机即可直接进入系统,无需手动选择最后一项。
 
技术小学生微信公众号
华为服务器
腾讯云服务器大促销。

声明:站长码字很辛苦啊,转载时请保留本声明及附带文章链接:https://blog.tag.gg/showinfo-3-36319-0.html
亲爱的:若该文章解决了您的问题,可否收藏+评论+分享呢?
上一篇:Ubuntu系统没有rc.local自启文件解决方法
下一篇:阿里云ECS自建SNAT实现无公网IP的ECS通过有公网IP的ECS访问网络