Chuck Anderson
2012-Jan-06 00:10 UTC
[Libguestfs] virt-v2v should add kernel console= to Xen->KVM converted guest's grub.conf
I'm using virt-v2v (0.8.3 currently) on EL6 to convert Xen guests to KVM. I see how virt-v2v converts any existing references to xvc0 and hvc0 serial console devices in /etc/inittab, /etc/securetty, and grub.conf. However, my Xen DomU grub.conf's don't have any mention of console= on the kernel lines, because the Xen DomU kernel defaults to using the correct xvc0 console. As a result, after conversion console messages don't go to the virsh console, although a getty does get started and securetty is updated correctly. I'd like to propose that the converter add such kernel consolearguments if it doesn't find any to replace. Here is the current code: # Update any kernel console lines foreach my $augpath ($g->aug_match("/files$grub_conf/title/kernel/console")) { my $console = $g->aug_get($augpath); if ($console =~ /\b(x|h)vc0\b/) { $console =~ s/\b(x|h)vc0\b/ttyS0/g; $g->aug_set($augpath, $console); } } I'd imagine that if no matches are found, it should use augeas to set console=ttyS0,115200 on all matching kernel lines, but I'm not familiar enough with augeas nor the perl bindings to attempt this. I don't see where the augeas bindings are being imported into virt-v2v, so I'm not sure where to find the documentation for whatever bindings are being used (the regular perl bindings as mentioned on upstream augeas website don't appear anywhere on my system). I'd appreciate any pointers to documentation so I can attempt this myself, or even better, a quick patch to try out if this seems like a good idea. Thanks! (A different, but related problem, is that EL5.7 anaconda apparently isn't smart enough to add console= to grub.conf even though anaconda itself was booted with a console= parameter via virt-install. So after the install completes, virsh console becomes silent, and the new install doesn't get a getty or updated securetty on it. I'm investigating kickstart workarounds to manually add console= in this case.)
Chuck Anderson
2012-Jan-06 23:48 UTC
[Libguestfs] virt-v2v should add kernel console= to Xen->KVM converted guest's grub.conf
On Thu, Jan 05, 2012 at 07:10:38PM -0500, Chuck Anderson wrote:> I'd like to propose that the converter add such kernel console> arguments if it doesn't find any to replace.I figured out something that works. This change will continue to update any existing console arguments that mention xvc0 or hvc0 and modify those references to ttyS0. Additionally, this change will add a new console=ttyS0,115200 to any kernel lines that don't have any existing console argument. --- RedHat.pm.orig 2011-12-08 18:09:16.000000000 -0500 +++ RedHat.pm 2012-01-06 18:38:33.224309303 -0500 @@ -383,6 +383,15 @@ } } + # Add console to any kernel line that doesn't have one + foreach my $augpath + ($g->aug_match("/files$grub_conf/title[count(kernel/console) = 0]")) + { + my $console_augpath = "$augpath/kernel/console"; + my $console = "ttyS0,115200"; + $g->aug_set($console_augpath, $console); + } + eval { $g->aug_save(); }; Would you consider taking such a patch? Thanks, Chuck