A few months ago, my company installed Fedora Linux on Microsoft Virtual Server (similar to Microsoft Virtual PC and VMWare) to handle some front-end caching for a couple of our busy websites. Fedora happens to be one of the Operating Systems that is compatible with Microsoft Virtual Server otherwise I would likely have opted for Ubuntu and/or a BSD derivative. In hindsight, considering how unstable Fedora is when it comes to doing simple tasks like being a web server, BSD would likely have been a better choice… but today’s installment isn’t a rant. (more after the jump)
The graphical user interface (GUI) for Fedora worked properly – no real issues but the console, while booting would always be garbled as follows:
Apparently this issue is caused by the boot loader, GRUB, which displays a splash screen and changes the console from a text console to a framebuffer console.
Well, with the bloat of the GUI, we decided to disable it, setting the server to boot to runlevel 3 (text mode, only) as opposed to runlevel 5 which boots the GUI. For some time, I was patient with the use of SSH via VPN into the back-end of the server. After a fatal error (and subsequent restor from backup) after a botched YUM update, I decided console access was important.
In my research, I came accross numerous dead threads save for one, HERE. Well, after one small change to the GRUB menu, we have the original console back thanks to a user called ‘SaGS.’
No need to reinstall, try the following:
At the GRUB screen, press a key to cancel the timeout, and edit the kernel command line to add the option ‘fbcon=map:9’. Then boot. This gives you a usable text console.
Once booted in text mode, you can edit 2 essential config files.
One is /boot/grub/menu.lst, where you add kernel options ‘fbcon=map:9 i8042.noloop psmouse.proto=imps clocksource=pit’ (the 1st restores your text console, the 2nd makes the mouse functional, the 3rd allows using the mouse wheel, the 4th is for timekeeping, it’s absence sometimes even produces weird effects like repeating keys or lockouts).
The other file is /etc/X11/xorg.conf, where you change the driver from s3 to vesa. Some people keep the s3 driver, but change the colour depth from 24 to 16. The vesa driver works correctly with both 16 and 24bpp, so it’s more flexible.
You may also need to change the initial runlevel to boot directly to the GUI interface (a text-mode install sets it to 3, right?).
So, now our menu.lst file looks similar to:
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
# initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora (kernel)
root (hd0,0)
kernel /vmlinuz-(kernel) ro root=/dev/VolGroup00/LogVol00 rhgb quiet noreplace-paravirt fbcon=map:9 i8042.noloop psmouse.proto=imps clocksource=pit
initrd /initrd-(kernel)
Cheers to anyone who finds this useful as we did.