Server setup

Network

Bring up your wired NIC, and assign it an address appropriately.

# ip l s dev eth0 up
# ip a a 192.168.0.1/24 dev eth0

DHCP + TFTP

You'll need both a DHCP and TFTP server to configure networking on the install target and to facilitate the transfer of files between the PXE server and client; dnsmasq does both, and is extremely easy to set up.

HTTP

Due recent changes in archiso, it is now possible to boot from HTTP (archiso_pxe_http initcpio hook) or NFS (archiso_pxe_nfs initcpio hook); among all alternatives, darkhttpd is by far the most trivial to setup (and the lightest-weight).

Installation

Boot

After you load pxelinux.0 and archiso.cfg via TFTP, you'll (hopefully) be presented with a syslinux boot menu with several options, two of which are of potential usefulness to us.

Select either

Boot Arch Linux (x86_64) (HTTP)

or

Boot Arch Linux (i686) (HTTP)

Depending on your CPU architecture. If all goes well, you should see some activity on the server from darkhttpd, the root filesystem will be downloaded via HTTP, and you'll end up at a root zsh prompt with that fancy grml config.

Post-boot

Unless you want all traffic to be routed through your PXE server, you'll want to kill dnsmasq and (possibly) get a new lease on the install target, as appropriate for your network layout.

# systemctl stop dnsmasq.service

For sysvinit users:

# rc.d stop dnsmasq

You can also kill darkhttpd; the target has already downloaded the root filesystem, so it's no longer needed.