Find out which keyboard layout you are using and then set it using loadkeys:
$ ls /usr/share/kbd/keymaps/**/*.map.gz
$ loadkeys us
This step is not really necessary, but the Terminus font may appear cleaner than the default one:
$ setfont Lat2-Terminus16
Check the name of the hard disk:
fdisk -l
Use the name (in my case vda) to start the fdisk partitioning tool:
fdisk /dev/vda
Run the following command:
$ ls /sys/firmware/efi/efivars
If the command shows the directory without error, then the system is booted in UEFI mode. Else you have to use BIOS mode.
Press g to create a new GPT Partition Table.
We will do it according to the example layout of the Arch wiki:
| Mount point | Partition | Partition type | Suggested size |
|---|---|---|---|
| /mnt/boot | /dev/efi_system_partition | uefi | At least 300 MiB |
| [SWAP] | /dev/swap_partition | swap | More than 512 MiB |
| /mnt | /dev/root_partition | linux | Remainder of device |
- Press n.
- Press Enter to use the default first sector.
- Enter +300M for the last sector.
- Press t and choose 1 and write uefi.
- Press n.
- Press Enter to use the default first sector.
- Enter +512M for the last sector.
- Press t and choose 2 and write swap.
- Press n.
- Press Enter to use the default first sector.
- Enter Enter to use the default last sector.
- Press t and choose 3 and write linux.
After partitioning check if the partitions have been created using fdisk -l.
$ mkfs.ext4 /dev/root_partition
$ mkswap /dev/swap_partition
$ mkfs.fat -F 32 /dev/efi_system_partition
$ mount /dev/root_partition /mnt
$ mount --mkdir /dev/efi_system_partition /mnt/boot
$ swapon /dev/swap_partition
Press o to create a new GPT Partition Table.
We will do it according to the example layout of the Arch wiki:
| Mount point | Partition | Partition type | Suggested size |
|---|---|---|---|
| [SWAP] | /dev/swap_partition | swap | More than 512 MiB |
| /mnt | /dev/root_partition | linux | Remainder of device |
- Press n.
- Press Enter to select the default primary partition type.
- Press Enter to use the default first sector.
- Enter +512M for the last sector.
- Press t and choose 1 and write swap.
- Press n.
- Press Enter to select the default primary partition type.
- Press Enter to use the default first sector.
- Enter Enter to use the default last sector.
- Press t and choose 2 and write linux.
Press a and choose 2 to make the root partition bootable.
After partitioning check if the partitions have been created using fdisk -l.
$ mkfs.ext4 /dev/root_partition
$ mkswap /dev/swap_partition
$ mount /dev/root_partition /mnt
$ swapon /dev/swap_partition
For a minimal system download and install these packages:
$ pacstrap -K /mnt base base-devel linux linux-firmware e2fsprogs dhcpcd networkmanager sof-firmware git nano vim neovim man-db man-pages texinfo
ℹ️ If you are installing Arch Linux on a computer with ARM architecture add the following to the above pacstrap command:
archlinuxarm-keyring
- Initialize pacman keys and populate them:
pacman-key --init
pacman-key --populate
- Synchronize Arch keyring:
archlinux-keyring-wkd-sync
$ genfstab -U /mnt >> /mnt/etc/fstab
$ arch-chroot /mnt
$ ln -sf /usr/share/zoneinfo/Region/City /etc/localtime
$ hwclock --systohc
Edit /etc/locale.gen and uncomment en_US.UTF-8 UTF-8 and other needed locales. Generate the locales by running:
$ locale-gen
Create /etc/locale.conf and set the LANG variable according to your preferred language:
LANG=en_US.UTF-8
Create /etc/vconsole.conf and set the following variables according to your preferred language:
KEYMAP=us
FONT=Lat2-Terminus16
Create /etc/hostname and type any name you wish as your hostname:
scooby
Edit /etc/hosts like this:
127.0.0.1 localhost
::1 localhost
127.0.1.1 (your host name here!)
$ mkinitcpio -P
Set a new password for root:
$ passwd
Install grub and efibootmgr:
$ pacman -S grub efibootmgr
Run the following command:
$ grub-install --efi-directory=/boot --bootloader-id=GRUB
Then create a GRUB config file:
$ grub-mkconfig -o /boot/grub/grub.cfg
Install grub:
$ pacman -S grub
Check using fdisk -l to see the name of the disk (not partition!) and run the following command:
$ grub-install /dev/sdX
/dev/sdX could for example stand for /dev/sda (not /dev/sda1!)
Then create a GRUB config file:
$ grub-mkconfig -o /boot/grub/grub.cfg
Exit out of the chroot environment by typing exit or pressing Ctrl+d.
Unmount all the partitions:
$ umount -R /mnt
Then type poweroff and remove the installation disk from the virtual machine.
To use pacman you first have to have a working internet connection by enabling NetworkManager:
$ systemctl start NetworkManager
$ systemctl enable NetworkManager
Check if you receive data from the Google Server by running this command:
$ ping 8.8.8.8
First things first: Update the system!
$ pacman -Syu
$ pacman -S sudo
$ useradd -m -g users -G wheel,storage,power,video,audio <your username>
$ passwd <your username>
$ EDITOR=nvim visudo
Uncomment the following line:
%wheel ALL=(ALL) NOPASSWD: ALL
You can then login as your newly created user:
$ su <your username>
If you wish to have the default XDG directories (like Downloads, Pictures, Documents etc.) do:
$ sudo pacman -S xdg-user-dirs
$ xdg-user-dirs-update
To install yay:
$ sudo pacman -S git
$ mkdir aur
$ cd aur
$ git clone https://aur.archlinux.org/yay.git
$ cd yay
$ makepkg -si