我使用以下命令创建了一个KVM虚拟机:
sudo ubuntu-vm-builder kvm oneiric \ --domain xpstage \ --dest xpstage \ --arch i386 \ --hostname xpstage \ --mem 1024 \ --user myuser --pass mypassword \ --bridge virbr0 \ --ip 192.168.1.50 --dns 8.8.8.8 \ --components main,universe,restricted \ --addpkg acpid --addpkg vim --addpkg openssh-server --addpkg avahi-daemon \ --libvirt qemu:///system ;
我能够启动VM,但我无法使用网络(ssh)和控制台连接到它.
为了启用控制台访问,我在VM定义文件中添加了一个控制台部分:
<domain type='kvm' id='10'> <name>xpstage</name> <uuid>1fbe45ca-655f-9de2-b552-6ed44b2fe4c2</uuid> <memory>1048576</memory> <currentMemory>1048576</currentMemory> <vcpu>1</vcpu> <os> <type arch='x86_64' machine='pc-0.14'>hvm</type> <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'> <driver name='qemu' type='qcow2'/> <source file='/home/darugar/VMs/xpstage/tmpB1Hu5k.qcow2'/> <target dev='hda' bus='ide'/> <alias name='ide0-0-0'/> <address type='drive' controller='0' bus='0' unit='0'/> </disk> <controller type='ide' index='0'> <alias name='ide0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/> </controller> <interface type='bridge'> <mac address='52:54:00:d1:6d:b8'/> <source bridge='virbr0'/> <target dev='vnet0'/> <model type='virtio'/> <alias name='net0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> <serial type='pty'> <source path='/dev/pts/3'/> <target port='0'/> <alias name='serial0'/> </serial> <console type='pty' tty='/dev/pts/3'> <source path='/dev/pts/3'/> <target type='serial' port='0'/> <alias name='serial0'/> </console> <input type='mouse' bus='ps2'/> <graphics type='vnc' port='5900' autoport='yes' listen='127.0.0.1'/> <video> <model type='cirrus' vram='9216' heads='1'/> <alias name='video0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> <memballoon model='virtio'> <alias name='balloon0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </memballoon> </devices> <seclabel type='dynamic' model='apparmor'> <label>libvirt-1fbe45ca-655f-9de2-b552-6ed44b2fe4c2</label> <imagelabel>libvirt-1fbe45ca-655f-9de2-b552-6ed44b2fe4c2</imagelabel> </seclabel> </domain>
但是,当我尝试通过控制台连接时,根本没有任何显示:
$virsh console xpstage Connected to domain xpstage Escape character is ^] $virsh ttyconsole xpstage /dev/pts/3
“virsh console”命令似乎连接,但除了“Escape character is ^]”之外没有显示任何内容.
请注意,我不是在寻找VNC或图形访问;我想要基于控制台的简单访问.
关于如何使这项工作的想法将不胜感激.
您必须先在来宾计算机中启用串行控制台才能进行连接.这里描述了正确的方法:
https://help.ubuntu.com/community/SerialConsoleHowto
最近的Ubuntu版本使用Upstart任务和服务,因此您应该将Upstart任务添加为/etc/init/ttyS0.conf,其中包含以下内容:
# ttyS0 - getty # # This service maintains a getty on ttyS0 from the point the system is # started until it is shut down again. start on stopped rc or RUNLEVEL=[2345] stop on runlevel [!2345] respawn exec /sbin/getty -L 115200 ttyS0 vt102
以这种方式启动它:
$sudo start ttyS0
之后,您应该能够从主机连接到串行控制台.连接后别忘了按Enter键.