Custom boot messages for your Redhat Linux or CentOS-based virtual appliance
Upon boot, many
virtual appliances automagically start services, log users in, or display helpful messages beyond what a normal OS would.
After all, a primary use-case of virtual appliances is to act more like an application than a full OS, and ideally would like the user to feel like they're only interacting with an application.
One virtual appliance that I use is
MindTouch's open source
Dekiwiki appliance (btw, I fully recommend Dekiwiki, my favorite wiki software at the moment.).
The DekiWiki appliance, upon boot, without any user interaction or required login, will display something like this:

This is extremely handy. No login to Linux necessary. Just go to any web browser on your network, and go.
How to recreate the magic in CentOS/Redhat/(probably) Fedora
I'm currently making two virtual appliances based on
CentOS Linux (A clone of
RedHat Enterprise Linux ). I pretty much copied DekiWiki's rc.local, to identify and print out the current IP, whatever it may be, and direct the user to browse there, without having to login. This was partially successful. But after printing the URL and instruction to the user, the console tty was cleared prior to login prompt appeared, making it so all the helpful info was removed.
Where'd my helpful message go? It was cleared by mgetty.I had no idea why this was working fine in the Debian-based DekiWiki appliance, and less so in my CentOS-based (Piwik, coming soon!) appliance. After a bit of side-by-side comparison, I noticed that Debian's
/etc/inittab calls up
/sbin/getty, but CentOS (and Redhat)'s
/etc/inittab calls up
/sbin/mingetty.
mingetty apparently clears the screen, and
getty does not.
By adding the
--noclear option to mingetty, CentOS will stop clearing the screen, and allow your custom boot message to live on.
Notes.Here's what to edit in
/etc/inittab:
BEFORE# Run gettys in standard runlevels1:2345:respawn:/sbin/mingetty tty12:2345:respawn:/sbin/mingetty tty23:2345:respawn:/sbin/mingetty tty34:2345:respawn:/sbin/mingetty tty45:2345:respawn:/sbin/mingetty tty56:2345:respawn:/sbin/mingetty tty6AFTER# Run gettys in standard runlevels1:2345:respawn:/sbin/mingetty --noclear tty12:2345:respawn:/sbin/mingetty --noclear tty23:2345:respawn:/sbin/mingetty --noclear tty34:2345:respawn:/sbin/mingetty --noclear tty45:2345:respawn:/sbin/mingetty --noclear tty56:2345:respawn:/sbin/mingetty --noclear tty6Original rc.local that finds and prints IP in helpful message (thanks Mindtouch!):
IP=`ifconfig eth0 | grep "inet addr"|awk -F ' ' '{print $2}' | awk -F ':' '{print $2}'`echoecho -e "\033[1mTo access Deki Wiki, please launch a web browser and go to:"echoecho " http://$IP"echo -e "\033[0m"exit 0