[CentOS-virt] What is the purpose setting console=hvc0 in the dom0 grub config?

George Dunlap

dunlapg at umich.edu
Wed May 17 09:39:37 UTC 2017


On Wed, May 17, 2017 at 4:26 AM, Jerry <jerryubi at gmail.com> wrote:
> Howdy,
>
> I recently went through a frustrating experience trying to get Xen 4 running
> on a CentOS 7 system.  After a fresh install, fully updating the system,
> rebooting, then trying to install Xen4CentOS it would fail to boot into the
> 4.9 kernel, sitting there with a blinking cursor indefinitely.
>
> I thought it was a failure with grub, but it turns out this was set in the
> grub config:
>
> GRUB_CMDLINE_LINUX_XEN_REPLACE_DEFAULT="console=hvc0 ..."
>
> So the kernel was loading successfully, but it was failing boot properly
> (hanging because it couldn't find the / file system, but that's a different
> story). Boot messages were not being displayed on my console because of the
> console=hvc0 setting, hampering the troubleshooting process.
>
> What is the purpose of setting console=hvc0?  I removed it so I could
> trouble shoot this problem, but I didn't re-add it and the system booted
> fine, Xen is working.  Is there something that depends on this?
>
> I always disable "rhgb quiet" on a fresh install because I don't like boot
> messages being hidden from me, and now this other thing does it.  I like
> details, I need the details, don't hide them from me.

I feel the same way about 'rhgb quiet'.  :-)

The 'console=hvc0' setting doesn't hide them from you, it just sends
them somewhere you're not looking.

On bare metal, the console output can typically go two places:
1. The screen
2. A serial port

For server applications serial has several advantages over the screen:
* You can capture the output to more easily report bugs
* If you're capturing it you can keep things that would have scrolled
off-screen, or been erased due to a reboot
* In a datacenter it's faster, more convenient, and cheaper than an
IP-based KVM switch

Xen has the same two options above; but when Linux is running as a
dom0 under Xen, there are three places to put it:
1. The screen
2. A serial line
3. Send it to Xen to put wherever Xen is putting it

#1 is easy, but #2 is tricky because Xen is likely to be already using
the serial port you want to use.

"console=hvc0" is #3.

What's your Xen command-line look like?  The default should be
"console=com1,tty", so Xen's output should show up both places (and so
should Linux's if it's set to console=hvc0).

 -George



More information about the CentOS-virt mailing list