Requirements:
– Installation media (Following ISO image was used for this installation: archlinux-2013.01.04-dual.iso)
– Internet access
– VMWARE workstation

Article based on: YouTube recording from Sean Bruen (Ref: http://www.youtube.com/watch?annotation_id=annotation_34521&feature=iv&src_vid=HtTt674qi74&v=kQFzVG4wZEg)

1. Create custom Virtual Machine

NOTE: While creating the VM, select appropriate Guest operating system accordingly to your CPU type:

For 32 bit OS: Choose “Other Linux 2.6.X kernel”
For 64 bit OS: Choose “Other Linux 2.6.X kernel 64 bit”

Remark: If you choose wrong Guest OS, some commands especially “pacstrap /mnt base” will fail.

2. Boot the installation ISO image and choose appropriate option from boot menu:

For 32 bit OS: Choose “… i686”
For 64 bit OS: Choose “… x86_64”

3. Partition hard drives

Use “cfdisk” command to create partitions. If you have 1 disk only, you need 3 partitions:

a) Boot  (/dev/sda1)
b) Swap (/dev/sda2)
c) Root (/dev/sda3)

Note: See the recording for more details

4. Format hard drives

Format Swap partition:

mkswap /dev/sda2
swapon /dev/sda2
swapon –s (allows to display the swap partition details)

Format other partitions:

mkfs.ext4 /dev/sda1
mkfs.ext4 /dev/sda3

5. Mount partitions  

Mount Root partition:

mount /dev/sda3 /mnt

Create following folders:

mkdir /mnt/boot /mnt/var /mnt/home

Mount Boot partition:

mount /dev/sda1 /mnt/boot

Note: Since there is only 1 drive and 3 partitions, no other partitions have to be mounted.

6. Install base system

pacstrap /mnt base

7. Install Boot loader

pacstrap /mnt grub-bios

For UEFI support, please listen to the recording.

8. Configure the system

genfstab –p /mnt >> /mnt/etc/fstab
arch-chroot /mnt
mkinitcpio –p linux
grub-mkconfig –o /boot/grub/grub.cfg
grub-install /dev/sda
passwd
exit

9. Perform post-install tasks

umount /mnt/{boot,home,var} /mnt

Reboot the machine:

 systemctl reboot

Commands:

 wifi-menu – allows to set up Wireless connection settings.
 Hostnamectl set-hostname – allows to set up new hostname
 Timedatectl set-timezone US/Pacific – Sets the time zone to US/Pacific (Timezones are located in /usr/share/zoneinf/
 nano /etc/locale.gen – contains all available locals, uncomment appropriate lines
 - locale-gen
 - localectl set-locale LANG=”en_US.UTF-8”
systemctl enable dhcpcd@eth0.service – enables DHCP upon boot
systemctl start dhcpcd@eth0.service – starts DHCP
timedate set-local-rtc true – Sets hardware clock to local time