Back to list2020-052

Proxmox Arch Linux Container Installation

I've been using Proxmox for a while now, mostly with Debian and Ubuntu containers. It's very reliable and quite easy to use. However, getting an Arch Linux container to work has proven to be a bit more difficult. Luckily it's not impossible but just requires a few steps to get going.

Obtaining the Arch Linux image

Check for images:

pveam available --section system

The output should be something like this:

system          alpine-3.9-default_20190224_amd64.tar.xz
system          archlinux-base_20190924-1_amd64.tar.gz
system          centos-6-default_20191016_amd64.tar.xz

Download the arch Linux image. Change the file name as applicable depending on the first step.

pveam download local archlinux-base_20190924-1_amd64.tar.gz

Now the image is available in your local image repository.

Set a password

With Debian and Ubuntu Containers it's enough to just use an SSH key to login. I don't usually set a password as it's never needed.

The Arch Linux image doesn't have an SSH server installed by default. So you won't be able to login via SSH. So set a password in the initial dialog.

Password Dialog

After this, continue as usual. Instead of logging in via SSH, open the noVNC console in Proxmox instead to continue.

Init Pacman

Arch Linux's packagemanager pacman doesn't work out of the box. First, select a mirror by editing /etc/pacman.d/mirrorlist. Activate a nearby mirror by removing the # in front of the line.

Use vi or nano. Mind you, the vi version is not vim but the "old one" without arrow key support.

Next, initialize the pacman GPG keys.

pacman-key --init
pacman-key --populate archlinux 
pacman-key --refresh-keys 


If these steps aren't taken you may end up with error messages like this:

package.tar.xz is corrupted (invalid or corrupted pacakge (PGP signature))

Install updates and SSH

Finally your setup should be ready to go. Remember to run updates right away and make life easier by installing an SSH server:

pacman -Syu
pacman -S openssh
systemctl restart sshd
systemctl enable sshd