Gentoo installation is very long and could be complicated process for some users but once you know what you doing for it become the best OS ever. I recommend it for Severs and Desktops. I've used gentoo very long time and have had installed as Desktop either with full glx and compiz. This tutorial is basic server set up. It will save you a lot of time. Depends on hardware this can be done in about 6 hours.
boot gentoo live cd
gentoo nox (doesn't load X11) gentoo nox doscsi (doesn't load X11, loads extra SCSI drivers) gentoo nox docache (doesn't load X11, loads everything into memory so you can eject the CD)
datetime system settings
date MMDDHHMMYYYY
hardware clock settings
hwclock --systohc
wired network settings
/etc/init.d/net.eth0 stop ifconfig eth0 209.242.60.208 netmask 255.255.255.224 up route add default gw 209.242.60.193
wireless network settings
iwconfig wlan0 essid "STRING_ESSID" iwconfig wlan0 key STRING_KEY dhcpcd wlan0
dns settings
echo "nameserver 209.242.60.162" > /etc/resolv.conf
use ssh to continue installation via network
/etc/init.d/sshd start passwd
partition the hard drive
cfdisk /dev/sda
create file systems
mkfs.ext2 /dev/sda1 mkfs.ext3 /dev/sda3 mkswap /dev/sda2 swapon /dev/sda2
mount partitions
mount /dev/sda3 /mnt/gentoo mkdir /mnt/gentoo/boot mount /dev/sda1 /mnt/gentoo/boot
download and extract stage file
wget http://www.gtlib.gatech.edu/pub/gentoo/releases/x86/2008.0/stages/stage3-x86-2008.0.tar.bz2 tar xvjpf stage3-*.tar.bz2 -C /mnt/gentoo
mount /proc and /dev
mkdir /mnt/gentoo/proc mount -t proc none /mnt/gentoo/proc mkdir /mnt/gentoo/dev mount -o bind /dev /mnt/gentoo/dev
define make.conf file [server example]
vi /mnt/gentoo/etc/make.conf
CFLAGS="-march=i686 -O2 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j3"
USE="acpi apache2 amd apm bash-completion berkdb bzip2 clamav cli crypt expat fam ftp gd gdbm gif iconv imap jpeg libwww mmx mysql ncurses nls nptl odbc pam pcre pdflib perl perlsuid png posix python readline samba session snmp spell sse sse2 ssl svga tcpd threads tiff truetype usb xml xmlrpc xpm zip zlib -X"
ACCEPT_KEYWORDS="x86"
APACHE2_MODULES="alias auth_basic authz_host dir log_config mime mime_magic rewrite vhost_alias actions asis auth_digest authn_alias authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_owner authz_user autoindex cache cern_meta charset_lite dav dav_fs dav_lock dbd deflate disk_cache dumpio env expires ext_filter file_cache filter headers ident imagemap include info log_forensic logio mem_cache negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_ftp proxy_http setenvif speling status unique_id userdir usertrack version"
APACHE2_MPMS="worker"
chroot
chroot /mnt/gentoo /bin/bash
set time prior to installs /etc/conf.d/clock
sed s%^CLOCK=$%CLOCK=\"local\"% /etc/conf.d/clock > /tmp/clock && sed s%^#TIMEZONE=.*$%TIMEZONE=\"America\/Chicago\"% /tmp/clock > /etc/conf.d/clock && rm /tmp/clock ln -sf /usr/share/zoneinfo/America/Chicago /etc/localtime
check date again
date
set dns server inside chroot environment
echo "nameserver 209.242.60.162" > /etc/resolv.conf
sync portage and install packages
emerge --sync env-update emerge portage emerge logrotate dhcpcd gentoolkit genlop iptraf bind-tools grub lynx mdadm ncftp netkit-telnetd nfs-utils ntp portage-utils screen sudo superadduser sysklogd traceroute unzip vixie-cron vim xinetd zip gentoo-sources dispatch-conf
configure startup services
rc-update add net.eth0 default rc-update add sshd default rc-update add sysklogd default rc-update add vixie-cron default
modify essential files + oneliners /etc/rc.conf
sed s%^EDITOR.$%EDITOR=\"\/usr\/bin\/vim\"% /etc/rc.conf > /tmp/rc.conf && mv /tmp/rc.conf /etc/rc.conf
sed s%BOOT%sda1% /etc/fstab > /tmp/fstab && sed s%SWAP%sda2% /tmp/fstab > /etc/fstab && sed s%ROOT%sda3% /etc/fstab > /tmp/fstab && mv /tmp/fstab /etc/fstab
hostname settings [/etc/conf.d/hostname]
echo 'HOSTNAME="servername"' > /etc/conf.d/hostname
network configuration [/etc/conf.d/net]
# standard configuration
config_eth0=( "192.168.0.2/24" )
routes_eth0=( "default via 192.168.0.1" )
# multiple/alias IPs
config_eth0=(
"192.168.0.2/24"
"192.168.0.3/24"
"192.168.0.4/24"
)
# generic DHCP options
config_eth0=( "dhcp" )
dhcp_eth0="nodns" # won't overwrite /etc/resolv.conf
# advanced routing
routes_eth0=(
"default via 192.168.0.1" # IPv4 default route
"10.0.0.0/8 via 192.168.0.1" # IPv4 subnet route
)
kernel compiling
cd /usr/src/ ls -l rm -rf linux ln -s linux-2.6.23-gentoo-r9 linux
cd /usr/src/linux make menuconfig && make && make modules modules_install && cp arch/i386/boot/bzImage /boot/kernel-2.6.22
grub configuration [/boot/grub/grub.conf]
default 0 timeout 5 title=Gentoo 2007.0-2.6.22 root (hd0,0) kernel /boot/kernel-2.6.22 root=/dev/sda3 #kernel /boot/kernel-2.6.22 root=/dev/sda3 vga=0x316 # colors 640x400 640x480 800x600 1024x768 1152x864 1280x1024 1600x1200 # --------+-------------------------------------------------------------- # 4 bits | ? ? 0x302 ? ? ? ? # 8 bits | 0x300 0x301 0x303 0x305 0x161 0x307 0x31C # 15 bits | ? 0x310 0x313 0x316 0x162 0x319 0x31D # 16 bits | ? 0x311 0x314 0x317 0x163 0x31A 0x31E # 24 bits | ? 0x312 0x315 0x318 ? 0x31B 0x31F # 32 bits | ? ? ? ? 0x164 ? ?
grub root (hd0,0) setup (hd0) quit
misc configuration
export EDITOR=/usr/bin/vim
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin MAILTO="" 30 /2 * * * ntpdate -b -s ntp-0.cso.uiuc.edu time.apple.com
optional: update the system now
emerge -uDv system && emerge -uDv world etc-update
don't forget to set the root password!
passwd
exit chroot, umount and reboot
exit umount /mnt/gentoo/proc && umount /mnt/gentoo/dev && umount /mnt/gentoo/boot && umount /mnt/gentoo && shutdown -r now