▲虛擬平台管理術:忘記 ESXi 主機的 root 密碼該怎麼辦?
無論是哪一種作業系統,在企業網路中 IT 人員平日要管理的系統,從實體主機到虛擬主機,從 Intranet 到 Cloud 如此繁多,不同的系統可能都有不同的密碼規則,久而久之對於一些已經不常連線管理的系統,就可能忘記最重要的管理員密碼。而對於已經正在運行且擁有多個虛擬機器的 ESXi 主機,但卻忘記了唯一的 root 帳號密碼,此時不管是透過如圖 35 所示的 ESXi 主控台來登入,或是以 vSphere Client 來連線登入皆無法通過身份驗證,這時應怎麼辦呢?
圖 35 從 ESXi 主控台登入
當您嘗試以錯誤的密碼來登入 ESXi 主控台時會出現如圖 36 所示的驗證失敗訊息,此時若再嘗試以 vSphere Client 來連線登入也肯定無法成功的。這時候如果您的 ESXi 主機有事先納入了 vCenter Server 的管理範圍,其實是可以透過 vSphere Web Client 的登入來修改該主機的 root 密碼。但是如果沒有事先作 vCenter Server 的管理,那麼就需要透過接下來的做法來解決這個問題了。
圖 36 驗證失敗
原則上您只要準備一個有提供 LiveDVD 的 Linux 發行版本,然後透過它來開機啟動 ESXi 主機並且重置 root 帳戶密碼即可。在此筆者以 Ubuntu 15.04 安裝映像檔為例。當啟動至如圖 37 所示的 Welcome 頁面之後,請直接點選[Try Ubuntu]按鈕來啟動系統即可。
圖 37 Ubuntu 映像檔啟動選單
成功進入到 Ubuntu 桌面之後,請如圖 38 所示在桌面任何一個位置按下滑鼠右鍵點選[Open Terminal]。當然這操作也可從選單的搜尋功能中來開啟。
圖 38 Ubuntu 桌面右鍵選單
如圖 39 所示開啟 Terminal 命令提示列之後,我們必須先下達 sudo passwd root 來設定 Ubuntu 的預設 root 密碼,然後再下達 su – 命令來切換到 root 的執行身份,切換過程中會詢問剛剛所設定的 root 密碼。也唯有 root 權限才能夠繼續完成接下來的操作設定。
圖 39 設定 Ubuntu 管理員密碼
接下來請開啟 Ubuntu 的搜尋頁面,來找到並開啟如圖 40 所示的 GParted 磁碟管理工具,以便確認目前 ESXi 主機系統資料存放位置。在這個範例中就是 /dev/sda5 這個磁碟分割區。
圖 40 GParted 磁碟管理工具
接下來請回到 Terminal 命令提示列並下達 mount /dev/sda5 /mnt,來將這個系統分割區掛載至 /mnt 這個目錄。在執行 ls -l /mnt 便可以看到此分割區中的檔案清單,如圖 41 所示其中 state.tgz 便是我們需要修改的檔案,請下達 cp /mnt/state.tgz /tmp 命令來將它複製一份至 /tmp 的目錄之中。
圖 41 複製 ESXi 主機檔案
接著我們必須在 /tmp 的路徑下,如圖 42 所示透過 tar 命令將 state.tgz 解壓縮,然後將解壓縮出來的 local.tar 檔案,再執行一次解壓縮操作。這兩個連續動作都只要下達 tar -zxvf 命令參數即可達成。
圖 42 解壓縮檔案
完成 local.tar 檔案的解壓縮之後,請進入到 etc 目錄下。如圖 43 所示透過下達 ls 命令,便可以看到一個關於 Linux 系統專門用來儲存帳密資訊的 shadow 檔案。請使用任何文字編輯器來開啟它,在此筆者直接輸入 vi shadow。
圖 43 檢視 etc 目錄內容
如圖 44 所示便是 shadow 檔案的內容,其中帳戶的密碼部分都是經過編碼處理過的,因此對於 root 的帳戶而言,我們只能夠選擇將它的密碼欄位先清空,然後再透過 ESXi 主控台來變更其密碼即可。
圖 44 修改 shadow 設定檔
完成 shadow 檔案內容的修改之後,我們必須重新打包前面步驟中所解縮的兩個系統檔案。如圖 45 所示請切換至 /tmp 目錄下,然後下達 tar czf local.tgz etc 命令參數,來先將 etc 目錄打包成 local.tgz 檔案。最後再下達 tar czf state.tgz local.tgz 命令參數來將 local.tgz 檔案打包至 state.tgz。確認以上打包的順序無誤之後,請下達 cp state.tgz /mnt/ 命令參數,來將 state.tgz 檔案複製到 /mnt 路徑下。完成複製後請下達 umount /dev/sda5 來卸載此磁碟分割區。
圖 45 重新打包系統壓縮檔
重新啟動此 ESXi 主機再次進入到 ESXi 主控台。請按下[F2]鍵並以沒有密碼的 root 帳戶登入系統。在[System Customization]選單頁面中,請選擇進入[Configure Password]頁面,然後如圖 46 所示重新設定新密碼即可。按下[Enter]完成設定。終於解除忘記 root 密碼的窘境!
圖 46 修改 root 密碼
小提醒:為了避免其它系統也可能因發生忘記預設管理員密碼,而導致無法進行連線管理的窘境,建議您最好能夠為每一個系統都建立好第二組的管理員帳密,甚至於建立第三組、第四組給其他 IT 人員來管理使用,然後停用預設的管理員帳戶。如此一來不僅讓系統更安全,也不會發生無其他管理員帳戶可登入的情況。
結論
vSphere ESXi 6.0 的細微管理技巧當然不僅於此,因為光是藏在 vSphere Client 以及 vSphere Web Client 圖形介面之中的細微之處,就已經難以道盡了,更遑論其他藏在 vSphere CLI 以及 vSphere Power CLI 命令主控台中的各項技巧了,要是全部都讓您領悟與精通,那麼可以說無論 vSphere 的整體架構設計如何複雜,您都將可化繁為簡輕鬆應付每一天的維護作業,以及各式各樣突如其來的緊急狀況。還想知道更多有關於 vSphere 6.0 從 ESXi 主機到虛擬機器、網路、儲存設備以及安全控管的技巧嗎?未來筆者將會持續不定期的與大家來分享。
待續…
虛擬平台管理術:忘記 ESXi 主機的 root 密碼該怎麼辦?
https://www.facebook.com/hkitblog