前言
本文介绍的是将一台物理机上运行的Ubuntu系统迁移到ESXi虚拟机平台中。这个把物理机转变成虚拟机的过程被称为P2V,本文使用VMware官方的P2V工具VMwareConverter进行操作。阅读本文之前建议先了解ESXi的基本使用。所需的程序文件在文末有下载。
准备工作
- 把需要迁移的Linux开机,此处使用的是Ubuntu 22.04 LTS
- 运行ESXi,此处使用ESXi 8.0U2
- 你还需要一个Windows系统来运行VMwareConverter,此处使用Win11 23H2
- 确保上述3个系统之间彼此可以通过网络互相连接,最好临时关闭这3个系统的防火墙
迁移系统
首先在Windows安装VMwareConverter,安装时的选项全部默认即可。
如果你的Windows现在是深色模式的,建议先调成浅色,因为这个软件的深色模式适配有问题,有些地方会白底白字导致看不见内容。
安装完以后打开软件,长这个样子
点左上角的Convert machine,会弹出这个框,填法看图
弹这个无脑点yes即可,如果没弹先看看下面常见问题
这一步配置ESXi的信息,填法看图
众所周知咱们程序员看不见warning,无视!
给迁移后生成的虚拟机起个名字
选择迁移后的虚拟机存放的位置
在ESXi的存储选项中可以把物理硬盘格式化成VMFS格式
这些VMFS格式的硬盘就可以作为ESXi的可用存储,虚拟机必须放在这里面
这一步最好改一下IP,在迁移的过程中会在ESXi里创建一个临时的辅助虚拟机,也就是图上的Helper VM,给它分配一个目前局域网里没有被占用的IP,如果选自动的话你的网络环境里必须有DHCP服务器。
这一步点finish就会创建任务
然后这个任务就会出现在主界面中,右键选Go to Running Task可以查看迁移任务的进度。
常见问题
第一步报错无法远程连接Linux
是说要求目标Linux要允许无密码执行sudo才能继续。
到需要迁移的Linux上操作,编辑/etc/sudoers这个文件,在末尾添加
# User privilege specification
root ALL=(ALL:ALL) ALL
你的Linux账户名称 ALL=(ALL) NOPASSWD:ALL
然后保存,保存以后重新开一个终端,输入sudo ls,如果没提示你输入密码那就是生效了。
如果还是无法连接,确认一下你的Linux里SSH有没有正常运行。 示例里Ubuntu 22.04默认是不开SSH的,需要手动安装一个。
sudo apt install openssh-server
然后启动服务并配置开机自启动
sudo systemctl enable ssh
sudo systemctl start ssh
现在再回到Converter就可以连接了。
迁移进度卡1%,找不到helper的IP地址
错误提示是
Error: Unable to obtain the IP address of the destination virtual machine running the Converter helper server.
在finish前面那一步把IP改成手动配置,关掉IPv6,如果还不行,看下面参考资料第一篇文章。
软件下载
ESXi-123盘
VMwareConvertet-123盘