■ 上海 鄭智杰
編者按:筆者在對(duì)Linux虛擬機(jī)導(dǎo)入到一臺(tái)Windows PC主機(jī)的VMware Workstation上時(shí),出現(xiàn)一系列報(bào)錯(cuò),本文就將這些問(wèn)題及解決辦法一一列出,供讀者參考。
因業(yè)務(wù)需要,單位要將VMware vSphere上的一臺(tái)Linux虛擬機(jī)導(dǎo)入到一臺(tái)Windows PC主機(jī)的VMware Workstation上進(jìn)行使用。
虛擬化平臺(tái)為VMware vSphere 6.5,Windows PC為Windows 10,VMware Worksta tion為VMware Workstation 14 Pro,虛擬機(jī)為CentOS 7。
首先,通過(guò)vSphere Web Client選擇將虛擬機(jī)右鍵→模板→導(dǎo)出OVF模板。
其次,導(dǎo)出后會(huì)生成3個(gè)不同后綴的文件,如下所示。
*.vmdk文件:虛擬機(jī)數(shù)據(jù)硬盤(pán)文件
*.ovf文件:虛擬機(jī)配置文件包含CPU、內(nèi)存、硬盤(pán)控制器等配置信息
*.mf文件:vmdk及ovf文件的HASH校驗(yàn),檢查文件的完整性。
最后,依次選擇VMware Workstation→文件→打開(kāi)→OVF文件。
方案一:在報(bào)錯(cuò)提示上點(diǎn)擊“重試”,放松OVF合規(guī)性檢查強(qiáng)制導(dǎo)入OVF模板,直接忽略硬件合規(guī)性的檢查。
但不建議使用這個(gè)方案,因?yàn)闀?huì)產(chǎn)生其他問(wèn)題,下面我們會(huì)繼續(xù)討論。
方案二:修改*.ovf文件。
1.將硬盤(pán)繼承模式從SCSI改成STAT,修改配置文件中硬盤(pán)節(jié)點(diǎn)“rasd:Parent”從原來(lái)“3”改成“4”,因?yàn)閺纳舷挛目梢圆榈絊CSI控制器InstanceID=3,STAT控制器InstanceID=4。具體配置如圖2所示。
2.在OVF導(dǎo)出過(guò)程中會(huì)把原有的CD-ROM作為配置節(jié)點(diǎn)一并導(dǎo)出,所以可以在導(dǎo)出模板時(shí)移除CD-ROM硬件設(shè)備或是在導(dǎo)出后的配置文件中刪除CD/DVD Drive整個(gè)Item節(jié)點(diǎn)。如圖3所示。
圖1 未通過(guò)OVF規(guī)范一致性或虛擬機(jī)硬件合規(guī)性檢查
3.最后保存退出后再重新對(duì)*.ovf文件進(jìn)行SHA256 HASH校驗(yàn)并將HASH值更新到*.mf文件,老版本可能是SHA1 HASH值,具體請(qǐng)查看mf文件內(nèi)容。如圖4所示。
4.修改完成后再次導(dǎo)入并開(kāi)機(jī)正常。
查詢相關(guān)的材料,可以通過(guò)修改*.ovf中SCSI控制器的Resour ceSubType節(jié)點(diǎn)從“Vir tualSCSI”變更成“l(fā)si logicsas”,該屬性是指SCSI控制器的類型,而WorkStation 14 Pro沒(méi)有pvscsi控制器類型。保存變更后再次更新*.mf校驗(yàn)文件,即可導(dǎo)入成功。如圖5所示。
圖2 修改“rasd:Parent”從原來(lái)“3”改成“4”
圖3 刪除CD/DVD Drive整個(gè)Item節(jié)點(diǎn)
圖4 重新對(duì)*.ovf文件進(jìn)行校驗(yàn)并將HASH值更新到*.mf文件
圖5 修改ResourceSubType節(jié)點(diǎn)從“VirtualSCSI”變更成“l(fā)silogicsas”
圖6 導(dǎo)入成功后,虛擬機(jī)無(wú)法正常開(kāi)機(jī),系統(tǒng)界面報(bào)錯(cuò)
由于無(wú)法找到系統(tǒng)目錄,因此筆者猜測(cè)是修改了Resource SubType參數(shù)導(dǎo)致的。因?yàn)樽兏薙CSI控制器的類型后,導(dǎo)致系統(tǒng)無(wú)法識(shí)別硬盤(pán)控制器驅(qū)動(dòng),此時(shí)需要重啟進(jìn)入CentOS 7的rescue模式,先備份當(dāng)前系統(tǒng)內(nèi)核。虛擬機(jī)里面做過(guò)升級(jí),故有2個(gè)版本,均備份一下。
ls -ltrh/boot/ini tramfs-*
cp -iv/boot/ini tramfs-3.10.0-1127.el7.x86_64.img/boot/initramfs-3.10.0-1127.el7.x86_64.img.back
cp -iv/boot/ini tramfs-3.10.0-957.el7.x86_64.img/boot/initramfs-3.10.0-957.el7.x86_64.img.back
最后通過(guò)指令dracut-f重建內(nèi)核,此時(shí)驅(qū)動(dòng)程序會(huì)打包到新內(nèi)核里,重啟后開(kāi)機(jī)正常了。
為了更好的做虛擬機(jī)的遷移,應(yīng)盡量選擇將*.ovf文件中的硬盤(pán)模式修改掉。切勿貪圖方便,默認(rèn)“重試”而放寬虛擬機(jī)合規(guī)性檢查,此時(shí)會(huì)產(chǎn)生一系列問(wèn)題。