ArchLinux is not as easy to install as other Linux Distributions. Anyway “Arch” would be worth to install, when you require a small and efficient Systems without any Overload – seems like a perfect choice for an Raspberry Pi?
In general, we use Debian for Booting our VM and doing the necessary steps to Download and Install “Arch”. Thanks to GitHub User “rollwagen” – The Notes on Github were used to accomplish the ArchLinux installation.
Requirements
- Raspberry Pi 4 with at least 4 GB RAM*
- ESXi running on your RPi 4 (Check our Tutorial here)
- Debian for Arm ISO (Download from here)
- Internet Connection for Downloading/Installing ArchLinux
*Amazon Affiliate Link
Preparation
Login to your ESXi and navigate to “Storage>YourDatastore”. Click on “Datastore browser” and “Upload” to upload the Debian ISO to your Datastore – We recommend to create a separate Folder “ISOs” to upload the ISO.

Afterwards click on “Virtual Machines>Create / Register VM” to create the Ubuntu VM.
Enter your wanted name (i.e. same as future Guests Hostname) and
- Compatibility: ESXi 7.0 virtual machine
- Guest OS family: Linux
- Guest OS version: Other 4.x or later Linux (64-bit)
At Page “Customize settings” configure Memory to at least 1GB and set “CD/DVD Drive 1” to “Datastore ISO file” pointing to the Debian ISO you uploaded before.

Installation
Click on your new VM and power it on from the top Menu. Use “Console>Open browser console” to start with the remote Installation.

From the Grub Menu, select “Advanced options…>Rescue mode”


- Set your Language and Keyboard Layout, keep Hostname “debian” and leave Domain “empty”.
- Set your Timezone
Click “Continue” on the Partitions Dialog and “Execute a shell in the installer environment”


Partitions
We’ll create 2 Partitions from the Rescue Shell:
- /boot
- / (root Partition)
Open the Partition Tool “fdisk” by typing
fdisk /dev/sda
Enter “g” to create a GPT Partition Table onto the Disk

Enter the following letters / values:
- n – to create our Boot Partition
- 1 – to make our Boot Partition the first Partition (sda1)
- empty – Leave first sector empty to start from the first available Sector
- +300M – to make our Boot Partition 300 MB

We need to change the Partition type of the Boot Partition to “EFI System” now. Press
- t – to change Partition Type
- 1 – to select the first Partition
- 1 – to set Partition 1 to “EFI System”

Finally we create our “root” Partition. Enter into fdisk:
- n – to create our root Partition
- 2 – to make our root Partition the second Partition (sda2)
- empty – Leave first sector empty to start from the first available Sector
- empty – Leave second sector empty to allocate the rest of available Space for the root Partition

Enter “w” to write the Changes to Disk and to quit fdisk.

Format your new Partitions (mkfs.x) and mount these afterwards with the following commands:
mkfs.fat /dev/sda1
mkfs.ext4 /dev/sda2
mkdir /mnt/root
mount /dev/sda2 /mnt/root
mkdir /mnt/root/boot
mount /dev/sda1 /mnt/root/boot
Don’t worry about codepage errors
Go to the local Temp Directory and download the latest ArchLinux Installation Base. Please note – The Dowload Link File is Case-Sensitive (ArchLinuxARM-aarch64-latest.tar.gz)
cd /tmp
wget http://os.archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gz
We extract the Installation Base now to the root Folder – It will place the Files into our Boot Partition (mount Point) automatically:
tar -xzf ArchLinuxARM-aarch64-latest.tar.gz -C /mnt/root
Get a Cup of Coffee – This may take a while.
Booting into your new System
Ready? – Ok we reboot now and boot once again from the Debian ISO.
reboot
At the Grub Debian Screen, press “c” to enter the grub Command Line
Enter the following Commands to boot from your Disk:
linux (hd0,gpt1)/Image.gz root=/dev/sda2
initrd (hd0,gpt1)/initramfs-linux.img
boot

Don’t worry about a lot of Error Messages while booting – they will be gone on our final reboot.
Login with Username “root” and Password “root”. The Filesystem is mounted as read-only. We need to change this with:
mount -o remount,rw /dev/sda2
Let’s setup the Packagemanager “Pacman” and update our Packages:
pacman-key --init
pacman-key --populate archlinuxarm
pacman -Syu
Boot Loader Setup
We’ll use Grub for booting Arch. First Install the ArchLinux Install-Scripts:
pacman -S arch-install-scripts
Mount the Boot Partition:
mount /dev/sda1 /boot
We’ll now generate our Fstab Table, which contains the essential Mount-Points
genfstab -U / >> /etc/fstab
If you did not Update your System with Pacman before, update the Kernel (select “linux-aarch-64–headers”) with:
pacman -S linux linux-headers
Install Grub by typing:
pacman -S grub efibootmgr
grub-install --target=arm64-efi --efi-directory=/boot --bootloader-id=GRUB --boot-directory=/boot
“grub-mkconfig” will look for “vmlinuz-linux” as Image name, so we’ll just copy the ARM File to the new Name and execute “grub-mkconfig”.
cd /boot
cp Image vmlinuz-linux
grub-mkconfig -o /boot/grub/grub.cfg
Shutdown the System and remove the Debian ISO now:
halt -p

Finalizing your Installation
Power on your VM and Bam! – Grub should appear and boot automatically in your Arch Linux installation.

Logon with Username “root” and Password “root”.
Edit /etc/locale.gen and uncomment “en_US.UTF-8 UFT-8” and optional your own Language.
nano -w /etc/locale.gen
Generate locales by typing:
local-gen
Write your LANG Variable at /etc/locale.conf (i.e.: LANG=en_US.UTF-8 )
nano -w /etc/locale.conf
Set your Keyboard Variable at /etc/vconsole.conf (i.e.: KEYMAP=de-latin1 )
nano -w /etc/vconsole.conf
Set your Hostname to /etc/hostname (i.e.: arch1 )
nano -w /etc/hostname
Reboot and check if everything is as expected (Hostname, Keyboard Layout)
reboot
Optional but highly recommended, change the root Password:
passwd
Congratulations! – You’ve got now a fully running, minimal ArchLinux System. Continue with the Arch Documentation to do the advanced Configuration and Install Software and Services as you like (Link to Documentation).