Replace [path_to_archlinux.iso] with the actual path to your Arch Linux ISO file and [path_to_usb_device] with the correct path to your USB device.
Be careful specifieng the path to the USB device.
Check the path with
# lsblk
A USB stick is usually mounted under /run/media/ e.g.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 1 111.8G 0 disk
├─sda1 8:1 1 102G 0 part /
└─sda2 8:2 1 9.8G 0 part [SWAP]
sdb 8:16 1 3.6T 0 disk /data
/srv
/raid1
sdc 8:32 1 3.6T 0 disk
sdd 8:48 1 7.6G 0 disk
└─sdd1 8:49 1 7.6G 0 part /run/media/tom/TUEVAUSTRIA
sr0 11:0 1 1024M 0 rom
In this example the USB device partition is `sdd1` and the device itself is `sdd` which should be used as [path_to_usb_device].
### Start the install ISO
Select **Arch Linux install medium (x86_64)** and press **Enter** to start the setup process
### Set the Keyboard Layout
The default keymap is set to US. To list other available layouts run
# ls /usr/share/kbd/keymaps/**/*.map.gz
To change to the German keyboard layout enter
# loadkeys de-latin1
It is a little difficult to find the correct keys on a US keyboard. The **`y`** is swapped with the **`z`**, and the **`-`** is on the **`ß`** key.
### Check the Internet Connection
# ping -c 3 google.com
### Enable Network Time Protocol (NTP)
# timedatectl set-ntp true
To check the NTP service, use:
# timedatectl status
### Partition the Disk
#### BTRF file system without a partition
Just to get an overview of the drives
# lsblk
Create the filesystem with
# mkfs.btrfs /dev/sdX --label arch
Replace X with the drive letter or if it is an nvme drive use /dev/nvmeXX with the correct drive label. `--label` or `-L` defines the Label of the drive, e.g. *arch*.
### Check the Mirror List for an Suitable Mirror
To speed up the download, set up the mirror list so that the fastest mirrors are at the top.
First, sync the Arch repository with `pacman`
# pacman -Syy
Install **reflector** to be able to update the mirrors and sort them by download speed. Add reflector by running:
Replace **"XX"** with the your location country code (e.g. enter "US" if you are
located in the United States, or "AT,DE" if you are located close to Austria and Germany)
## Install Arch Linux
### Mount the **root** partition
Btrfs filesystem has the following options, which are useful to change:
***noatime**, useful to use by default because atime updates increases metadata writes. relatime is default,
* **commit=300**, default is 30, the interval of periodic transaction commit,
* **compress=zstd:2**, default is no, use zstd compression from [1,15] ratio. Default zstd ratio is 3.
#### Mount the Drive with Label *arch* to /mnt
# mount -o compress=zstd:2,noatime,commit=300 LABEL=arch /mnt
### PACSTRAP installation script for necessary packages to the bootable device
# pacstrap /mnt base linux linux-firmware nano mc btrfs-progs dhcpcd
## Configure Arch Linux
### Generate fstab File
The **fstab** file defines the order in which disks, partitions, block devices, and other data sources are mounted.
Create the **fstab** file by running:
# genfstab -U /mnt >> /mnt/etc/fstab
### Use Arch-Chroot and Enter the Mounted Disk as Root
Change the **root** to the newly installed Arch Linux system with the 'arch-chroot' command:
# arch-chroot /mnt
[root@archiso /]#
### Set the Time Zone
Setting the correct time zone ensures the system clock reflects the accurate local time.
#### List all available time zones
# find /usr/share/zoneinfo -type f | more
Find your timezone and make a note of the name, make an `ln`command to create a symbolic link from the timezone to */etc/localtime*. For *Europe/Vienna* run