完整的步骤如下:
启动Fedora Live系统(其他Linux发行版也是一样的,只要是桌面版基本都带有预览功能)
运行Terminal,接下来的shell命令都在这个终端里执行
使用parted -l命令确认ESXi保存配置文件的分区(通常是/dev/sda5)
挂载分区,要修改的文件就在分区根目录下
mount /dev/sda5 /mnt
ls -l /mnt/state.tgz
创建一个文件夹用来做文件修改
mkdir ~/workspace && cd !$
cp /mnt/state.tgz .
解压缩state.tgz文件
tar xf state.tgz
tar xf local.tgz
ls -l ./etc/vmware/esx.conf
注意:ESXi 6.5之前版本的配置文件为esxi.conf。
修改esx.conf文件,将其中的passthru改为vmkernel即可取消直通设置
a) 使用下面的命令查看ESXi系统中被设置为直通的设备
grep -w passthru ./etc/vmware/esx.conf
b) 若你无法确定哪一项对应你的SATA控制器,就使用下面的命令将它们全部修改,日后再重新设置
sed -i 's/passthru/vmkernel/' ./etc/vmware/esx.conf
删除旧的tgz文件
rm local.tgz state.tgz
注意:务必要删除旧的local.tgz和state.tgz文件,切不可图省事直接创建压缩包来“覆盖”原有的tgz文件!否则更新后的文件将导致ESXi启动失败(Check failed: installing file ./local.tgz (sandbox is local.tgz)),这是我踩的另一个坑!
制作新的state.tgz文件
tar czf local.tgz etc/
chmod 755 local.tgz
tar czf state.tgz local.tgz
chmod 755 state.tgz
替换原有的state.tgz文件
cp -f ./state.tgz /mnt/
注意:如果要备份之前的state.tgz文件,需要创建一个文件夹才可以:mkdir -p /mnt/backup && cp /mnt/state.tgz /mnt/backup/
重启服务器
reboot