Installing CentOS 5.4 on VMware Fusion 3

For those of us who have Macs, it is really useful to be able to run virtual machines loaded with other operating systems.  VMware Fusion 3 is one product that enables us to run another OS within Mac OS X.  One can even run Mac OS X (Snow Leopard or Leopard) Server in a virtual machine.

This article simply shows the sequence of steps taken to install CentOS 5.4, a Linux distribution based on an enterprise-grade OS (with the non-free parts not included) that has a good share of the Linux enterprise market.  We also show the settings used in VMware Fusion 3.

The Mac that is used here is a unibody aluminum MacBook (October 2008) with a 2.4 GHz Intel Core 2 Duo processor and 4 GB of DDR3 RAM.  It’s a speedy machine even if it has been superseded by the 13″ MacBook Pro.

We first specify the OS disc image for VMware to install from:

Specifying Disc Image for CentOS 5.4

VMware Fusion detects the OS correctly:

64-Bit CentOS Detected

64-Bit CentOS Detected

Initially, VMware Fusion automatically configures the virtual machine settings for you.  Later on we change these settings:

Default Settings For VM

Default Settings For VM

Changing the settings, we then have:

New Settings For VM

New Settings For VM

With the new settings, we can take advantage of the two cores of the CPU.  Note that, unlike the previous version of VMware Fusion, VMware Fusion 3 now shows multiple cores not as individual processors but as individual cores.  This is more obvious with OSes such as Microsoft Windows XP Home Edition which supports multi-core processors but not multiple sockets (you’ll need XP Professional for that).

With the VM configured, we start it and see the splash screen:

Splash Screen

Splash Screen

We press the <ENTER> key and proceed:

Prompt for Testing The Installation Disc/Image

Prompt for Testing The Installation Disc/Image

For the purpose of this article, we skip the test (we previously verified its signature anyway) but it is good to go through the disc for installation on production machines just to be sure.

Below, we see that the next step is the initialization of the Anaconda installer and X.  The installer detects a “vmware video card” and loads that for X.

Starting The Anaconda Installer and X

Starting The Anaconda Installer and X

In a few seconds, X starts up and we see the graphical installer:

The Graphical Installer

The Graphical Installer

We click on “Release Notes” to read what’s new or significant with this release of CentOS.

Release Notes

Release Notes

All we get though is a short version of the release notes with links to various informational documents.  For now, we do not click on any of them and just continue with the installation.

Language Choice for Install

For the purpose of this article, we choose English as the language for installation.

Keyboard Setup and Drive Formatting

We are using a U.S. English keyboard so that is selected.  Then, the installer detects that the partition table is not readable, prompting us to initialize it.  We select ‘Yes’.

Partitioning The Hard Drive

We simply use the default partitioning that the installer chooses and proceed to the next screen.

Network Configuration

For the network configuration, we use DHCP.  When our VM was configured, we chose NAT networking meaning that the OS is “behind” the host OS.  The guest OS (CentOS 5.4 in this case) gets its IP address from VMware and uses that to connect to the local network and the Internet.

Manually Selecting The Hostname

The hostname was chosen manually instead of relying on DHCP to assign it.  This is only for this case.  Your DHCP server might be configured to set the hostname as well — just ask the network/systems administrator about it.

Next, the time and date are configured and the timezone is selected:

Time Zone Selected

The installer then asks for the root/administrator password that is to be used.

Root Password

The packages are now selected.  We select both Gnome and KDE desktop environments just to see how they compare.  Normally, Gnome is selected as default.

Package Selection

We do not need the other packages:

Packages Not Installed

The installer then checks for dependencies for the selected packages (that are going to be installed).


We are prompted to begin installation and so we proceed:

Starting Installation

CentOS Install Begins

Transferring Disc Image

You can donate to the CentOS Project:

Donations, Anyone? :-)

Yum is useful in managing the packages of the system:


The software repositories:

Software Repositories

The CentOS Plus repository:

CentOS Plus Repository

Help With CentOS


CentOS Wiki


Completed Installation

Server Rebooting: Splash Screen of Boot Up

A little more configuration is needed after the reboot:

Some More Configuration

We open up a number of ports needed for the installation to service clients with.


We set SELinux to “Enforcing”:


For our purpose, we do not enable Kdump:


We check and set (if needed) the data, time, and timezone.  We also activate the use of the Network Time Protocol (NTP):


We now create a regular user.  We’ll add more later.

Create User

Clicking on “Use Network Login” gives us more options but we do not use them for now (i.e. leave them with their default values):

Network Login 1

Network Login 2

No additional CDs are used in our installation:

Additional Installation CDs

Finally, the login screen using gdm:

Login Screen Using gdm

First, we escape the login screen by using the key combination: Ctrl-Alt-F1 (Ctrl-Option-Fn-F1 on the MacBook).  We login as root, go to run level 3 (telinit 3), then run Xorg’s auto configuration function:

telinit 3: Kill the X Window Server

We then copy ~/ to /etc/X11/xorg.conf and edit it, adding the Virtual configuration option as we did in OpenSUSE and Fedora:


We then return to run level 5:

Telinit 5

The resulting login screen is now bigger (1680×960 pixels):

Login Screen 1680x960 pixels

Note that using sudo instead of logging in as root all the time is a better habit for security.  But first, you must be root to configure sudo and the user/group account(s) to be granted certain privileges.  Perhaps another article will discuss how to configure sudo.

OpenSUSE 11.2: A Test Installation

A 4 GB 2.4GHz aluminum MacBook was used for this installation.  OpenSUSE was installed in a virtual machine created under VMware Fusion 3.  768 MB of RAM was allotted automatically by VMware Fusion.  When the image of the DVD of OpenSUSE was used, VMware correctly identified it as the 64-bit OpenSUSE distribution.

Virtual machine settings used for the test of OpenSUSE 11.2.

Virtual machine settings used for the test of OpenSUSE 11.2.

Two CPU cores were manually specified in the configuration since the MacBook is a dual-core machine anyway.  A measly 32 GB of disk space was allotted for the installation.  As for networking, it was decided that doing NAT behind the host was sufficient for this test.  Note that NAT was the default network mode used by VMware.

The install took about 30 to 45 minutes after selecting a number of packages beyond the default desktop packages.  In particular, a number of development tools like GCC and OpenJDK were installed.  Also, a couple more window managers were installed, including Metacity, IceWM, and TWM.  The GNOME Desktop Environment was also included.

Below is a screenshot of the initial boot-up screen:

Startup Options

OpenSUSE defaults to run level 5 for a desktop configuration. On VMware, the screen size is set to 800×600 pixels initially. Changing this involves editing the Xorg.conf in the /etc/X11 directory.  Note that an xorg.conf file does not exist here  yet.  One must be created.

The initial desktop presented to the user.

The initial desktop presented to the user.

To create a new xorg.conf file, switch to run level 3, which shuts down X. Then run the command ‘Xorg -configure’ as root. This creates a new xorg.conf.* file in root’s directory. Rename this xorg.conf and copy it to /etc/X11. Assuming it works, when you type ‘startx’ as a normal user,  a desktop session gets started.  When satisfied that it works, edit xorg.conf and add the line “Virtual xxx yyy” to adjust the resolution of the desktop and desktop manager (i.e. the login screen).  See the sample below:

Look for the Virtual keyword in this screen.

Look for the Virtual keyword in this screen.

After doing the above modifications to the xorg.conf file, the desktop looked like this on VMware Fusion, in 1680×960 pixel resolution:
Desktop at 1680x960 pixels.

Here are some sample screenshots of the window managers and desktop environments installed in this virtual machine:

Gnome Desktop Environment

Gnome Desktop Environment

Ice Window Manager


And of course, X Window System’s venerable TWM:



That’s it for now. We’ll be adding more information about this test install in the next couple of days.