- Download the ISO from https://www.archlinux.org/download/ through HTTP/Bittorent.
- Copy the image to a thumbdrive using dd (linux) or rufus (windows)
- Boot into Arch!
blah
If you have a wired connection to the internet. You shouldn't need to do anything. The steps below are for setting up a wireless connection to a home network secured with WPA.
List devices with:
# iw dev
Activate the interface
# ip link set YOUR_INTERFACE up
Scan for wireless access points, piping the output into less
:
# iw dev YOUR_INTERFACE scan | less
Noting your wireless AP's SSID from the previous step.
This pipes the output of wpa_passphrase
which produces prints a barebones configuration file, into wpa_supplicant
.
# wpa_supplicant -B -i YOUR_INTERFACE -c <(wpa_passphrase SSID PASSPHRASE)
Obtain an IP address after connecting to the AP.
# dhcpcd YOUR_INTERFACE
At this point you should be connected to the internet, verify that everything works as it should by pinging a website.
# ping archlinux.org
network={
ssid="YOUR_SSID"
scan_ssid=1
key_mgmt=WPA-EAP
identity="YOUR_USERNAME"
password="YOUR_PASSWORD"
eap=PEAP
phase1="peaplabel=0"
phase2="auth=MSCHAPV2"
}
https://wiki.archlinux.org/index.php/Wireless_network_configuration#iw
List the connected storage devices.
# fdisk -l
Run fdisk
on the drive you want to install Arch on.
# fdisk /dev/YOUR_DRIVE
This will launch the fdisk
prompt, further commands for formatting and partitioning the drive will be executed inside the fdisk prompt.
Create the GPT table with g
.
Command (m for help): g
Following that we'll be setting up the partitions according to this table:
Mount point | Partition | Partition Type | Size |
---|---|---|---|
/mnt/boot |
/dev/sda1 |
EFI System | 512MB |
/mnt/ |
/dev/sda2 |
Linux Filesystem | Rest of disk |
SWAP |
/dev/sda3 |
Linux Swap | 2GB |
Creating the EFI System partition.
Some text to the left of the :
has been ommitted for brevity.
Command (m for help): n
Partition number (1-128, default 1): 1
First sector (default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P}: +512M
Created a new partition 1 of type 'Linux filesystem' and of size 512MiB.
This will have created it as a Linux Filesystem partition, to change that into an EFI System partition, we execute the following command.
Command (m for help): t
Selected partition 1
Partition type (type L to list all types): 1
Changed type of partition 'Linux filesystem' to 'EFI System'.
Creating the swap partition.
Command (m for help): n
Partition number (1-128, default 1): 3
First sector:
Last sector, +/-sectors or +/-size{K,M,G,T,P}: +2G
Created a new partition 3 of type 'Linux Filesystem' and of size 2GiB.
Command (m for help): t
Partition number (1,3, default 3): 3
Partition type (type L to list all types): 19
Changed type of partition 'Linux filesystem' to 'Linux swap'.
Finally, creating the main filesystem partition. The size argument here leaves 20KB of disk unpartitioned to allowe converting between MBR and GPT if necessary. If wasting 20KB bothers you, leave it empty to default to using the rest of disk.
Command (m for help): n
Partition number (2,4-128, default 2): 2
First sector:
Last sector, +/-sectors or +/-size{K,M,G,T,P}: -20K
Created a new partition 2 of type 'Linux filesystem' and of size 486.6GiB.
Verify all partitions are as they should be and write them to the disk.
Command (m for help): p
...
Command (m for help): w
Verify that the partitions have been written to your disk with
# fdisk -l /dev/YOUR_DRIVE`
It should show the 3 partitions we've just created.
First off we'll format the EFI partition as FAT32. Note: it MUST be formatted as a FAT filesystem.
# mkfs.fat -F32 /dev/sda1
Format the main linux filesystem with whatever you'd like, I'll just be formatting it with the tried and true ext4
fs.
# mkfs.ext4 /dev/sda2
Now the swap partition
# mkswap /dev/sda3
Mounting all the filesystems we've created
# mount /dev/sda2 /mnt
# mount /dev/sda1 /mnt/boot
# swapon /dev/sda3
Generate an fstab file (use -U or -L to define by UUID or labels, respectively).
# mkdir /mnt/etc
# genfstab -t PARTUUID /mnt >> /mnt/etc/fstab
Update the system clock.
# timedatectl set-ntp true
Installing the base packages
# pacstrap /mnt base linux linux-firmware nano wpa_supplicant efibootmgr
Change root into the new system
# arch-chroot /mnt
Set the time zone
# ln -sf /usr/share/zoneinfo/Australia/Sydney /etc/localtime
# hwclock --systohc
Uncomment en_US.UTF-8 UTF-8 and other needed locales in /etc/locale.gen
, and generate them with:
# locale-gen
Create the locale.conf file, and set the LANG variable accordingly in
/etc/locale.conf
:
LANG=en_US.UTF-8
Set the root password:
# passwd
Time to setup the boot loader. Since we're going with a UEFI BIOS... We have to install efibootmgr
to set it up.
Get the PARTUUID of the EFI partition you created earlier.
blkid /dev/sda2
Run, it's a mouthfull, but bear with it! root=PARTUUID=
needs to contain the PARTUUID of the root partition, sda2
in our case. While the argument for --disk and --part 1 refer to the EFI
# efibootmgr --disk /dev/sda1 --part 1 --create --label "Arch Linux" --loader /vmlinuz-linux --unicode 'root=PARTUUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX rw initrd=\initramfs-linux.img' --verbose
New user
useradd -m -G wheel username
Allow wheel group to use sudo by changing /etc/sudoers
DE: xfce4
DM: ly(AUR)
Audio: pulseaudio pavcontrol
Network: networkmanager network-manager-applet
Browser: firefox
Security: keepassxc
pacman wrapper: yay
Fonts: ttf-fantasque-sans-mono noto-fonts ttf-freefont
Editor: vscode(AUR)
Terminal: tmux alacritty
Candy: neofetch steam(multilib)
Dev: python git htop go
Comms: discord(AUR) hexchat
Sync: syncthing dropbox(AUR)
Ftp: lftp vsftpd gvfs
Mkdir /mnt/boot