在解決虛機掛載U盤的過程中(已經處理了:VMware中的虛機如何掛載U盤),怎麼樣都無法載入U盤,故進行了一次操作直通操作的過程中,不小心把所有的儲存和控制器全部直通了,導致Esxi主機無法識別到自己的儲存資訊,然後就出現了後面的事情。進而所有的虛擬機器都無法看到,現將處理過程逐一給大家解析,同時也感謝幾位同事的前期測試。
 
什麼是VMware直通?
VT-d 、DirectPath I/O,通過 DirectPath I/O,虛擬機器可以使用 I/O 記憶體管理單元訪問平臺上的物理 PCI 功能,就是俗稱的虛擬化直通,簡單理解就是允許宿主機將某些硬體資源的管轄權直接移交給虛擬機器,虛擬機器會以直通獨佔的方式使用硬體,宿主機將不能再使用此硬體,利用效率幾乎等同於將硬體插到了虛擬機器的主機板擴充套件槽裡一樣,最實用的目的是避免了虛擬化平臺自身軟體層轉換帶來的效能下降。
 
為什麼無法連線到儲存還能開啟SSH和登入VM宿主機?
參考以為博主的見解,ESXi從硬碟讀取了程式和配置檔案,將其載入記憶體並執行起來,然後才生效了直通設定,失去了對硬碟的訪問能力,寫入能力,就是隻能看,不能改。改了也沒用,因為在記憶體裡面執行。
 
關於Esxi的一般有幾個分割槽?
沒有查閱過官方的資料,通過大量的百度得出以下結果,Esxi存在2個分割槽,分被為sda5和sda6(具體自己檢視,我們這是sdb5和sdb6),如果你要問我,我現在用的哪一個,抱歉,我也不知道。沒有細細研究。
 

理解以上問題,我們就進入正題了。
處理步驟如下:
1.啟動Fedora Live系統(其他Linux發行版也是一樣的,只要是桌面版基本都帶有預覽功能)
2.執行Terminal,接下來的shell命令都在這個終端裡執行
3.使用parted -l 命令確認ESXi儲存配置檔案的分割槽(通常是/dev/sda5也可能sda6)
4.掛載分割槽,要修改的檔案就在分割槽根目錄下
mount /dev/sda5 /mnt ls -l /mnt/state.tgz
5.建立一個資料夾用來做檔案修改
mkdir ~/test cd ~/test cp /mnt/state.tgz state.tgz
6.解壓縮state.tgz檔案
tar xf state.tgz tar xf local.tgz
ls -l ./etc/vmware/esx.conf
注意:ESXi 6.5之前版本的配置檔案為esxi.conf。
7.修改esx.conf檔案,將其中的passthru改為vmkernel即可取消直通設定
  • a) 使用下面的命令檢視ESXi系統中被設定為直通的裝置
grep -w passthru ./etc/vmware/esx.conf
  • b) 若你無法確定哪一項對應你的SATA控制器,就使用下面的命令將它們全部修改,日後再重新設定
sed -i 's/passthru/vmkernel/' ./etc/vmware/esx.conf
8.刪除舊的tgz檔案
rm local.tgz state.tgz
注意:務必要刪除舊的local.tgz和state.tgz檔案(前輩走過了路,要聽話),切不可圖省事直接建立壓縮包來“覆蓋”原有的tgz檔案!否則更新後的檔案將導致ESXi啟動失敗(Check failed: installing file ./local.tgz (sandbox is local.tgz)).
9.製作新的state.tgz檔案
tar czf local.tgz etc
chmod 755 local.tgz
tar czf state.tgz local.tgz
chmod 755 state.tgz
10.替換原有的state.tgz檔案
cp state.tgz /mnt/
11.重啟,大功告成
reboot
 
感謝一下幾位博主的貢獻,吸取的就是他們的精華