読者です 読者をやめる 読者になる 読者になる

harry’s memorandum

おれおれメモ

Domain-0経由で仮想マシンにVNCで接続してみる

普段はDomain-Uの中にVNCをインストールして接続しているのですが、Xen3.3.1が原因なのか、Domain-UのWindowsXPにUltraVNCで接続するとマウスのカーソルがうまく動かず使いにくくなってしまいました。仕方がないので、直接Domain-U経由で仮想マシンの外から直接VNCで接続してみることにしました。*1

Xen3.1以降はsxpファイルで管理されるのですが、virshの使い方やフォーマットに慣れていないので旧式の設定ファイルに変更します。*2


対象Domain-Uを停止します。(winxp_wolfがvncもっさりになったうちの windows xp)

# virsh destroy winxp_wolf

sxpのファイルの情報を確認。uuidやmacアドレスなどを覚えておく。

# virsh dominfo winxp_wolf
Id:             -
名前:         winxp_wolf
UUID:           31b42c35-2d7b-7649-f7e0-d832f2f9d429
OS タイプ:   hvm
状態:         シャットオフ
CPU:            1
CPU 時間:     1.5s
最大メモリー: 1048576 kB
使用メモリー: 1048576 kB
Autostart:      disable
# grep mac /var/lib/xend/domains/31b42c35-2d7b-7649-f7e0-d832f2f9d429/*
            (mac 00:16:36:02:89:4b)

sxpファイルをバックアップ

# cd /var/lib/xend/domains
# tar cvzf winxp.tgz ./31b42c35-2d7b-7649-f7e0-d832f2f9d429

対象Domain-Uの定義を削除

# virsh list --all
 Id 名前               状態
----------------------------------
  0 Domain-0             実行中
  1 centos_zappa         ブロックされています
  - winxp_wolf           シャットオフ

# virsh undefine winxp_wolf
ドメイン winxp_wolf の定義は削除されています

/etc/xen以下にxen3.0.x系までの定義を作成。先ほどのuuidとmacを忘れずに。

# vim /etc/xen/winxp_wolf.cfg
name = "winxp_wolf"
uuid = "31b42c35-2d7b-7649-f7e0-d832f2f9d429"
maxmem = 1024
memory = 1024
vcpus = 1
builder = "hvm"
kernel = "/usr/lib/xen/boot/hvmloader"
boot = "c"
pae = 1
acpi = 0
apic = 0
localtime = 1
on_poweroff = "destroy"
on_reboot = "restart"
on_crash = "restart"
device_model = "/usr/lib64/xen/bin/qemu-dm"
usbdevice = "tablet"
sdl = 0
vnc = 1  #=> VNCを有効に
vncunused = 0
vnclisten="0.0.0.0" #=> listenはオールカマー
keymap = "ja"
vncdisplay = "1" #=> vncdisplay番号が (vncポート5900 + vncdisplay)になるので1だと5901
disk = [ "file:/var/lib/xen/images/winxp_wolf.img,hda,w" ]
vif = [ "mac=00:16:36:02:89:4b,bridge=xenbr0,script=vif-bridge" ]
serial = "pty"

Domain-Uを起動

# xm create -f /etc/xen/winxp_wolf.cfg
Using config file "/etc/xen/winxp_wolf.cfg".
Started domain winxp_wolf

ポートスキャンしてvncのポートが開いているか確認

# nmap localhost -p 5900-5910

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2009-06-09 02:22 JST
Interesting ports on localhost (127.0.0.1):
PORT     STATE  SERVICE
5900/tcp open   vnc
5901/tcp closed vnc-1
5902/tcp closed vnc-2
5903/tcp closed vnc-3
5904/tcp closed unknown
5905/tcp closed unknown
5906/tcp closed unknown
5907/tcp closed unknown
5908/tcp closed unknown
5909/tcp closed unknown
5910/tcp closed unknown

VNC-Viewerを使って接続。hostname:{vncdisplay} の形式で接続します。Domain-0が 192.168.1.4 なら 192.168.1.4:1 とします。
f:id:dharry:20090609022804j:image

Thanks!

これでまた快適になりました。ありがとう vnc, virsh. あとmanpagerもありがとう。

*1:リモートデスクトップを使えというのはなしで。。

*2:virshとか覚えないと