Make sure you have:
What do those shiny GUIs hide from us?
We are going to:
For those unfamiliar, a VM is:
root@archiso ~ #
For more details, check out the Arch Wiki - Installation guide
Default is a US QWERTY layout
For UK keyboards:
$ loadkeys uk
Installation needs an internet connection, let's test it
$ ping 8.8.8.8
Hard drives, SSDs, USB drives etc. are usually /dev/sdX
Our HDD is on /dev/sda
Partitions exist as /dev/sdXN
, e.g. /dev/sda1
, /dev/sda2
etc.
$ cgdisk /dev/sda
ef00
$ mkfs.fat -F32 /dev/sda1
$ mkfs.btrfs /dev/sda2
For installation, mount everything under /mnt
/dev/sda2
will be the root filesystem:
$ mount /dev/sda2 /mnt
/dev/sda1
will become /boot
:
$ mkdir /mnt/boot
$ mount /dev/sda1 /mnt/boot
Do the install:
$ pacstrap /mnt base
Generate /etc/fstab
:
$ genfstab -U /mnt >> /mnt/etc/fstab
/mnt
now has a ready system, switch to it:
$ arch-chroot /mnt
Set root password:
$ passwd
Edit /etc/locale.gen
and uncomment desired locales: probably en_GB.UTF-8 UTF-8
.
Generate locales:
$ locale-gen
Set the default locale in /etc/locale.conf
(create it):
LANG=en_GB.UTF-8
Set the system timezone with the /etc/localtime
symlink
$ ln -sf /usr/share/zoneinfo/Europe/London /etc/localtime
Set the keymap permanently in /etc/vconsole.conf
:
KEYMAP=uk
Create /etc/systemd/network/enp0s3.network
:
[Match]
Name=enp0s3
[Network]
DHCP=yes
Enable required services to run on boot:
$ systemctl enable systemd-networkd systemd-resolved
$ bootctl --path=/boot install
$ cp /usr/share/systemd/bootctl/arch.conf /boot/loader/entries/
$ cp /usr/share/systemd/bootctl/loader.conf /boot/loader/
Edit /boot/loader/entries/arch.conf
:
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=/dev/sda2 rw
Now exit the chroot:
$ exit
Create a final symlink needed for networking:
$ ln -sf /usr/lib/systemd/resolv.conf /mnt/etc/resolv.conf
Unmount partitions:
$ umount -R /mnt
Reboot!
Username is root
$ ping 8.8.8.8
$ ping google.com
Where can you go from here?