:::

Proxmox修復OpenVZ虛擬機器使用Ubuntu 12.04/10.04無法在console顯示的問題

image

Proxmox VE是虛擬機器運作環境的一種平台,其特色是支援了容器虛擬化技術OpenVZ。OpenVZ可以用較少(比起VMware之類的全虛擬化)的檔案建立一個高效能的獨立虛擬機器。然而OpenVZ並非是一種全虛擬化的技術,在運作各個系統時難免會遇上一些問題,需要手動修正。

這篇是講以OpenVZ建置Ubuntu 12.04/10.04虛擬機器時,修復console (控制台)無法順利使用的問題。問題的解法是來自於Proxmox的說明網頁,基本上照著它的作法並沒有錯,我只是增加一些額外的說明而已。


問題敘述:console卡死在apache2

20121221-230506

這次我在Proxmox VE 2.2版中安裝ubuntu-12.04-standard_12.04-1_i386.tar.gz樣板建立起Ubuntu虛擬機器。建置過程順利,但是卻無法順利進入console(控制台)。如上圖所示,畫面卡在以下訊息:

* Starting web server apache2                   [ OK ]

看監控表,虛擬機器是有正常運作,可是實際上卻不能使用,怎麼會這樣呢?我找了好久才發現原來這是Ubuntu的桌面無法配合console顯示的問題。

解決方法:調整Ubuntu的tty1.conf

首先,先登入Proxmox VE伺服器,我們從伺服器來進入Ubuntu虛擬機器修改。

查詢Ubuntu虛擬機器編號

你必須先知道Ubuntu虛擬機器的編號,你可以輸入vzlist指令來查詢:

proxmox-ve:~# vzlist
     CTID      NPROC STATUS    IP_ADDR         HOSTNAME
      108         23 running   192.168.9.20    ubuntu-1204.proxmox.com
      109         18 running   192.168.9.21    centos63-64.proxmox.com
      111         15 running   192.168.9.23    centos5-64.proxmox.com
      114         14 running   192.168.9.30    deb6-32.proxmox.com
      115         15 running   192.168.9.31    deb7-32.proxmox.com
      122         14 running   192.168.9.36    deb5.proxmox.com

從上面的例子中你可以看到ubuntu1204.proxmox.com的編號是108

進入Ubuntu並修改tty1.conf

接著輸入vzctl enter 108來進入Ubuntu虛擬機器:

proxmox-ve:~# vzctl enter 108

順利的話,你就可以看到以下訊息:

root@ubuntu-1204:

這表示你進到Ubuntu虛擬機器了,接著來修改tty1.conf吧。tty1.conf的檔案路徑位於「/etc/init/tty1.conf」:

root@ubuntu-1204:/# vim /etc/init/tty1.conf

你會看到以下畫面:

image

現在要把這個檔案的內容改成以下設定:

# tty1 - getty
#
# This service maintains a getty on tty1 from the point the system is
# started until it is shut down again.
 
start on stopped rc RUNLEVEL=[2345]
 
stop on runlevel [!2345]
 
respawn
exec /sbin/getty -8 38400 tty1

儲存該檔案,然後重新啟動Ubuntu伺服器吧。

root@ubuntu-1204:/# reboot

然後你就可以在console看到Ubuntu虛擬機器順利啟動了。

20121221-230123