Ubuntu
對無法啟動的 SmartOS VM 進行故障排除
我正在執行帶有 Ubuntu KVM 的 SmartOS 20130405T010449Z。Ubuntu 虛擬機健康執行了幾個月,然後在重新啟動物理硬體後,虛擬機在啟動時不再連接到網路,所以我無法通過 ssh 進入它來檢查它的健康狀況。
我可以登錄 SmartOS 並啟動 VM:
$ vmadm start [uuid]
驗證它是否正在執行:
$ vmadm list UUID TYPE RAM STATE ALIAS [uuid] KVM 10240 running steve
並ping它:
$ ping steve steve is alive
但是當我嘗試進入虛擬機的控制台時,命令只是永遠掛起:
$ vmadm console [uuid] [hangs forever]
當我嘗試從 SmartOS 內部 ssh 時得到相同的結果:
$ ssh steve [hangs forever]
我無法從網路上的其他機器 ssh,因為 Ubuntu VM 的 IP 地址永遠不會出現在網路上。
接下來我應該嘗試什麼來訪問這個虛擬機?
好的,我最終從 VM 中恢復了我想要的東西,所以為了後代,這就是我所做的:
首先,我更新了 SmartOS。起初我很猶豫,擔心數據失去,但升級完全沒有痛苦:將新版本放在新的 U 盤上,關機,更換 U 盤,然後重新啟動。
更新後
vmadm console
,ssh
連接到 VM 時仍會掛起,因此關鍵見解(我之前不知道)是通過 VNC 連接:root@smartos $ vmadm info [UUID] vnc { "vnc": { "host": "192.168.1.7", "port": 64762, "display": 58862 } } me@anotherMachine $ xtightvncviewer 192.168.1.7::64762
在那裡,問題立即顯現:VM 卡在啟動菜單中,等待選擇啟動選項。我選擇了預設選項,嘿,很快,VM 執行良好。
但是有一個問題:大概當我更新 SmartOS 時,我失去了“外部”網卡,因此虛擬機出現時沒有通往外部世界的通道。我不得不
/usbkey/config
在 SmartOS 中手動編輯並添加這些缺少的行:external_nic=[MAC address] external0_ip=192.168.1.20 external0_netmask=255.255.255.0 external0_gateway=192.168.1.1
然後將外部網卡添加到虛擬機:
root@smartos $ cat add_nic.json { "add_nics": [ { "physical": "net1", "index": 1, "nic_tag": "external", "mac": "[MAC address]", "ip": "192.168.1.8", "netmask": "255.255.255.0", "gateway": "192.168.1.1" } ] } root@smartos $ cat add_nic.json | vmadm update [UUID]
我不得不重新啟動 SmartOS 以獲取配置更改,然後 VM 提供了一個網路介面。
警告:
vmadm console
由於某種原因,仍然無法正常工作;它仍然無限期地掛起。但是,ssh steve
可以在 SmartOS 內部工作,我可以從網路上的其他機器 ssh 到 IP 地址。