Arch Linux Installation (draft)


1. First, the CD will boot.

2. It shows the root console. Type in “ip addr” to confirm that the network address is configured properly (when connected using NAT).

3. One situation I ran into was: “ip addr” doesn’t show any binding of IP address to eth0 (the virtual network adapter). Investigation shows dhclient doesn’t get a configuration either. As I ran the virtual machine in VMware, I checked VMnet8 (in Windows Control Panel, Network Adapters) and found it disabled. I enabled it but it still doesn’t work. I checked online for help, and finally found that the VMware NAT service and VMware DHCP service are set to “Manual” and are not started. I started them and set them to “Automatic”. dhclient can get the IP address by using “dhclient -v -r eth0; dhclient -v eth0”.

4. Now I partition the hard disk if I haven’t done it before.

5. “cat /proc/swaps” to show the swap partitions in use. If not, use the swap partition on the hard disk.

6. Mount the root partition at /mnt. Because ext2/ext3/ext4/reiserfs are automatically detected, we just need to do “mount /dev/sda1 /mnt” (suppose /dev/sda1 is the partition).

7. Because the corporate network uses proxy servers, I use “export http_proxy=http://proxy:port/” to set the proxy server setting. Also export HTTP_PROXY for better compatibility. Optionally put the settings in under /etc/profile.d to make it automatic upon system start.

8. “pacstrap /mnt base base-devel” to install the “base” and “base-devel” packages. More packages can be found at

9. “arch-chroot /mnt pacman -S grub-bios”; it does chroot to /mnt, and then install the grub-bios as the boot loader (for BIOS rather than EFI architecture, which is the case with VMware Player).

10. “arch-chroot /mnt” and then follow steps in to install the kernel modules (optional). Also follow the steps in the “Configure the network-> Wired” section (“systemctl enable dhcpcd@eth0.service”). Enable “multilib” in /etc/pacman.conf as well so that 32-bit applications can also run on the 64-bit linux.

11. Install grub by using grub-install, and then configure according to

12. “genfstab -p /mnt >> /mnt/etc/fstab” to generate contents and append to the “fstab” file.

13. Follow steps in to set up the host name, time zone, locale. For the default setup, no need to do mkinitcpio (ramdisk image generation for the kernel). No need to configure the boot loader either.

14. Some handy comments: modprobe <module>; modprobe -c; dmesg; lsmod; lspci; lspci -v.

15. It seems after installation I have to manually run dhcpcd upon every boot. This is annoying. I have used the right systemctl command but it still doesn’t work.