Set the time zone and locale
These are the first settings that belong to the new machine rather than to the installer. All of them run inside the chroot.
Time zone
ln -sf /usr/share/zoneinfo/America/Denver /etc/localtime hwclock --systohc
Substitute your own zone; ls /usr/share/zoneinfo lists the
regions, and each is a directory of cities. /etc/localtime is
simply a symlink into that tree, which is why this is a one-line
setting with no configuration file behind it.
hwclock --systohc writes the current system time to the hardware
clock in UTC.
A Pi 5 has a real-time clock, but it only keeps time across a power cut if you have fitted the optional battery. Without one the machine boots with a meaningless date every time and waits for NTP to correct it, which is harmless as long as the network comes up. It is the reason the survey step checked the clock in the first place.
Locale
Arch ships every locale commented out and generates only the ones you ask for. Uncomment the line you want:
en_US.UTF-8 UTF-8
Then generate it and record the choice as the system default:
locale-gen echo "LANG=en_US.UTF-8" > /etc/locale.conf
Generating locales... en_US.UTF-8... done Generation complete.
Pick a UTF-8 locale. A non-UTF-8 default is the reason box-drawing
characters in programs like lsblk degrade into |- and `-, and
it causes stranger problems than that in anything handling text.
Console keymap
If your keyboard is not US layout, set it for the text console – this is separate from any graphical keyboard setting later:
KEYMAP=us
localectl list-keymaps lists the options. On a machine you only
ever reach over SSH this setting never comes up, but it costs
nothing now and is annoying to discover you need at a rescue prompt.
With a system installed, an fstab describing it, and a shell inside it, what remains is to make the machine capable of starting on its own. That is the next chapter.