Archlinux installation

Notes:

Read this two official wiki: First pre-install Software & Hardware Issues/Wikis

You can try archinstall, it's pretty simple to install the os.

Be careful when executing commands.

1.Connect to the internet(wireless)

ifconfig to check the network card.

Here wlan0 as default(Since I'm on laptop).

iwctl

station wlan0 scan

station wlan0 get-networks

station wlan0 connect select_yourNetwork

Once you're done, type exit.

2.Disk partition and format

If you have an old pc, you should check your bios that support uefi or not.

Since there are two choice to install arch: uefi and legacy.

On legacy you don't have to create the efi partition and install efibootmgr.

Be clear what disk you are going to partition.

If it's a m.2 disk it should be something like /dev/nvme0n1p1.

If it's a sata or some udisk it should be /dev/sda

Btw don't format your installation media.

fdisk -l to list disks on your computer.

cfdisk

Partition table example
Part(s) Type Size
nvme0n1p1 EFI 300MiB
nvme0n1p2 swap 4GiB
nvme0n1p3 f2fs Remain

Formatting:

Here are some filesystems like: ext4, brtfs, xfs, f2fs...

I choose ext4 here.

mkfs.fat -F 32 /dev/nvme0n1p1

mkswap /dev/nvme0n1p2

swapon /dev/nvme0n1p2

mkfs.ext4 /dev/nvme0n1p3

Mounting:

mount /dev/nvme0n1p3 /mnt

mount --mkdir /dev/nvme0n1p1 /mnt/boot

3.Packages

Some mirrors may improve your download speed: Arch mirrorlist Arch generator

vim /etc/pacman.d/mirrorlist

Insert this code: Server = /your/mirror/$repo/os/$arch

Refresh your repo with: pacman -Syu.

pacstrap -K /mnt linux linux-firmware base base-devel \

efibootmgr grub networkmanager

pipewire pipewire-{alsa,jack,pulse} mesa \

xorg xorg-server xorg-xdm udisks2 gvfs ntfs-3g wget git vi vim \

wqy-microhei-lite terminus-font bluez bluez-utils \

alsa-{utils,plugins} zip {un,p7}zip tlp acpi{d,light}

Graphic card driver:

intel: vulkan-intel,intel-media-driver,libva-intel-driver

amd: xf86-video-amd,vulkan-radeon

Microcode:

intel cpu: intel-ucode;

amd cpu: amd-ucode;

pacstrap /mnt intel-ucode intel-media-driver vulkan-intel \

xf86-video-fbdev linux-firmware-qlogic(for me)

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

4.Time and language

ls /usr/share/zoneinfo to list timezone.

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

hwclock --systohc

vim /etc/locale.gen

Find your locale and uncomment it.

locale-gen

echo LANG=en_US.UTF-8 > /etc/locale.conf

echo your-hostname(eg. archlinux) > /etc/hostname

5.GRUB config

Legacy:

grub-install --target=i386-pc /dev/nvme0n1p3

UEFI:

grub-install --target=x86_64-efi --efi-directory=/boot

Not 100% sure these code do

vim /etc/default/grub

Find GRUB_CMDLINE_LINUX_DEFAULT and add these:

fbcon=nodefer

modprobe.blacklist=iTCO_wdt (if you want to disable watchdog)

resume=/dev/nvme0n1p2 (if you want your pc hibernate)

video=efifb:nobgrt

grub-mkconfig -o /boot/grub/grub.cfg

6.Others

Add one account:

useradd -m -G audio,storage,video,wheel your-accountName

passwd your-accountName

visudo

Uncomment %wheel ALL=(ALL:ALL) ALL

Add hibernate(if you want):

vim /etc/mkinitcpio.conf

Find HOOKS=(...)

Add resume behind filesystems

It should look like this:

HOOKS=(... filesystem resume)

vim /etc/systemd/logind.conf

Uncomment HandleLidSwitch and HandleLidSwitchExternalPower

HandleLidSwitch=hibernate(or keep default suspend)

HandleLidSwitchExternalPower=suspend

tty font:

echo FONT=ter-132n(n-normal b-bold) > /etc/vconsole.conf

High resolution with small window problem:

Bigger values to get bigger window.

echo GDK_DPI_SCALE=1.25 >> /etc/environment

echo GDK_SCALE=1.25 >> /etc/environment

If you are troubled with the intel or some graphic cards,

then add MESA_LOADER_DRIVER_OVERRIDE.

Notice your fps may be less than before.

echo MESA_LOADER_DRIVER_OVERRIDE=zink >> /etc/environment

mkinitcpio -P

exit

umount /mnt/boot

umount /mnt

reboot