Ubuntu 'Gutsy' Server on VirtualBox
Thanks to peeyush for his post where he talks about VirtualBox, I could install Ubuntu desktop _and_ server (both 7.10) on the office machine. Now, since I work for an organisation, where installations-that-require-admin-privileges are not appreciated at all, this was a big feat! (Though, I have the admin privileges too. *wink*)
About VirtualBox:
VirtualBox provides a virtual environment to "install" a range of other OSs on your base OS. The base OS is referred to as HostOS. The "other OS" is called GuestOS.
The good thing about VirtualBox is that it does away the need to have a CD/DVD drive on your machine, by giving you an option to directly boot from cd-image files (.iso), which was very helpful in my case. (Yes, we don't have CD-ROMs too!)
Secondly, switching between the real (host) and virtual (guest) OSs is just a touch of a button -- which I liked a lot.
Apart from the above, there are a number of other features aimed at making the integration of guest, and host look seamless.
OK, after the VirtualBox installation, I faced some minor issues in installing the Ubuntu server. Apparently, the issue was because the non-availability of PAE module, in the simulated environment causes a crash when the machine reboots after the (server) installation process. This has been reported as a bug in VirtualBox, but seems like both VirtualBox and Ubuntu are pointing fingers are each other.
Some forums, however, suggested a solution, which worked for me, and which I present here, so that Linux newbies (like yours truly) don't have to go through an ordeal.
The issue:
When the server boots from the hard-disk, the following fatal error is thrown:
"PANIC: CPU too old for this kernel"
Why?:
VirtualBox does not support PAE, which the Ubuntu server assumes to be present on the platform it's being installed. When the installation is over, and the machine reboots, it in for a surprise...woah...no PAE?!!
The resolution:
1. Boot from the CD (or the mounted image), and choose the rescue mode and get a shell in the / (root). (Rescue mode gives you an option of getting an 'installer shell' or an 'installed shell'. Choose the latter.)
2. Install linux-generic (instead of the default linux-server). This can be done by:
sudo apt-get install linux-generic
[Make sure you're connected to the Internet (and proxies are configured), so that you get the latest packages.]
3. Remove linux-server:
sudo apt-get remove linux-server
4. Exit the root shell, and reboot the machine.
[Some people said that they had followed the same approach and had to fix the file corruption (sync) issues manually using fsck. I'm not sure, because I didn't face any such issue.]
That's about it! Oh, and there's a there-just-one-more-thing:
5. If you find the boot menu irksome, you could edit:
/boot/grub/menu.lst
Hash-out the bad bad linux-server part.
[As a general advice (which would save me a number of curses too): Please backup each file prior to editing it!]
Links/References:
1. http://www.virtualbox.org/wiki/Downloads : Get VirtualBox
2. http://www.ubuntu.com/products/WhatIsUbuntu/serveredition : Get Ubuntu Server 7.10
3. https://bugs.launchpad.net/ubuntu/+source/virtualbox-ose/+bug/126863 : Bug description for Ubuntu
4. http://tombuntu.com/index.php/2007/09/05/making-ubuntu-server-work-in-virtualbox/ : A more straight-forward approach to the same issue. Which I saw after having written this post. :(