Download
ISO
https://customerconnect.vmware.com/en/downloads/details?downloadGroup=ESXI70U3C&productId=974&rPId=84824 下载 VMware ESXi
刷入到 U 盘
macOS
diskutil list
# 格式化 USB 存储设备
diskutil eraseDisk MS-DOS "ESXI" MBR /dev/disk2
# 卸载分区
diskutil unmountDisk /dev/disk5
sudo fdisk -e /dev/disk2
diskutil mount /dev/disk2s1
hdiutil mount ~/VMware-VMvisor-Installer-7.0U3n-21930508.x86_64
ref
集成第三方驱动
Refer to https://swsmile.info/post/Wmware-EXSI-add-network-adapter-driver/
不设置网卡直通
除了被设置为被用于管理ESXI的那个物理网络接口外,对于其他的每个物理网络接口,都新建一个 standard virtual switch,且
在我的情况中,
- vmnic3 作为 ESXI 的管理接口,对应物理接口 ETH3
- Vmnic0 新建了一个名为 1 的standard virtual switch,对应物理接口 ETH2
- Vmnic1 新建了一个名为 2 的standard virtual switch,对应物理接口 ETH0
- Vmnic2 新建了一个名为 3 的standard virtual switch,对应物理接口 ETH1
于 OpenWrt LAN
系列端口组开启了混杂模式,具备监控虚拟网络流量的能力,当其中某个虚拟交换机收到 MAC 帧时,会将此帧转发复制到 OpenWrt br-lan
(用于 LAN 口设备桥接的虚拟网络,使多个虚拟或物理网络接口的行为好像他们仅有一个网络接口一样),然后再由内部网桥系统决定如何处理(转发到某个 LAN 口还是路由至 WAN 上)。如果 OpenWrt LAN 端口组不开启混杂模式,由于虚拟交换机不具备 MAC 地址学习能力,将丢弃需要转发的 MAC 帧,OpenWrt 将无法接收和转发数据流量。
进一步解释 混杂模式
作用:因为虚拟交换机不像传统物理交换机,它不具备 MAC 学习功能力:vSwitch
所有接入端口的设备(VMs)是预先配置好的,虚拟交换机它知道这些接入端口组的接口的 MAC 地址,而不需要根据数据包的源 MAC 来更新 MAC 与 PORT 的映射。因此,在混杂模式未开启情况下,如果目标 MAC 不属于该虚拟交换机,那么虚拟交换机将丢弃该数据包。虚拟交换机或端口组开启混杂模式后,所属的 PORT 将收到虚拟交换机上 VLAN 策略所允许的所有流量。这种特性可用来监控虚拟网络流量。
再对每一个 virtual switch都分别创建一个 port group,则有
额外再添加Network Adapter 到虚拟机中
安装OpenWrt
from https://downloads.openwrt.org/releases/21.02.2/targets/x86/generic/ 下载 generic-squashfs-combined.img.gz
,并解压出其中的 .img。
- combined:文件系统+内核;
- rootfd:只有文件系统,无内核;
- vmlinuz:只是内核,没有文件系统。
生成镜像
Windows下
可以直接使用StarWind V2V Converte,将 img 文件转换为 vmdk 文件(ESXi 虚拟机硬盘文件),通过Local file
- 选择此前下载好的镜像文件 - VMware ESX server image
- Next >
- Next >
,最后生成两个 ESXi 专用镜像文件:
- openwrt-21.02.2-x86-generic-generic-squashfs-combined-esxi7.vmdk
- openwrt-21.02.2-x86-generic-generic-squashfs-combined-esxi7-flat.vmdk
masOS下
$ gunzip openwrt-21.02.2-x86-generic-generic-ext4-combined.img.gz
使用qemu-img工具,可以将.img镜像文件转换为.vmdk VMWare磁盘文件。
macOS 安装qemu-img
$ brew install qemu
使用qemu-img命令来转换img文件为.vmdk文件
打开命令行,然后输入
qemu-img convert -f raw -O vmdk <OpenWrt固件镜像>.img <目标新文件名>.vmdk
# 例如
qemu-img convert -f raw -O vmdk openwrt-21.02.2-x86-generic-generic-ext4-combined.img openwrt-21.02.2-x86-generic-generic-ext4-combined.vmdk
注意
- qmeu-img只能将.img文件转换为VMWare Player、VMWare Fushion或者VMware Workstation支持的磁盘文件格式。
- 对于ESXi,直接使用的话,是会报错的,需要按照以下步骤再次转换。
进入 ESXi 系统的 Web 管理页面,点击 存储
- 数据存储浏览器
- 创建目录
,创建一个存储 OpenWrt 镜像和其它配置文件的目录,这里我们将其命名为 OpenWrt
打开数据存储浏览器,把刚刚转换好的.vmdk文件上传到数据存储空间。
路径是 sw_datastore/OpenWrt/openwrt-21.02.2-x86-generic-generic-ext4-combined.vmdk
用SSH连接ESXi服务器,并找到上传的OpenWrt的.vmdk文件
首先,如果没有开启ssh服务,找到 导航器->主机->管理->服务->TSM-SSH,如果是已停止状态,则启动TSM-SSH服务。
ssh <用户>@<ESXi主机>
找到刚刚上传的OpenWrt的.vmdk文件
$ ssh root@192.168.1.11
[root@localhost:~] cd vmfs/volumes/sw_datastore/
.sdd.sf/ OpenWrt/
[root@localhost:~] cd vmfs/volumes/sw_datastore/OpenWrt/
# 使用vmkfstools将不支持的.vmdk转换为ESXi支持的.vmdk格式
[root@localhost:/vmfs/volumes/62371dc9-d12b4174-4dab-60beb4007eae] vmkfstools -i openwrt-21.02.2-x86-generic-generic-ext4-combined.vmdk openwrt-21.02.2-x86-generic-generic-ext4-combined-esxi7.vmdk
Destination disk format: VMFS zeroedthick
Cloning disk 'openwrt-21.02.2-x86-generic-generic-ext4-combined.vmdk'...
Clone: 100% done.
[root@localhost:/vmfs/volumes/62371dc9-d12b4174-4dab-60beb4007eae] ls
openwrt-21.02.2-x86-generic-generic-ext4-combined-esxi7-flat.vmdk
openwrt-21.02.2-x86-generic-generic-ext4-combined.vmdk
openwrt-21.02.2-x86-generic-generic-ext4-combined-esxi7.vmdk
# 备份一下这两个文件到本地电脑
注意,如果不是用ESXi虚拟机,而是VMWare Player等软件,则不需进行这一步。
创建虚拟机
添加刚才生成的 openwrt-21.02.2-x86-generic-generic-ext4-combined-esxi7.vmdk
文件作为Existing hard disk
- 删除默认给配的硬盘1
- CD/DVD驱动器1
添加虚拟网卡
如果需要的话,添加直通网卡
完成创建,就可以打开电源了。
等控制台不再刷新以后,按下回车,如果出现下边的画面,表示安装成功了。
WAN的防火墙设置为WAN
Ref
Troubleshoot
虚拟机中无法监测到任何网卡
在创建OpenWrt 虚拟机时,已经添加了两个 Network Adapter,但是进入虚拟机后,用ip link
并没有任何网卡。
解决:
修改 Network Adapter 的 Adapter Type 为 E1000,重启虚拟机后,即可在虚拟机中正确识别到网卡
ESXI 设置
自动启动
维护
检查坏道
esxcli storage core device list
允许通过 public key SSH 访问 ESXi
echo "<public key>"" >> /usr/lib/vmware/openssh/authorized_keys
Reference
- https://www.virtuallyghetto.com/2016/11/usb-3-0-ethernet-adapter-nic-driver-for-esxi-6-5.html
- https://github.com/VFrontDe/ESXi-Customizer-PS
- https://www.virten.net/2021/03/esxi-7-0-update-2-on-intel-nuc/
- https://www.qemu.org/download/
- https://openwrt.org/docs/guide-user/virtualization/vmware
- https://linhongbo.com/posts/openwrt-on-esxi/