Installing Arch Linux On Raspberry Pi: A Complete Guide
I’ll be honest: Arch Linux has a bit of a reputation for being intimidating. But if you love experimenting and want total control over your Raspberry Pi, it’s actually a great choice. The catch? The standard Arch version won’t work on a Pi. You’ll need a special ARM build, and I’m going to walk you through exactly how to get it running.
It’s possible to install Arch Linux on a Raspberry Pi by downloading Arch Linux “ARM” instead of the main distribution. It’s built for ARM processors and can run on all recent Raspberry Pi models.
The installation process takes a bit longer than your typical OS setup, but it’s more straightforward than it looks. You’ll learn a lot about how Linux works along the way. Let me show you how to build your own ArchPi.
If you’re new to Raspberry Pi or Linux, I’ve got something that can help you right away!
Download my free Linux commands cheat sheet – it’s a quick reference guide with all the essential commands you’ll need to get things done on your Raspberry Pi. Click here to get it for free!
What You’ll Need To Install Arch Linux on Raspberry Pi
Before we jump into the installation steps, let’s check real quick that we have the hardware and software needed to install Arch on your Raspberry Pi.
Hardware
The parts below include standard peripherals you probably already use for your Pi. What’s notably different is that you’ll also need a USB flash drive.
- Raspberry Pi – The models currently supported by Arch are Raspberry Pi 4, Pi 3, Pi 2, and Pi Zero 2. Arch requires a minimum of 512MB memory, and these supported models all have enough RAM. I recommend a standard model, like the Raspberry Pi 4B or 3B+ for more computing power.
- Power Adapter – Use the official Raspberry power supply to avoid undervoltage issues.
- Keyboard & Mouse – I plugged in a standard USB keyboard and mouse. If you need one, you can find my recommended keyboards here.
- SD card – An 8GB SD card is enough for Arch, but I recommend 32GB or more. Here’s my current favorite SD card, with my benchmark results listed.
- USB flash drive – You’ll be booting your Pi from a USB drive. This frees up your SD card to install Arch on it.
Software
- Raspberry Pi OS – A Linux environment is needed to install Arch, and Raspberry Pi OS will provide the tools to get it done.
- Raspberry Pi Imager – The tool we normally use to install Raspberry Pi OS. For this tutorial, we’ll use Imager to create a bootable USB drive.
- Arch Linux ARM – Installing this operating system is your ultimate goal. Sometimes referred to as ALARM, this Linux distro is an Arch variant that supports the Pi’s processor.
Related: What CPU Does the Raspberry Pi Use?
1. Pre-Installation: Making a Bootable USB With Raspberry Pi OS
The best way to install Arch is to do it from another running Linux system. So, in this first step, we’ll create a USB flash drive that boots into Raspberry Pi OS. This way, you’ll have a Linux environment to work from while freeing up your SD card slot for Arch.
Note: I think it’s easier to use a USB flash drive for this guide. But another way to do this is with two SD cards—one with your Linux system, and another plugged into a USB SD card reader.
1.1 Create a Bootable USB Drive with Raspberry Pi OS
Here’s how to create a USB drive that will start Raspberry Pi OS:
Members get an ad-free version of every guide, plus exclusive project support.
Join the Community | Sign In
- Launch Raspberry Pi Imager, and make the following selections.
If you don’t have it yet, you can download Imager here. - Device – Choose your model. In this example, I’ll use Raspberry Pi 4.
- Operating System – Raspberry Pi OS Lite. We won’t need a full GUI, so choosing Lite will save you download and install time.

- Storage – Plug in your USB drive and select it here.
- Customisation – I recommend setting the options for creating a first user, or enabling SSH if you want to copy/paste while following this guide. (For more details, check out my full guide to Getting Started with Raspberry Pi Imager.)
- Writing – Click “WRITE” to begin the process.
Now that the USB drive has a Linux system on it, we have to tell your Raspberry Pi to load it.
1.2 Enable USB Booting for Your Pi
The steps to make your Raspberry Pi boot from USB depend on which board you have. Find your model and skip down to the appropriate subsection below.
Enabling USB Boot for Newer Raspberry Pi Boards
Newer Raspberry Pi models like the Pi 5 / 500 / 500+, Pi 4 / 400, and Pi 3B+ should already support booting to USB out of the box.
Here’s how to enable booting to USB:
- Launch the Raspberry Pi Software Configuration Tool:
sudo raspi-config - Navigate to Advanced Options -> Boot Order.

- Choose NVMe/USB Boot:

- Exit the tool.
- Plug your USB drive into your Pi to get ready.
- Reboot the Raspberry Pi.
Enabling USB Boot for Older Raspberry Pi Boards
Older models like the Pi 3B, Pi 3A+, Pi 2B might need to do something more complex. You must enable USB host boot mode and program the board boot from USB for these models.
Warning: Making this change is permanent because it programs your board.
- Enable USB host mode:
echo program_usb_boot_mode=1 | sudo tee -a /boot/firmware/config.txt - Reboot:
sudo reboot now - Verify changes:
vcgencmd otp_dump | grep 17: - Success: If you see 0x3020000a in the output, your board has been successfully programmed.

- Remove command from config file:
sudo sed -i 's/program_usb_boot_mode=1//g' /boot/config.txt
Tip: Command lines can be a pain to memorize. I put the essential Linux commands on a printable cheat sheet so you don't have to keep googling them. You can grab the PDF here if you want to save some time.
Download the free PDF, keep it open, and stop wasting time on Google.
Download now
1.3 Boot From USB
Now it’s time to boot to Raspberry Pi OS.
- Remove the SD card, plug in your USB drive.
- Start the Raspberry Pi.
- Log in using the user account you created with Imager earlier.
Pat yourself on the back—you’ve made it past the first hurdle. You’re now running Raspberry Pi OS directly from a USB drive. This means you now have a working Linux environment for the installation process, and your SD card is free to accept Arch.
2. Pre-Installation: Prepping Your SD Card for Arch
Now that you’re running a Linux system from a USB drive, you’re ready to prepare the SD card for Arch Linux. The big picture steps are:
- Identify the SD card volume.
- Format it to create a new partition table.
- Mount partitions so we can copy files onto it.
Let’s cover each step in detail.
Related: How to Format an SD Card from a Linux Terminal (CLI)
2.1 Determine Your SD Card’s Name
First, insert the SD card that you want to use for Arch into your Raspberry Pi.
Your SD card is assigned a device name automatically by the operating system. Let’s figure out what it is using fdisk:sudo fdisk -l

The name of the device follows /dev/, so in my example above, the device name is: mmcblk0. That’s the default in most cases.
(We want the name of the entire device, so we do NOT want mmcblk0p1 or mmcblk0p2 because these refer to its partitions.)
2.2 Delete Existing Partitions
Next, we want to start editing the partitions on the SD card:
- Use the device name with fdisk:
sudo fdisk /dev/mmcblk0
(Make sure to change the device name if you have something different.) - Inside the fdisk utility, you can preview all of its commands: m.

- Delete the SD card’s partition table to get a clean slate: o.
- List all existing partitions, and now there should be none: p.

2.3 Create New Partitions for Arch Linux
Then, you’ll continue using the fdisk utility to create two new partitions to install Arch.
You might also like: No screen? No problem! Here's how to setup a Pi without one.
Partition #1: Boot
The first partition you’ll make is the boot partition:
- Create a new partition: n.
- Make its type primary: p.
- Make it the first partition: 1.
- When prompted for “First sector”: Enter (This accepts the default).
- When prompted for “Last sector”: +512M.

This will make your boot partition 512MB. I recommend this larger value to avoid problems later on and for a better Arch experience overall. If you can’t spare the storage space, you can go with the minimum +200M. - Change filesystem type: t.
- Set it to W95 FAT32: c.
(This format provides easy compatibility with bootloaders).
Partition #2: Root
The second partition you’ll create will hold the operating system files and all of your user files. Here’s how to create the root partition:
- Create a new partition: n.
- Make its type primary: p.
- Make it the second partition: 2.
- When prompted for “First sector”: ENTER.
This default starts the 2nd partition where your 1st partition ended. - When prompted for “Last sector”: ENTER.
This default means to use all of the remaining space on your SD card.
- You won’t have to set the filesystem type this time. This partition needs to be a Linux-type partition, and that’s already the default.
- Review your proposed changes: p.
It should look similar to the image below, except the storage sizes will match your SD card.
- Write to finalize your changes: w.

- Check that it was written properly:
sudo fdisk -l
Two partitions—boot and root—just like we wanted. It’s all going according to plan.
2.4 Mount Filesystems
Installing Arch Linux ARM is different from the process for other operating systems: there won’t be an installer program that walks you through. Instead, you’ll be manually copying the operating system files over.
To prepare for this process, you’ll be mounting the partitions you’ve just created. This is a complicated way of saying that you’ll be gaining access to the SD card to copy files onto it.
Download the free PDF, keep it open, and stop wasting time on Google.
Download now
Format and Mount the Boot Partition
- Make a FAT32 filesystem on your SD card’s boot partition:
sudo mkfs.vfat /dev/mmcblk0p1 - Make a temporary directory for mounting:
mkdir boot - Mount the boot partition onto that directory:
sudo mount /dev/mmcblk0p1 boot
Format and Mount the Root Partition
You’ll repeat similar steps for mounting the root partition, except you’ll be making an ext4 filesystem this time. The ext4 filesystem is a robust Linux default for user files.
- Make an ext4 filesystem:
sudo mkfs.ext4 /dev/mmcblk0p2
(Note: if your system seems to hang on “Creating Journal,” be patient—it’s still processing. Wait until it says “done” and returns you to the command line.) - Make a temporary directory for mounting:
mkdir root - Mount your SD card’s root partition onto that directory:
sudo mount /dev/mmcblk0p2 root
Success! Now that you’ve created partitions and can access them on your system, you can install Arch onto the SD card.
3. Installing Arch Linux ARM onto Your Pi
Now that you’ve formatted your SD card with the proper partitions, it’s time to install Arch. The big picture steps here are:
- Download the Arch Linux ARM operating system.
- Extract its files directly onto your Pi’s SD card.
- Activate the bootloader.
Let’s go over each step in detail.
3.1 Download Arch Linux ARM
First, we need to get Arch from the download page for Arch Linux ARM. The file you’ll want depends on which Pi model you own.

- For Raspberry Pi 4, Pi 3B+, and Pi Zero 2: you’ll want the ARMv8 file.
- For Raspberry Pi 2: you’ll want the ARMv7 file.
- For Raspberry Pi 5: this model is not officially supported as of this update.
Check the updated list here.
Download the release you chose using wget. For example:wget http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-aarch64-latest.tar.gz
3.2 Extract Arch Linux ARM Archive
Next, you have to unzip this archive in a special way—preserving file attributes—to install Arch properly. For this task, we’ll be using the bsdtar command.
- Install bsdtar:
sudo apt install libarchive-tools - You must run bsdtar as the root user. Simply adding sudo alone won’t work.
So let’s elevate to the root user for the remaining steps in this section:sudo su - Extract the archive to the mounted root partition on the SD card:
bsdtar -xpf ArchLinuxARM-rpi-aarch64-latest.tar.gz -C root
(Note: Be patient—it might seem like your system has frozen, but it’s just extracting files silently in the background. You’ll know it’s finished when it sends you back to the command line.) - Commit changes:
sync
3.3 Make the Bootloader Active
Then, we have to copy the proper files over to the boot partition on the SD card and prepare it to be loaded properly when we start Arch.
Move Boot Files
Since everything was extracted to a single directory, we’ll need to move the boot files to their proper partition.
You might also like: Probably one of the best Raspberry Pi workstations (review)
- Move boot files:
mv root/boot/* boot
Check Your Fstab For Proper Booting
Fstab is a system file that instructs Arch on how to mount specific partitions at boot.

The Problem: Arch needs to be told explicitly by fstab where your boot partition is.
The Solution:
- fstab for Raspberry Pi 3A & Pi 2: fstab is already correct by default. Skip to the next part, Shut Down Safely To Prep For Your First Boot.
- fstab for Raspberry Pi 4, 3B+, and Pi Zero 2: it defaults to the wrong device number so can’t find the boot partition when you load Arch for the first time. Thus, you’ll have to edit fstab to fix this problem.
Fix fstab for Raspberry Pi 4, 3B+, and Pi Zero 2
Important: if you don’t make the changes below to fstab, Arch will fail to boot and send you into emergency mode.
- View the current fstab:
cat root/etc/fstab - Modify the file:
sed -i 's/mmcblk0/mmcblk1/g' root/etc/fstab - Review changes:
cat root/etc/fstab

3.4 Shut Down Safely to Prep For Your First Boot
Finally, we’re done and need to get ready for our first boot into Arch:
- Unmount SD card partitions:
umount boot root - Shutdown:
shutdown now - Unplug the USB flash drive: we only needed to use this system for installation, but we’re done with it now. You won’t need it for the rest of this guide.
If you’ve made it this far, take a bow. In the next section, you’ll be booting into Arch for the first time.
4. First Boot With Arch Linux on Your Pi
Download the free PDF, keep it open, and stop wasting time on Google.
Download now
Now that you’ve installed the operating system, you’re ready to boot into Arch. Your goal is to activate your system and configure it for your use. In this section, the big picture steps are:
Read next: 15 Easy Projects for Raspberry Pi Beginners
- Log in for the first time.
- Connect to the Internet.
- Configure your local settings.
- Initialize the Arch package manager.
- Change the default user accounts.
Let’s go over each step in detail.
4.1 Login
Power your system on again. You’ll see your Pi searching for a USB drive, and when it doesn’t find one, it will boot into Arch from your SD card.
Log in as the default user:
- Default user login & password:
alarm / alarm - Default root login & password:
root / root
I recommend configuring everything with the root user until you setup sudo in the later steps.
4.2 Connect to the Internet
Ethernet
If you’re using an Ethernet cable, your internet connection probably works already. Test it out: ping archlinux.org
If you get a response, you’re online.
Wi-Fi
If you need to use a Wi-Fi connection, you’ll have to set it up first: wifi-menu
Select your network and hit Enter. Hit Enter again to assign the connection a default name. Next, you’ll be prompted for your Wi-Fi password. When that’s done, you should be connected. Test it: ping archlinux.org
If you get responses, you’re online.
4.3 Configure Localization
You’ll want to configure your Arch system so it understands your language, time zone, and other local settings.
Keyboard Layout
The default keyboard is us. If you need to change your keyboard layout, start by searching for your keymap: localectl list-keymaps | grep -i [yourlanguage]
- Search for your language (example for French):
localectl list-keymaps | grep -i fr - Set your keymap (substitute us with the keymap you chose above):
loadkeys us
Time Zone
To set your clock, you’ll have to tell Arch what your local time zone is.
- Search for available zones using that kind of command:
timedatectl list-timezones | grep -i europe
- Take note of which one matches your location.
- Set the time zone with the one you chose:
timedatectl set-timezone Europe/London - Check your new time zone:
timedatectl status
User Locale
Setting your locale is important for displaying your language, currency, symbols, and other standards specific to your country.
- Open the list of locales:
nano /etc/locale.gen - Choose your locale:
- Scroll down to find your language-country-charset.
When in doubt, go with UTF-8 for the character set. - Uncomment the line: delete the # symbol in front to uncomment the line.
In the example below, I’ve chosen English-USA-UTF8.
- Save & exit (Ctrl+X).
- Scroll down to find your language-country-charset.
- Generate:
locale-gen - Review change:
locale -a
4.4 Initialize Arch’s Package Manager: Pacman
Arch’s package manager, pacman, is how you’ll install the software. Pacman downloads and installs packages from a repository—in this case, the Arch Linux ARM repo. The steps below will activate pacman and ensure that you get signed packages.
- Elevate to root first:
su - Initialize pacman:
pacman-key --init
pacman-key --populate archlinuxarm
4.4 Change Default Accounts for Security
Download the free PDF, keep it open, and stop wasting time on Google.
Download now
You’ll want to change the default login details to protect your system. To complete the steps below, log in directly as root. Use the exit command to log out. You might have to do this twice until you return to the login screen. Now login as root.
Change Root Password
- Change your root password:
passwd
Change Default User Account
- Change default username using usermod -l [new_username] [old_username]:
usermod -l pat alarm - Change the user’s password:
passwd pat - Change home directory using usermod -d /home/[newuser] -m [newuser]:
usermod -d /home/pat -m pat
Give Sudo Privileges to Your User
You’ll want your user account to have admin rights so that you can update the system and install new packages. This is achieved by granting your user sudo privileges.
- Install the sudo package:
pacman -S sudo - Edit the /etc/sudoers file using a special command:
EDITOR=nano visudo - Add your user:
- Scroll down to “User privilege specification”
- Add your username underneath the “root” entry. Match the rest with the “root” entry.
- The example below shows sudo privileges being given to the user ‘pi’

- Save: Ctrl+X, Y, Enter.
- Log in as your new user: exit until you return to the login screen. Login as your new username, and the sudo command should work for you.
4.5 Finishing Up
- Reboot:
systemctl reboot now
Welcome to your working Arch system. Read on to learn how to get new software and install a desktop environment.
Want to connect with other Raspberry Pi fans? Join the RaspberryTips Community. Ask questions, share your projects, and learn from each other. Join now.
5. Post-Installation: Getting New Packages & Desktop Environment
Now that you’re done configuring your system, what’s left to do? To get the most out of Arch, you’ll want to get new programs using pacman. In this step, I’ll show you how to update your system, install packages, and set up a graphical desktop environment.
5.1 Using Pacman: Command Cheat Sheet
- Update everything:
pacman -Syu - Install a package:
pacman -S <pkgname> - Search for a package name:
pacman -Ss <yourkeyword> - Uninstall a specific package:
pacman -Rsc <pkgname>
5.2 Update System Packages
Let’s start by getting a list of packages and updating our existing packages: sudo pacman -Syu

Tip: the first time you run pacman, you might get a confusing prompt asking you to choose a provider. The default is best for new users.
Confirm, Y, to proceed with the installation. You’ll now see all of your packages downloading and updating.
Note: During the first update, you might see warnings about missing firmware modules. That’s okay; these warnings are common to Arch, but they relate to hardware not used by your Pi.
5.3 Install New Packages
To find out what programs and utilities are available, search the repo using sudo pacman -Ss <keyword>. Here’s an example:
- Search for package:
sudo pacman -Ss neofetch - Install the package:
sudo pacman -S neofetch
Other packages you might want to install:
- wget: downloads files from the command line.
- udiskie: automatically mounts removable media, such as USB flash drives.
- zip: compresses files into zip archives.
- unzip: extracts compressed zip archives.
- unrar: extracts compressed rar archives.
- yay: lets you install third-party packages from AUR (Arch User Repository).
5.4 Install Desktop Environment
Since Arch doesn’t come with a graphical user interface (GUI), you’ll need to install your own. In Linux terms, a GUI is referred to as a desktop environment (DE). There are many DEs officially supported by Arch, so choose your favorite one.

The installation process for each may be slightly different, but here are the overall steps:
- Install the DE’s metapackage: A metapackage installs many other packages to give you a full-featured desktop experience.
- Install a display manager: A graphical display manager makes it so that you’ll automatically boot into the desktop with a GUI login. Don’t forget that you’ll need to enable the display manager after installing it.
- Install a terminal emulator: A command prompt that works inside the DE.
- Install a web browser: Chromium, Firefox, and others let you surf the web.
- Reboot and log in.
5.5 Example Desktop Environment Installation: XFCE
I often lean toward recommending my favorite desktop environments: Cinnamon and KDE Plasma. Unfortunately, I had issues with them crashing—issues I haven’t experienced on other hardware/distros. Instead, for my example below, I’ll show you how to install a popular and lean desktop environment: XFCE.
- Install XFCE metapackage:
sudo pacman -S xfce4 xfce4-goodies
- Install LightDM display manager & enable it:
sudo pacman -S lightdm lightdm-gtk-greetersudo systemctl enable lightdm - Install network manager (if you need Wi-Fi):
sudo pacman -S networkmanager network-manager-applet - Install terminal emulator: xfce4-terminal is already installed by the metapackage above.
- Install web browser:
sudo pacman -S chromium - Reboot:
systemctl reboot now
If you see the graphical display manager prompting you to log in, success!
Read next: 15 Easy Projects for Raspberry Pi Beginners

Congratulations, you’re now running Arch on your Raspberry Pi! If you have hardware issues with Bluetooth, onboard sensors, or I/O pins, check out the Arch Linux ARM wiki specifically for Pi. If you need further support, the venerable Arch Wiki will have answers to many problems that others have already solved. Lastly, if you want more ideas, check out my other Linux tutorials.
Go forth and enjoy the power of your new ArchPi. With it, you can accomplish almost anything you can dream of. Now you too can say, “I use Arch btw.”
Whenever you’re ready, here are other ways I can help you:
Test Your Raspberry Pi Level (Free): Not sure why everything takes so long on your Raspberry Pi? Take this free 3-minute assessment and see what’s causing the problems.
The RaspberryTips Community: Need help or want to discuss your Raspberry Pi projects with others who actually get it? Join the RaspberryTips Community and get access to private forums, exclusive lessons, and direct help.
Master your Raspberry Pi in 30 days: If you are looking for the best tips to become an expert on Raspberry Pi, this book is for you. Learn useful Linux skills and practice multiple projects with step-by-step guides.
Master Python on Raspberry Pi: Create, understand, and improve any Python script for your Raspberry Pi. Learn the essentials step-by-step without losing time understanding useless concepts.
You can also find all my recommendations for tools and hardware on this page.
