vmware.log
文件重新构建 .vmx
文件的 Shell 脚本。 .vmx
丢失或丢失其配置,您可能希望重新构建虚拟机的 .vmx
文件,并恢复其内容。要使用从 vmware.log
文件解析信息的 Shell 脚本重新构建虚拟机的 .vmx
文件,请执行以下操作:
注意:
.vmx
文件。如果该操作有必要,这仅仅是可供尝试的一个选项。例如,如果在上次打开虚拟机电源后已更改其配置,则信息可能不会记录在 vmware.log
中,因而 .vmx
文件可能并不准确。
touch vmxrebuild.sh && chmod +x vmxrebuild.sh
VMXFILENAME=$(sed -n 's/^.*Config file: .*\/\(.\+\)$/\1/p' vmware.log)
echo -e "#\041/usr/bin/vmware" > ${VMXFILENAME}
echo '.encoding = "UTF-8"' >> ${VMXFILENAME}
sed -n '/DICT --- CONFIGURATION/,/DICT ---/ s/^.*DICT \+\(.\+\) = \(.\+\)$/\1 = "\2"/p' vmware.log >> ${VMXFILENAME}
注意:在 ESXi 6.5 中执行此脚本时,将最后一行更改为
sed -n '/DICT --- CONFIGURATION/,/DICT ---/ s/^.*DICT \+\(.\+\) = \(.\+\)$/\1 = \2/p' vmware.log >> ${VMXFILENAME}.sh
。 uuid.location
由于克隆或 Storage vMotion 等操作已更改,请运行以下命令获取新 UUID:NEWUUID=$(sed -n "s/^.*UUID: Writing uuid.location value: '\(.\+\)'.*$/\1/p" vmware.log)
vmware.log
文件。.vmx
文件中的旧 UUID 替换为新 UUID:if [ "${NEWUUID}" ] then sed -i "s/uuid.location = .*$/uuid.location = \"${NEWUUID}\"/" ${VMXFILENAME} fi
有关详细信息,请参见 Recovery of a lost or deleted virtual machine configuration file .vmx on an ESXi/ESX host (1002294)。