Official guide for basic install: https://wiki.archlinux.org/index.php/Installation_Guide
it is always good to consult with official guide, cause arch config might change in time
For setting up different locale, or better explanations check out Arch Wiki
dd if=archlinux.img of=/dev/sdX bs=16M && sync
Remember this area is saved in your RAM, so make sure you have enough of it
mount -o remount,size=5G /run/archiso/cowspace
pacman -Syy plasma-desktop glibc konsole xorg
pacman -Scc
startplasma-wayland
loadkeys pl
timedatectl set-ntp true
reflector --country 'Poland' --age 24 --verbose --sort rate --save /etc/pacman.d/mirrorlist
pacman -Syy btrfs-progs
lsblk
fdisk /dev/sdX
mkfs.vfat -F32 /dev/sdX1
Don't use regional letters (not in en-us keyboard) like ąęć etc. for password. This requires additional steps, which are not covered by this tutorial.
cryptsetup -c=aes-xts-plain64 --key-size=512 --hash=sha512 --iter-time=3000 --pbkdf=pbkdf2 --use-random luksFormat --type=luks1 /dev/sdX2
cryptsetup luksOpen /dev/sdX2 MainPart
mkfs.btrfs -L "Arch Linux" /dev/mapper/MainPart
pacman -Syy btrfs-progs
mkfs.btrfs -L "Arch Linux" /dev/sdX2
mount /dev/sdX2 /mnt
/var/log
and /tmp
.btrfs su cr /mnt/@
btrfs su cr /mnt/@home
btrfs su cr /mnt/@varlog
btrfs su cr /mnt/@tmp
btrfs su cr /mnt/@snapshots
/var/log
and /tmp
chattr +C /mnt/@varlog
chattr +C /mnt/@tmp
umount /mnt
mount -o defaults,noatime,discard,ssd,subvol=@ /dev/sdX2 /mnt
mkdir /mnt/home
mkdir -p /mnt/var/log
mkdir /mnt/tmp
mkdir /mnt/snapshots
mkdir /mnt/efi # for EFI partition /dev/sdX1
mount -o defaults,noatime,discard,ssd,subvol=@home /dev/sdX2 /mnt/home
mount -o defaults,noatime,discard,ssd,subvol=@varlog /dev/sdX2 /mnt/var/log
mount -o defaults,noatime,discard,ssd,subvol=@tmp /dev/sdX2 /mnt/tmp
mount -o defaults,noatime,discard,ssd,subvol=@snapshots /dev/sdX2 /mnt/snapshots
mount /dev/sdX1 /mnt/efi
vim /etc/pacman.d/mirrorlist
pacstrap /mnt/ base base-devel git btrfs-progs efibootmgr linux linux-headers linux-firmware mkinitcpio dhcpcd bash-completion sudo
genfstab /mnt >> /mnt/etc/fstab
####
arch-chroot /mnt /bin/bash
ln -s /usr/share/zoneinfo/Europe/Warsaw /etc/localtime
hwclock --systohc --utc
/etc/hostname
myhostname
/etc/vconsole.conf
KEYMAP=pl
FONT=Lat2-Terminus16.psfu.gz
FONT_MAP=8859-2
locale-gen
etc/locale.conf
LANG=en_US.UTF-8
LC_COLLATE=pl_PL.UTF-8
LC_MEASUREMENT=pl_PL.UTF-8
LC_MONETARY=pl_PL.UTF-8
LC_NUMERIC=pl_PL.UTF-8
LC_TIME=pl_PL.UTF-8
/etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.1.1 myhostname.localdomain myhostname
/
, which would not be possible with any file in it with CoW disabled!btrfs su create /swap
chattr +C /swap
touch /swap/swapfile
lsattr /swap/swapfile'
chattr +C /swap/swapfile
dd if=/dev/zero of=/swap/swapfile bs=1024K count=4096
chmod 600 /swap/swapfile
mkswap /swap/swapfile
swapon /swap/swapfile
/etc/fstab
to mount swapfile on boot:/swap/swapfile none swap sw 0 0
passwd
useradd -m MYUSERNAME
passwd MYUSERNAME
vim /etc/mkinitcpio.conf
HOOKS=(base udev autodetect keyboard keymap modconf block btrfs filesystems keyboard fsck)
BINARIES=(btrfsck)
HOOKS=(... keyboard keymap block encrypt btrfs ... filesystems ...)
######
mkinitcpio -P
pacman -S grub efibootmgr os-prober dosfstools mtools
/etc/default/grub
GRUB_ENABLE_CRYPTODISK=y
blkid
/etc/default/grub
GRUB_CMDLINE_LINUX="cryptdevice=UUID=<device-UUID>:MainPart:allow-discards"
dd bs=512 count=4 if=/dev/random of=/crypto_keyfile.bin iflag=fullblock
chmod 600 /crypto_keyfile.bin
chmod 600 /boot/initramfs-linux*
cryptsetup luksAddKey /dev/sdX2 /crypto_keyfile.bin
/etc/mkinitcpio.conf
FILES=(/crypto_keyfile.bin)
then run:
mkinitcpio -P
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
exit
swapoff -a
umount -R /mnt
reboot
shutdown now
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
localectl status