| Summary: | virt-manager: unclear that kernel args require manually specifying a kernel path | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 6 | Reporter: | Min Zhan <mzhan> |
| Component: | virt-manager | Assignee: | Cole Robinson <crobinso> |
| Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | 6.1 | CC: | dyuan, llim, mzhan |
| Target Milestone: | rc | ||
| Target Release: | --- | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: |
No description necessary
|
Story Points: | --- |
| Clone Of: | Environment: | ||
| Last Closed: | 2011-12-06 16:07:27 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
The error is correct, qemu can only pass kernel arguments into the guest if you manually specify a kernel. I guess we can try and make that more clear in the UI. (In reply to comment #1) I think it is better to provide a sample for kernel arguments usage which just beside it. Or people may have confusion for this argument usage. Thanks I think 'kernel arguments' is a well understood term, and indeed the arguments you specified are valid. It's just that qemu can't do anything with them unless the user manually specified a kernel in the UI, which is the part that needs clarifying. I have copied all the kernel info from the guest grub.conf file and added the arguments "console=ttyS0,115200" in the kernel arguments line. Below is the sample for kernel arguments line of virt-manager:
kernel /vmlinuz-2.6.32-71.14.1.el6.x86_64 ro root=/dev/mapper/VolGroup-lv_root rd_LVM_LV=VolGroup/lv_root rd_LVM_LV=VolGroup/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto console=ttyS0,115200 rhgb quiet
But the guest still can not start successfully and error message is like this:
Error starting domain: internal error Process exited while reading console log output: char device redirected to /dev/pts/2
-append only allowed with -kernel option
Traceback (most recent call last):
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 45, in cb_wrapper
callback(asyncjob, *args, **kwargs)
File "/usr/share/virt-manager/virtManager/engine.py", line 956, in asyncfunc
vm.startup()
File "/usr/share/virt-manager/virtManager/domain.py", line 1048, in startup
self._backend.create()
File "/usr/lib64/python2.6/site-packages/libvirt.py", line 330, in create
if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
libvirtError: internal error Process exited while reading console log output: char device redirected to /dev/pts/2
-append only allowed with -kernel option
============================
Seem the above method (specify a kernel) is not ok. Can you help to clarify how to use kernel arguments? Thanks
Since RHEL 6.1 External Beta has begun, and this bug remains unresolved, it has been rejected as it is not proposed as exception or blocker. Red Hat invites you to ask your support representative to propose this request, if appropriate and relevant, in the next release of Red Hat Enterprise Linux. To use the kernel UI, you need to enter a path to a kernel on your local machine, not inside the guest. So something like /boot/vmlinuz-... Only when manually specifying a kernel to boot from can qemu actually use the kernel command line options (-append from the error message). Either way, deferring to 6.2 Fixed upstream: http://git.fedorahosted.org/git?p=virt-manager.git;a=commit;h=7e82d59b3eeb4427e96bf2b7617ec4c63a7eeebe We now explicitly error if the user tries setting initrd or kernel args without having specified a kernel path. Fixed in virt-manager-0.9.0-2.el6 Verified PASS with below environment: # uname -r 2.6.32-165.el6.x86_64 qemu-kvm-0.12.1.2-2.175.el6.x86_64 libvirt-0.9.4-1.el6.x86_64 virt-manager-0.9.0-5.el6.x86_64 Steps: 1. Launch virt-manager, select a existing guest,Divert to guest details page,Click Boot options. 2. Browse and Select path as "/var/lib/libvirt/boot/initrd.img" as Initrd path, Click Apply. Then an error display:Cannot set initrd without specifying a kernel path 3. Add kernel arguments, such as"console=ttyS0 method=http://download.englab.nay.redhat.com/pub/rhel/rel-eng/RHEL6.1-20110510.1/6.1/Server/x86_64/os/", Click Apply. Then an error display:Cannot set kernel arguments without specifying a kernel path. 4. Add kernel path, such as "/var/lib/libvirt/boot/vmlinuz", click Apply 5. Click Begin installation. # virsh console <guest> and finish the installation 6. After installation finish, shutdown the guest, Remove the three parameters: kernel path,initrd path, kernel arugment for this guest from virt-manager. Reboot the guest again. Guest can run well. Also in guest kernel you can find console=ttySO.
Technical note added. If any revisions are required, please edit the "Technical Notes" field
accordingly. All revisions will be proofread by the Engineering Content Services team.
New Contents:
No description necessary
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHBA-2011-1642.html |
Description of problem: In virt-manager, open a health guest which is in shutdown status, click Boot options-> Direct kernel boot, input kernel arguments as console=ttyS0,115200. Start the guest, an error display. Version-Release number of selected component (if applicable): # uname -a Linux dhcp-65-85.nay.redhat.com 2.6.32-120.el6.x86_64 #1 SMP Mon Mar 7 11:59:40 EST 2011 x86_64 x86_64 x86_64 GNU/Linux qemu-kvm-0.12.1.2-2.150.el6.x86_64 libvirt-0.8.7-11.el6.x86_64 virt-manager-0.8.6-3.el6.noarch How reproducible: Always Steps to Reproduce: 1. Open a shutdown guest detail page,click Boot options-> Direct kernel boot, input kernel arguments as console=ttyS0,115200. 2. Start the guest Actual results: An error display. Error starting domain: internal error Process exited while reading console log output: char device redirected to /dev/pts/2 -append only allowed with -kernel option Traceback (most recent call last): File "/usr/share/virt-manager/virtManager/asyncjob.py", line 45, in cb_wrapper callback(asyncjob, *args, **kwargs) File "/usr/share/virt-manager/virtManager/engine.py", line 956, in asyncfunc vm.startup() File "/usr/share/virt-manager/virtManager/domain.py", line 1048, in startup self._backend.create() File "/usr/lib64/python2.6/site-packages/libvirt.py", line 325, in create if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self) libvirtError: internal error Process exited while reading console log output: char device redirected to /dev/pts/2 -append only allowed with -kernel option Expected results: Guest can start successfully. And in guest kernel line will find console=ttyS0,115200 Additional info: Login the guest, add console=ttyS0,115200 into grub.conf, it can take effect and run well.