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"
  • 相关阅读:
    基于flash的web视频对讲直播测试
    终于放弃Windows下丑陋的cmd
    直播推流兼容性问题追踪
    32位和64位dll判断
    H264编码参数的一些小细节
    cmake编译win下64位obs
    The certificate used to sign "XXX" has either expired or has been revoked
    记录一次Android交叉编译ffmpeg排查错误
    SDK "iphoneos" cannot be located
    av_interleaved_write_frame 网络不好的情况下返回较慢
  • 原文地址:https://www.cnblogs.com/saryli/p/11828038.html
Copyright © 2011-2022 走看看