CentOS eth0 not starting

Make sure ONBOOT="yes" is in /etc/sysconfig/network-scripts/ifcfg-eth0. If you're using NetworkManager, make sure that service starts on boot (chkconfig NetworkManager on), otherwise, if you're using the old network service, make sure it starts on boot (chkconfig network on).


Regarding CentOS6 not enabling the network interface by default: it (in the GUI installer, at least) does its very best to prevent the interface from being set up properly, but this can be defeated via a checkbox that's hidden a couple dialogs deep from the main flow.

On the screen where you enter the hostname, the "Configure Network" button at the bottom takes you to a "Network Connections" dialog. Select eth0, then the "Edit" button takes you to an "Editing System eth0" dialog, which has a "Connect automatically" checkbox. If you leave this box unchecked, you get ONBOOT="no" in /etc/sysconfig/network-scripts/ifcfg-eth0; if you check it, you get ONBOOT="yes". I don't know if the checkbox affects any other configs, but I've yet to notice any different behavior. Why the box isn't checked by default, I can't begin to imagine.