流程: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”
增加后启动新的虚拟机,进入系统。
执行如下命令可以看到之前的镜像以数据盘方式挂载到了新的虚拟机中了。
显示如下: 执行如下命令挂载sdb1这个硬盘(该硬盘是之前镜像)如果您的虚拟机不是sdb1,则以您的情况为准。fdisk -l
挂载:
切换根目录到镜像系统mount /dev/sdb1 /mnt
然后执行如下命令关闭上面截图启动显示“http://100.100.100.200/2016”的报错。chroot /mnt
修改后关闭这个新的虚拟机,然后用修改后镜像blog.tag.gg-2.vmdk重新创建虚拟机,启动时选择如图即可启动了。(一定要将原来临时使用的新虚拟机关闭,不然文件在占用无法使用blog.tag.gg-2.vmdk这个镜像)touch /etc/cloud/cloud-init.disabled
systemctl disable cloud-init
方法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
亲爱的:若该文章解决了您的问题,可否收藏+评论+分享呢?
文章评论 本文章有个评论