Installing Arch Linux in my computer
Yesterday I installed ArchLinux on my desktop and the installation was basically smooth. But I’d like to record some basic operations just to make a note. Archlinux Installation Guide is very well documented and is recommended to read. I use the balenaEtcher to flash the iso file to my USB disk. I recommend watching this video to learn the installation process. Some of the content in the video is out of date, and you may not be able to boot the system if you follow the video exactly. For example, the
pacstrap /mnt base base-devel
command in the video should now be replaced by
pacstrap /mnt base linux linux-firmware
This is the reason why still recommended reading documentation Archlinux Installation Guide.
Since I’m using Wi-Fi, I need to set up wifi before I can install it. This is also available in the documentation Connecting with wpa_passphrase . Use command to check the network card statues:
My example is wlan0, and then connect wifi. If the SSID and password are correct, wi-fi will be connected.
# wpa_supplicant -B -i wlan0 -c <(wpa_passphrase My-wifi-SSID ThisisSSIDPassword)
Don’t forget ping example.com to test network.
Here are some recorded commands:
Create partitions. I created the /boot partition /swap partition, and the /system partition use cgdisk command.
Set ef00 the " Hex core or GUID" to /boot partition. Set 8200 the " Hex core or GUID" to /swap partition. Set 8300 the " Hex core or GUID" to /system partition.
Format the partition. See documentation EFI system partition
# mkfs.fat -F32 /dev/nvme1n1p1
# mkswap /dev/nvme1n1p2 # swapon /dev/nvme1n1p2
Formatted with an appropriate file system.
# mkfs.ext4 /dev/nvme1n1p3
Mount the file systems and check with df.
# mount /dev/nvme1n1p3 /mnt # mkdir /mnt/boot # mount /dev/nvme1n1p1 /mnt/boot # df
Move the fastest address in the Mirror to the top before installing the system
# pacman -Sy vim # vim /etc/pacman.d/mirrorlist
Installation. Install essential packages.
# pacstrap /mnt base linux linux-firmware
Generate an fstab file (use -U or -L to define by UUID or labels, respectively):
# genfstab -U /mnt >> /mnt/etc/fstab
Change root into the new system:
# arch-chroot /mnt Set the time zone:
# ln -sf /usr/share/zoneinfo/Hongkong /etc/localtime
Run hwclock(8) to generate /etc/adjtime:
# hwclock --systohc
Edit /etc/locale.gen and uncomment en_US.UTF-8 UTF-8, zh_CN.UTF-8 UTF-8, zh_HK.UTF-8 UTF-8 and other needed locales. Generate the locales by running:
# vim /etc/locale.gen # locale-gen
Create the locale.conf(5) file, and set the LANG variable accordingly:
# echo "LANG=en_US.UTF-8" > /etc/locale.conf
Create the hostname file:
# echo "myhostname" > /etc/hostname
Set the password for root user.
Create a user and gave sudo permissions.
# useradd -g users -G wheel,storage,power -m myname # passwd myname # pacman -S sudo # vim /etc/sudoers
Choose and install a Linux-capable boot loader.
# pacman -S grub efibootmgr
Use GRUB to install boot.
# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
Use the grub-mkconfig tool to generate /boot/grub/grub.cfg:
# grub-mkconfig -o /boot/grub/grub.cfg
Install Wi-Fi manager use command like wifi-menu(netctl) command:
# pacman -S iw wpa_supplicant dialog dhcpcd netctl netctl
Set wifi auto connection after reboot
# ip link # systemctl enable email@example.com
Set Chinese font, otherwise I can’t see Chinese
#pacman -S wqy-microhei wqy-microhei-lite wqy-zenhei wqy-bitmapfont
I have a Bluetooth speaker, so I’ll start bluetooth connectivity by default.
# systemctl enable bluetooth.service