Bug 1027562

Summary: Kernel arguments "console=ttyS0" blocks direct kernel boot for rhel guest.
Product: Red Hat Enterprise Linux 7 Reporter: hyao <hyao>
Component: virt-managerAssignee: virt-mgr-maint
Status: CLOSED NOTABUG QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.0CC: codong, cwei, dyuan, hyao, lcui, mkletzan, mzhan, tzheng, zsong
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-11-12 10:48:00 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
the console output when installation stops none

Description hyao@redhat.com 2013-11-07 05:43:33 UTC
Created attachment 820886 [details]
the console output when installation stops

Description
On latest RHEL7 host, kernel arguments "console==ttySO" blocks rhel6.5 guest direct kernel boot.
Without the argument, direct kernel boot goes on smoothly. Add "console==ttySO" into grub.conf once the guest is installed, user is capable to visit the guest by #virsh console $guestname.  



Version:
kernel-3.10.0-33.el7.x86_64
libvirt-1.1.1-11.el7.x86_64
virt-manager-0.10.0-5.el7.noarch


How reproducible:
100%

Steps to Reproduce:
1. download the initrd and vmlinux to /var/lib/libvirt/boot.
#wget http://download.englab.nay.redhat.com/pub/rhel/rel-eng/RHEL6.5-20131024.1/6.5/Server/x86_64/os/images/pxeboot/initrd.img http://download.englab.nay.redhat.com/pub/rhel/rel-eng/RHEL6.5-20131024.1/6.5/Server/x86_64/os/images/pxeboot/vmlinuz
2. Create a new guest. Add the direct kernel boot options and kernel arguments "console=ttyS0" when customizing the configuration.
 #virsh dumpxml KER6
 <os>
    <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>
    <kernel>/var/lib/libvirt/boot/vmlinuz</kernel>
    <initrd>/var/lib/libvirt/boot/initrd.img</initrd>
    <cmdline>console=ttyS0</cmdline>
    <boot dev='hd'/>
    <boot dev='network'/>
    <bootmenu enable='yes'/>
  </os>


3. Begin installing the guest. and the installation doesn't proceed down by getting the following output in the guest:
probe edd (edd=off to disable) ...ok
 
4. Create a new guest. Add the direct kernel boot options but WITHOUT kernel arguments "console=ttyS0" when customizing the configuration.
 #virsh dumpxml KER6
 <os>
    <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>
    <kernel>/var/lib/libvirt/boot/vmlinuz</kernel>
    <initrd>/var/lib/libvirt/boot/initrd.img</initrd>
    <boot dev='hd'/>
    <boot dev='network'/>
    <bootmenu enable='yes'/>
  </os>
5. Begin installing the guest, get a health guest after the installation done. Add the kernel arguments "console=ttyS0" to /boot/grub/grub.conf in the guest.
Reboot the guest.

6.On the host, #virsh console KER6 to check the guest status. Get the guest boot process on the console and login in the guest correctly.

Actual results:
Kernel arguments "console=ttyS0" blocks direct kernel boot for rhel6.5 guest.


Expected results:
Kernel arguments "console=ttyS0" will not block direct kernel boot for rhel6.5 guest and it's added in the grub configure file.


Additional info:

Comment 1 Martin Kletzander 2013-11-07 10:03:10 UTC
Does this really depend on the host and not the guest?  Have you tried the same steps with rhel6.5 as host or fedora 19 for example?  Does this reproduce without virt-manager?  Without libvirt?  Does it not work with different guests?  And idfferent guest kernels?

Comment 2 hyao@redhat.com 2013-11-11 06:57:03 UTC
Hi Martin, 

I have rechecked the issue with RHEL6.4 and RHEL6.5 host, the bug also is reproduced. "console=ttyS0" will block the installation of guest(rhel6.4 and rhel7).  And the installation fails when create a guest by virsh or virt-install. 


I use virsh command #virsh create guest by xml containing following lines:
...
<os>
    <type arch='x86_64' machine='rhel6.4.0'>hvm</type>
    <kernel>/var/lib/libvirt/boot/rhel65/vmlinuz</kernel>
    <initrd>/var/lib/libvirt/boot/rhel65/initrd.img</initrd>
    <cmdline>console=ttyS0</cmdline>
    <boot dev='hd'/>
  </os>
...

The installation stops by "probe edd (edd=off to disable) ...ok"

I use virt-install to install the guest: 
# virt-install --name hello --ram 512 --disk /var/lib/libvirt/images/ker.img --boot kernel=/var/lib/libvirt/boot/vmlinuz,initrd=/var/lib/libvirt/boot/initrd.img,kernel_args="console=ttyS0"

The installation stops by "probe edd (edd=off to disable) ...ok"

Comment 3 Martin Kletzander 2013-11-11 08:59:11 UTC
The kernel outputs everything to the console given by the parameter, after that, the installation starts and anaconda uses the same console for installation (You can see that by doing 'virsh console hello'.  I won't try to elaborate on whether this is intended or not, but kernel/anaconda is the right place to ask.  Please move this bug to the component on which you think the problem is.

Comment 4 hyao@redhat.com 2013-11-12 10:48:00 UTC
Use virsh console $guestname, I can install the guest on the console of the host. 
So close it as notabug.