2021/02/08 更新:此文章在迁移过程中丢失了图片。
前阵子为了出国留学的体验,换上了软路由,使用的是 Proxmox VE + OpenWrt 的组合。总体上来说还是挺好用的,有点美中不足的是网卡不开直通的话只能跑到 40MB/s 左右的速度。据说 ESXi 性能会好点,于是就想尝试一下。
安装#
本来安装没啥好说的,做好安装 U 盘后按照步骤安装就行。不过因为我这台软路由的 SATA 有点特殊,并不是独立的 SATA 通道,而是走了一个类似 RAID 的控制器,安装遇到了下面这个问题:
最开始按照网上的说法,先用一个 mSATA 转 USB 把系统装在硬盘里,然后启动系统,禁用新版的 AHCI 驱动后把硬盘插回机器启动,然而结果似乎并不行。
之后我找到了网上一大佬做的带 RAID 驱动的 ESXi 安装包,问题依旧。
就这么试了整整一天,结果在 BIOS 里面把 SATA 的运行模式从 AHCI 调整到 Intel RST Premium 后,按照第一种方法安装,即可正常使用。附上禁用 AHCI 驱动的命令:
esxcli system module set --enabled=false --module=vmw_ahci
存储#
默认 ESXi 是需要单独定硬盘存储镜像和虚拟机的,这里可以使用命令在系统盘的空闲空间中直接建立存储空间。
首先在 ESXi 后台查看硬盘的标识。
括号里的字符串就是硬盘的标识。
然后使用命令查看硬盘分区:
partedUtil getptbl /vmfs/devices/disks/硬盘标识
会得到下面的输出:
gpt
14593 255 63 234441648
1 64 8191 C12A7328F81F11D2BA4B00A0C93EC93B systemPartition 128
5 8224 520191 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
6 520224 1032191 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
7 1032224 1257471 9D27538040AD11DBBF97000C2911D1B8 vmkDiagnostic 0
8 1257504 1843199 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
9 1843200 7086079 9D27538040AD11DBBF97000C2911D1B8 vmkDiagnostic 0
这里需要记住输出第二行的第四个数字: 234441648
,这个数字每个人都不一样。
然后执行下面命令重新分区:
partedUtil setptbl /vmfs/devices/disks/硬盘标识 gpt \
"1 64 8191 C12A7328F81F11D2BA4B00A0C93EC93B 128" \
"5 8224 520191 EBD0A0A2B9E5443387C068B6B72699C7 0" \
"6 520224 1032191 EBD0A0A2B9E5443387C068B6B72699C7 0" \
"7 1032224 1257471 9D27538040AD11DBBF97000C2911D1B8 0" \
"8 1257504 1843199 EBD0A0A2B9E5443387C068B6B72699C7 0" \
"9 1843200 7086079 9D27538040AD11DBBF97000C2911D1B8 0" \
"2 7086080 15472639 EBD0A0A2B9E5443387C068B6B72699C7 0" \
"3 15472640 X AA31E02A400F11DB9590000C2911D1B8 0"
最后一行的 X
需要替换为前面步骤得到的数字减去 48
后的结果。
之后使用命令创建存储即可:
vmkfstools -C vmfs6 -b 1m -S 存储名称 /vmfs/devices/disks/硬盘标识
镜像转换#
因为我自己编译的固件配置里没有生成 vmdk
文件,并且我也不想重新调整编译参数,所以这里使用 qemu-img
把 img
转换为 vmdk
文件:
qemu-img convert -f raw -O vmdk openwrt.img openwrt.vmdk
修改主机名#
ESXi 默认的主机名是 localhost.localdomain
,不好看也不好记,直接改掉:
esxcfg-advcfg -s 新主机名 /Misc/hostname
授权#
默认的试用授权每 60 天需要续一次,比较麻烦,直接用网上找到的码:
0U0QJ-FR1EP-KZQN9-J1C74-23P5R
问题#
因为一次非正常断电,再次打开虚拟机出现了这个错误:对象类型需要托管的 I/O
。
原因似乎是非正常断电导致镜像文件损坏,修复一下即可。
先执行:
vmkfstools -x check /path/to/your/machine.vmdk
如果提示「Disk needs repair.」,执行下面的命令修复:
vmkfstools -x repair /path/to/your/machine.vmdk
经测试转换磁盘到 thin 格式可以直接解决问题:
vmkfstools -i source.vmdk destination.vmdk -d thin
关于直通#
最开始我是把除了管理口外所有网卡全部直通给 OpenWrt。
直到后来我发现虚拟网卡同样可以跑满千兆网络,于是就把所有网卡直通取消,直接用虚拟网卡。