Arch Linux Install

Connecting Network

iwctl <--- open wifi settings
device list <--- show available wifi devices
station YOURDEVICEHERE scan <--- look for networks
station YOURDEVICEHERE get-networks <--- list available networks
station YOURDEVICEHERE connect YOURNETWORKHERE <--- connect to network
quit <--- leave wifi settings
ping google.com <-- to check internet connection working or not


Fix Signing Keys issues

pacman-key --init
pacman-key --populate archlinux

Verifying EFI or not

ls /sys/firmware/efi/efivars/

This should pop some results


Update Date & Time

timedatectl status to check current status
timedatectl list-timezones to view available timezones
timedatectl set-timezone Asia/Kolkata set IST


Partitioning

Note that the numbers and alphabets maybe varying in your case like /dev/sda or /dev/sda5

General Viewing

lsblk - to properly view the drives
hdparam -i /dev/sda - more info about the drive
fdisk -l - detailed drives view

Create Partitions

cfdisk /dev/sda - to start making partitions

Format Paritions

mkfs.ext4 /dev/sda5 - to make ext4 partitions
mkswap /dev/sda7 - to make swap partitions
swapon /dev/sda7 - to mention swap mountpoint
Mounting Home and Root Partitions

mount /dev/sda5 /mnt
mkdir /mnt/home
mount /dev/sda6 /mnt/home

Setting up Mirrors

cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak Backing up current mirror list
pacman -Sy update pacman databases
pacman -S pacman-contrib install ranking tool
rankmirrors -n 10 /etc/pacman.d/mirrorlist.bak > /etc/pacman.d/mirrorlist rank the list and update the servers by their speed
you can view it again by using cat (cat /etc/pacman.d/mirrorlist)


Install Arch to root partition

Installing necessary packages

pacstrap -i /mnt base base-devel linux linux-lts linux-headers linux-firmware intel-ucode sudo nano git neofetch networkmanager dhcpcd pulseaudio bluez wpa_supplicant

Generate File System Table

When we boot to arch drive, we need to tell the system that we need to mount all the partitions under current boot /mnt to the same location

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

you can view it again by using cat (cat /mnt/etc/fstab)


Entering Arch Drive

We can chroot to our installed arch drive arch-chroot /mnt
you can verify if you are there or not by typing lsblk

Set Password and Sudo

passwd - set superuser password
you should not run system as a root user as a practice, so lets create a user

useradd -m stealthspectre
passwd stealthspectre
(and setup your password)

add to user groups usermod -aG wheel,storage,power stealthspectre
edit the sudoers file to access sudo

EDITOR=nano visudo

uncomment %wheel ALL=... this thing
you can add timeout for asking password below it by mentioning the time
Defaults timestamp_timeout=0
Ctrl+O - to write the changes
Ctrl+X - to exit the editor


Setting System Language

nano /etc/locale.gen
scroll all the way and uncomment en_US.UTF-8 UTF-8
locale-gen - to generate the saved locale
echo LANG=en_US.UTF8 > /etc/locale.conf - create a locale config file
export LANG=en_US.UTF-8 - export the system language


Setup Host Name

echo ArchLinux > /etc/hostname

And add these lines to nano /etc/hosts

127.0.0.1 <tabspace> localhost
::1 <tabspace>  localhost
127.0.1.1 <tabspace>  ArchLinux<this_is_your_hostname>.localdomain <tabspace>  localhost

Setup TIme Zone and Local Time

ln -sf /usr/share/zoneinfo/Asia/Kolkata /etc/localtime
hwclock --systohc

you can use <tab> to see the timezones after .../zoneinfo/


Setup GRUB

Prerequisites

Constantly use lsblk to check whats happening and to select partitions

mkdir /boot/efi
mount /dev/sda1 /boot/efi/
pacman -S grub efibootmgr dosfstools mtools

Edit and Updating GRUB config file

nano /etc/default/grub

uncomment GRUB_DISABLE_OS_PROBER=false
Ctrl+O - to write the changes
Ctrl+X - to exit the editor

pacman -S osprober
grub-install --target=x86_64-efi --bootloader-id=grub_uefi --recheck
grub-mkconfig -o /boot/grub/grub.cfg

Finalizing

systemctl enable dhcpcd.service Enabling network services (This service is responsible for providing the ip-address)
systemctl enable NetworkManager.service
Exit the chroot by exit
umount -lR /mnt - to unmount all the partitions
now run systemctl daemon-reload to make sure that grub is visible in the bootloader
reboot and remove the installation media