質問: eucalyptusを介してイメージが起動されたときに、virshを使用してkvmインスタンスに接続しますか? ubuntu 10.04で eucalyptus を使用してプライベートクラウドをセットアップしています。 vmインスタンスにsshで接続できない場合があり、vmインスタンスのコンソールに直接接続できるようにしたい。ただし、デフォルトでは、これはvirshでは機能しないようです。$ sudo virsh -c qemu:///system console i-486b085e no console available for domain たとえば、eucalyptusがlibvirtに渡されるxmlファイルを生成する方法を変更することによって、これを有効にする方法はありますか?eucalyptusが生成するlibvirt.xmlファイルは次のとおりです。$ cat /var/lib/eucalyptus/instances/admin/i-486b085e/libvirt.xml <domain type='kvm'> <name>i-486b085e</name> <os> <type>hvm</type> <kernel>/var/lib/eucalyptus/instances//admin/i-486b085e/kernel</kernel> <initrd>/var/lib/eucalyptus/instances//admin/i-486b085e/ramdisk</initrd> <cmdline>root=/dev/sda1 console=ttys0</cmdline> </os> <features> <acpi/> </features> <memory>262144</memory> <vcpu>1</vcpu> <devices> <disk type='file'> <source file='/var/lib/eucalyptus/instances//admin/i-486b085e/disk'/> <target dev='sda'/> </disk> <interface type='bridge'> <source bridge='eucabr10'/> <mac address='d0:0d:48:6b:08:5e'/> <model type='e1000'/> </interface> <serial type="file"> <source path='/var/lib/eucalyptus/instances//admin/i-486b085e/console.log'/> <target port='1'/> </serial> </devices> </domain> virshdumpxmlの出力は次のとおりです。$ sudo virsh dumpxml i-486b085e <domain type='kvm' id='3'> <name>i-486b085e</name> <uuid>3b762376-4de1-f6ac-7327-9df520fa4862</uuid> <memory>262144</memory> <currentmemory>262144</currentmemory> <vcpu>1</vcpu> <os> <type arch='x86_64' machine='pc-0.12'>hvm</type> <kernel>/var/lib/eucalyptus/instances//admin/i-486b085e/kernel</kernel> <initrd>/var/lib/eucalyptus/instances//admin/i-486b085e/ramdisk</initrd> <cmdline>root=/dev/sda1 console=ttys0</cmdline> <boot dev='hd'/> </os> <features> <acpi/> </features> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>destroy</on_crash> <devices> <emulator>/usr/bin/kvm</emulator> <disk type='file' device='disk'> <source file='/var/lib/eucalyptus/instances//admin/i-486b085e/disk'/> <target dev='sda' bus='scsi'/> </disk> <interface type='bridge'> <mac address='d0:0d:48:6b:08:5e'/> <source bridge='eucabr10'/> <target dev='vnet0'/> <model type='e1000'/> </interface> <serial type='file'> <source path='/var/lib/eucalyptus/instances//admin/i-486b085e/console.log'/> <target port='0'/> </serial> <console type='file'> <source path='/var/lib/eucalyptus/instances//admin/i-486b085e/console.log'/> <target port='0'/> </console> </devices> <seclabel type='dynamic' model='apparmor'> <label>libvirt-3b762376-4de1-f6ac-7327-9df520fa4862</label> <imagelabel>libvirt-3b762376-4de1-f6ac-7327-9df520fa4862</imagelabel> </seclabel> </domain> 呼び出されることになった完全なkvmコマンドラインは次のとおりです。/usr/bin/kvm -s -m pc-0.12 -enable-kvm -m 256 -smp 1 -name i-486b085e -uuid 3b762376-4de1-f6ac-7327-9df520fa4862 -nographic -chardev socket,id=monitor,path=/var/lib/libvirt/qemu/i-486b085e.monitor,server,nowait -monitor chardev:monitor -boot c -kernel /var/lib/eucalyptus/instances//admin/i-486b085e/kernel -initrd /var/lib/eucalyptus/instances//admin/i-486b085e/ramdisk -append root=/dev/sda1 console=ttys0 -drive file=/var/lib/eucalyptus/instances//admin/i-486b085e/disk,if=scsi,index=0,boot=on -net nic,macaddr=d0:0d:48:6b:08:5e,vlan=0,model=e1000,name=e1000.0 -net tap,fd=55,vlan=0,name=tap.0 -chardev file,id=serial0,path=/var/lib/eucalyptus/instances//admin/i-486b085e/console.log -serial chardev:serial0 -parallel none -usb 注:質問の移行はまだサポートされていないため、 serverfault からクロスポストされています。
回答: 私はそれを理解しました.../usr/share/eucalyptus/gen_kvm_libvirt_xmlファイルを編集する必要があります。差分は次のとおりです。--- /usr/share/eucalyptus/gen_kvm_libvirt_xml.bak 2010-09-28 14:54:20.259266161 -0400 +++ /usr/share/eucalyptus/gen_kvm_libvirt_xml 2010-09-28 15:01:25.269265897 -0400 @@ -109,9 +109,9 @@ <mac address='privmacaddr'/> <model type='e1000'/> </interface> - <serial type="file"> - <source path='basepath/console.log'/> - <target port='1'/> + <serial type='pty'> + <source path='/dev/pts/2'/> + <target port='0'/> </serial> </devices> </domain> (serverfaultでも回答済み)。