zoukankan      html  css  js  c++  java
  • virsh console hangs at the escape character “^]”

    I am trying to kickstart a newly built VM. I am stuck with the following. Want to start with a console so that I can include username and other info for this VM:

       @vmhost02 ~]$ sudo virsh start --console testengine
       Domain testengine started
       Connected to domain testengine
       Escape character is ^]

    It hangs up in there and doesn't listen to any keys except "^]"

    1)

    You can try to edit /etc/default/grub in the guest, and make sure you have:

    GRUB_TERMINAL=serial
    GRUB_SERIAL_COMMAND="serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1"
    

    Then execute:

    # update-grub
    # reboot
    

    2)

    If that does not work, try to replace quiet with console=ttyS0 in GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub:

    GRUB_CMDLINE_LINUX_DEFAULT="... console=ttyS0"
    

    Then again:

    # update-grub
    # reboot


    3)

    You may still need to try:

    
    
    # systemctl enable serial-getty@ttyS0.service
    # systemctl start serial-getty@ttyS0.service
    # reboot

    4)

    You would need to define a tty to be used as a virtual console. In case you have access to your vm either using vnc or ssh create the following file

    vi /etc/init/ttyS0.conf
    

    The content should be something like

    start on stopped rc RUNLEVEL=[2345]
    stop on runlevel [!2345]
    
    respawn
    exec /sbin/getty -L 38400 ttyS0 vt102  # This is your term type vt102
    

    Save these settings and subsequently from your host machine

     virsh destroy [vm-name]; service libvirtd stop; service libvirtd start; virsh start [vm-name]
    

    I'm doing here a stop/start of libvirt, because it sometimes tend to not send a SIGTERM to libvirt.

    Finally try

    virsh console [vm-name]

    5)

    May be simpler than the solution of val0x00ff, you shall add the console=ttyS0 at the end of the kernel lines in the /boot/grub2/grub.cfg file of the VM (this is not done by default it seems):

       (vm)$> grubby --update-kernel=ALL --args="console=ttyS0"
       (vm)$> reboot
    

    Then virsh console shall work as expected

    6) 

    The virsh console command connects you to the virtual serial port in the guest. If you see nothing on this console this indicates that the guest OS has not setup anything on the serial port. Typically in Linux you'd want to make it run an 'agetty' process on the serial port. If you want to see kernel boot messages on this serial console you also need to edit the guest boot loader to add console=tty0 console=ttyS0 to the kernel command line - this should get boot messages on both the serial and graphical consoles.

    7)

    I think you should start a console (e.g. ttyS0 ). For example on my Debian 8 I enable it with systemd:

    systemctl enable getty@tty1.service
    

    Enable Serial Console on CentOS/RHEL 7

    On the virtual machine, add ‘console=ttyS0‘ at the end of the kernel lines in the /boot/grub2/grub.cfg file:

    grubby --update-kernel=ALL --args="console=ttyS0"
    

    Note: Alternatively, you can edit the /etc/default/grub file, add console=ttyS0 to the GRUB_CMDLINE_LINUX variable and execute

    grub2-mkconfig -o /boot/grub2/grub.cfg
    GRUB_TERMINAL=serial
    GRUB_SERIAL_COMMAND="serial –speed115200 –unit=0 –word=8 –parity=no –stop=1"
  • 相关阅读:
    PhpExcel笔记,phpExcel中文帮助手册
    mysql “group by ”与"order by"的研究--分类中最新的内容
    mysql中,主键与普通索引
    mysql性能优化-慢查询分析、优化索引和配置
    OpenSSL
    HAProxy
    Lighttpd
    Linux find/grep命令
    keepalived
    iptables
  • 原文地址:https://www.cnblogs.com/saryli/p/11828038.html
Copyright © 2011-2022 走看看