Red Hat Bugzilla – Bug 231428
extra kernel command line parameters in xen config file don't get passed to guest kernels
Last modified: 2007-11-30 17:07:42 EST
Description of problem:
If I provide some command-line paramters in my xen guest config file (in
/etc/xen/hostname, for instance), they don't show up in the guest kernel's
I traced through as much of the python as I could (given I'm not a python
hacker) and it looks very much like the contents of 'extra' aren't making it to
the boot loader at all. In fact, the pygrub boot loader isn't interested in any
extra parameters anyhow - it only uses what's in the guest's /etc/grub.conf
file, which it extracts from the boot partition in the guest's disk image.
Version-Release number of selected component (if applicable):
# rpm -q xen
# rpm -q kernel
# uname -a
Linux b 2.6.18-8.el5xen #1 SMP Fri Jan 26 14:42:21 EST 2007 i686 i686 i386 GNU/Linux
Steps to Reproduce:
1. create a xen guest using the virt-manager wizard.
2. edit the /etc/xen config file it creates
3. add thew following to the end of the file:
extra = "some_param=x"
4. boot the domain
5. check /proc/cmdline - the "some_param=x" isn't there.
/proc/cmdline contains exactly what the guest domain's /etc/grub.conf contained
for the kernel entry.
Expecting the contents of the extra variable from the config file to show up in
the /proc/cmdline contents.
# rpm -q redhat-release
The Xen guests are all RHEL4u5 (also beta), tho I don't expect this is going to
have an impact.
Please attach the config file you are using from /etc/xen, and the log file
/var/log/xen/xend.log after attempting to start the guest.
Created attachment 149655 [details]
xen guest domain config file
shows the use of the 'extra' parameter to try and pass extra kernel command
options to the guest.
Created attachment 149656 [details]
xend log from /var/log/xen/xend.log
Logs attached. Lemmy know if you need any more.
Your guest config file is setup to start the guest using a bootloader - pygrub.
If using the bootloader, then the 'kernel', 'ramdisk' and 'extra' config files
parameters are irrelevant - all this info is extracted by pygrub.
For example, the xend.log shows it pull out the following kernel, initrd &
command line args:
[2007-03-09 10:03:09 xend 2872] DEBUG (image:200) image =
[2007-03-09 10:03:09 xend 2872] DEBUG (image:201) store_evtchn = 1
[2007-03-09 10:03:09 xend 2872] DEBUG (image:202) console_evtchn = 2
[2007-03-09 10:03:09 xend 2872] DEBUG (image:203) cmdline = ro
root=/dev/VolGroup00/LogVol00 rhgb quiet
[2007-03-09 10:03:09 xend 2872] DEBUG (image:204) ramdisk =
So, if you need to pass boot command line parameters, they need to be added to
/etc/grub.conf inside the guest OS image itself.
My bad - I read the docs to mean that the extra stuff would get passed to the
boot loader - which would be a really useful feature, btw - in case you needed
to do something unusual to the guest - the pygrub bootloader doesn't hang around
for long waiting for user input ... at least not long enough for me to kick up a
VNC window over my VPN and catch it before it boots...
Another feature for another day.
Thanks & sorry for the false alarm.