在创建好虚拟机并且安装完系统后,可以通过
xl console <domain_name>
或者
xl console <domain_id>
来进入到虚拟机内部。然而,在实际测试中可以发现,直接利用xl console无法进入到虚拟机,而是一直卡在这里。此时按ctrl+]也可以退出。这是因为我们从宿主机进入虚拟机使用的是ttyS0,而虚拟机中最开始没有这个串口的配置。
环境:宿主机ubuntu 14.04,xen 4.6.3,虚拟机为ubuntu 14.04
1. 修改虚拟机配置文件
首先,我们要修改虚拟机的配置文件。在原来的虚拟机配置文件中加上这一行serial='pty'
。
builder = "hvm"
name = "ubuntu-hvm-1"
memory = 1024
vcpus = 1
serial='pty' #增加这个配置
vif = [ 'bridge=xenbr0' ]
disk = [ 'file:/mnt/xenserver/ubuntu-hvm/ubuntu-hvm-1/ubuntu-hvm.img,hda,w' ]
boot = "c"
sdl = 0
vnc = 1
vnclisten = "127.0.0.1"
vncdisplay = 0
vncpasswd = 123456789
stdvga=1
videoram = 64
xencons='tty'
console='ttyS0' #console设置为ttyS0
2. 虚拟机内部的设置
这里要在有界面的服务器上设置,或者提前配置好网络,利用ssh连进去
添加ttyS0的许可,允许root登陆:
echo "ttyS0" >> /etc/securetty
在/etc/init下从tty1.conf复制一份文件到ttyS0.conf,并修改内容:
# 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] and (
not-container or
container CONTAINER=lxc or
container CONTAINER=lxc-libvirt)
stop on runlevel [!2345]
respawn
exec /sbin/getty -8 38400 ttyS0
在/boot/grub/grub.cfg文件中,对menuentry 'Ubuntu'
下的linux /vmlinuz-xxx增加内容console=tty1 console=ttyS0,115200n8
:
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menu
entry_id_option 'gnulinux-simple-5678c869-ea75-4d67-984d-2028712ca5e2' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 6efd198c-2405-4e37-ba55-fbf28
c4a304c
else
search --no-floppy --fs-uuid --set=root 6efd198c-2405-4e37-ba55-fbf28c
4a304c
fi
linux /vmlinuz-4.4.0-142-generic root=/dev/mapper/ubuntu--hvm--vg-root
ro consoleblank=0 console=tty1 console=ttyS0,115200n8 #在这里增加内容
initrd /initrd.img-4.4.0-142-generic
}
上述步骤可能会在update-grub后失效,也可以在/etc/default/grub中修改配置:
GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8"
,我自己没有试过,可以看一下参考链接4试一下。
3. 设置生效
重启服务器。使设置生效。
后面应该就可以利用xl console进入虚拟机了,可能执行完命令后按一下回车,看到登录界面就说明设置生效了。
4. 参考链接
[1] https://blog.csdn.net/dobell/article/details/9003421
[2] https://blog.csdn.net/yzy1103203312/article/details/81292313
[3] https://blog.csdn.net/u013358112/article/details/79881727