How to Install Arch Linux in BIOS (Legacy) Mode

This guide will walk you through the process of installing Arch Linux in BIOS (Legacy) mode, from preparing your installation media to booting into your new system.

Installing Arch Linux can be a rewarding experience for those who want full control over their operating system setup. Unlike most Linux distributions, Arch follows a minimalist philosophy that lets users build their system from the ground up. If you’re installing Arch on an older machine or prefer the traditional boot mechanism, you’ll likely need to install it in BIOS (Legacy) mode rather than UEFI.

This guide will walk you through the process of installing Arch Linux in BIOS mode, from preparing your installation media to booting into your new system.


Table of Contents


Prerequisites

Before starting, make sure you have:

  • A system that supports BIOS/Legacy boot.
  • A USB drive (at least 2 GB) for installation media.
  • Stable internet connection (Ethernet or Wi-Fi).
  • Basic knowledge of Linux command-line usage.

If you are switching from a UEFI setup, you might need to disable Secure Boot and enable Legacy/CSM Boot Mode in your BIOS/firmware settings.


Create the Installation Media

  1. Download the Arch ISO
    Get the latest Arch Linux ISO from the official website:
    https://archlinux.org/download/

  2. Burn the ISO to a USB drive
    Use a tool like dd on Linux:

    sudo dd bs=4M if=archlinux-*.iso of=/dev/sdX status=progress oflag=sync
    

    Replace /dev/sdX with your USB device (not a partition like /dev/sdX1).

    On Windows, you can use Rufus and select MBR partition scheme and BIOS (or UEFI-CSM) target system.


Booting into the Arch ISO (BIOS Mode)

  1. Insert the USB stick and reboot the machine.
  2. Enter the BIOS/firmware setup (usually by pressing DEL, F2, or F10).
  3. Ensure Legacy Boot or CSM is enabled and UEFI is disabled.
  4. Choose your USB drive from the BIOS boot menu.
  5. At the Arch boot screen, select the first option: Arch Linux install medium.

You’re now inside the live Arch Linux environment.


Verify Internet Connection

Ethernet

Plug in a cable and test connectivity:

ping archlinux.org

Wi-Fi

Use iwctl to connect:

iwctl

Inside iwctl:

station wlan0 scan
station wlan0 get-networks
station wlan0 connect YourNetworkName

Once connected:

exit  # to leave iwctl
ping archlinux.org

Update the System Clock

Make sure the system clock is accurate:

timedatectl set-ntp true

Check status:

timedatectl status

Partition the Disk (MBR Scheme)

We’ll use fdisk to create an MBR partition layout. For BIOS mode, you do not need an EFI System Partition.

fdisk /dev/sda

Sample setup:

  1. Delete existing partitions (d)
  2. Create a new primary partition for root (n, p, 1)
  3. (Optional) Create a second partition for swap (n, p, 2)
  4. Write changes (w)

Format and Mount the Partitions

Format root partition

mkfs.ext4 /dev/sda1

(Optional) Set up swap

mkswap /dev/sda2
swapon /dev/sda2

Mount root partition

mount /dev/sda1 /mnt

Install Essential Packages

Now install the base system:

pacstrap /mnt base linux linux-firmware vim nano networkmanager
  • base - core system
  • linux - kernel
  • linux-firmware - device firmware
  • networkmanager - easier post-install networking

Configure the System

Generate fstab

genfstab -U /mnt >> /mnt/etc/fstab

Change root into the new system

arch-chroot /mnt

Set time zone

ln -sf /usr/share/zoneinfo/Region/City /etc/localtime
hwclock --systohc

Example for Berlin:

ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime

Localization

Uncomment your locale in /etc/locale.gen, e.g., en_US.UTF-8 UTF-8

nano /etc/locale.gen
locale-gen

Set locale:

echo "LANG=en_US.UTF-8" > /etc/locale.conf

Set hostname

echo "archbox" > /etc/hostname

Configure hosts file

cat <<EOF > /etc/hosts
127.0.0.1   localhost
::1         localhost
127.0.1.1   archbox.localdomain archbox
EOF

Set root password

passwd

Install and Configure the Bootloader (GRUB)

First, install GRUB and BIOS boot support:

pacman -S grub

Install GRUB to the MBR of your disk:

grub-install --target=i386-pc /dev/sda

Generate the GRUB config:

grub-mkconfig -o /boot/grub/grub.cfg

Exit and Reboot

  1. Exit chroot:
exit
  1. Unmount partitions:
umount -R /mnt
  1. Reboot:
reboot

Remove the installation media when prompted.


Post-Installation Recommendations

Once the system boots into your new Arch installation, you may want to perform some additional tasks:

Enable Networking

Enable NetworkManager so that it starts automatically:

systemctl enable NetworkManager

Reboot or start it manually:

systemctl start NetworkManager

Create a Regular User

It’s good practice not to use root as your main user.

useradd -m -G wheel -s /bin/bash alice
passwd alice

Give the user sudo privileges by uncommenting the %wheel line in:

EDITOR=nano visudo

Install Essential Tools

pacman -S sudo git base-devel bash-completion

Graphical Interface (Optional)

If you want a desktop environment (like XFCE, GNOME, or KDE), install X and a display manager:

pacman -S xorg xorg-xinit xfce4 lightdm lightdm-gtk-greeter
systemctl enable lightdm

Conclusion

Installing Arch Linux in BIOS (Legacy) mode gives you a deep understanding of how Linux works from the inside out. By manually partitioning the disk, setting up filesystems, and configuring the bootloader, you gain precise control over every part of the OS. While Arch has a learning curve, it rewards you with speed, minimalism, and a fully customized system that’s truly yours.

If you’re ready to dive deeper, the Arch Wiki is your best companion for mastering and maintaining your installation.