This file
has been updated to be a bit more of a generic install guide / tips
and tricks
after another Desktop install on November, 2021
If UEFI mode is enabled on an UEFI motherboard, Archiso will boot Arch Linux accordingly via systemd-boot. To verify this, list the efivars directory:
# ls /sys/firmware/efi/efivars
If the directory does not exist, the system may be booted in BIOS or CSM mode. Refer to your motherboard's manual for details.
The installation image enables the dhcpcd daemon on boot for wired network devices. The connection may be checked with:
# ping archlinux.org
If no connection is available, stop
the dhcpcd service with systemctl stop
dhcpcd@
and pressing Tab
. Proceed
with Network
configuration for wired devices or Wireless
network configuration for wireless devices.
This
is a laptop with wifi so; For
wireless settings, you can use wifi-menu
[just
select essid to connect to]
Use timedatectl(1) to ensure the system clock is accurate:
# timedatectl set-ntp true
To check the service status, use timedatectl
status
.
When recognized by the live system, disks are assigned to a block
device such as /dev/sda
or
/dev/nvme0n1
. To identify these devices,
use lsblk or
fdisk.
# fdisk -l
Results ending in rom
, loop
or airoot
may be ignored.
The following partitions are required for a chosen device:
One partition for the root
directory /
.
If UEFI is enabled, an EFI System Partition.
Note: Swap space can be set on a separate partition or a swap file.
To modify partition tables, use fdisk or parted.
# fdisk /dev/sda
See Partitioning for more information.
Note: If you want to create any stacked block devices for LVM, disk encryption or RAID, do it now.
I only created 2 partitions, one for / [the root directory], and the other for swap
Once the partitions have been created, each must be formatted with
an appropriate file
system. For example, to format the root partition on /dev/
sda1
with ext4
, run:
# mkfs.ext4 /dev/sda1
If you created a partition for swap (for example /dev/
sda3
),
initialize it with mkswap:
# mkswap /dev/sda3 # swapon /dev/sda3
See File systems#Create a file system for details.
Mount the
file system on the root partition to /mnt
,
for example:
# mount /dev/sda1 /mnt
Create mount points for any remaining partitions and mount them accordingly:
# mkdir /mnt/boot # mount /dev/sda2 /mnt/boot
genfstab will later detect mounted file systems and swap space.
Packages to be installed must be downloaded from mirror
servers,
which are defined in /etc/pacman.d/mirrorlist
.
On the live system, all mirrors are enabled, and sorted by
their
synchronization status and speed at the time the
installation image was created.
The higher a mirror is placed in the list, the more priority it is
given when
downloading a package. You may want to edit the file
accordingly,
and move the geographically closest mirrors to the
top of the list,
although other criteria should be taken into
account.
This file will later be copied to the new system by pacstrap, so it is worth getting right.
Use the pacstrap script to install the base package group:
# pacstrap /mnt base
This group does not include all tools from the live installation, such as btrfs-progs or specific wireless firmware; see packages.both for comparison.
To install packages and other groups such as base-devel, append the names to pacstrap (space separated) or to individual pacman commands after the #Chroot step.
Ok, rather than just installing the base apps, here is what I did (keep in mind, it’s a laptop): pacstrap /mnt base linux linux-firmware grub network-manager-applet xorg xfce4 xfce4-goodies vi vim
alsa-utils udisks2 firefox sddm gvfs pavucontrol pulseaudio.alsa openssh sudo
Add: intel-ucode (if cpu is intel)
Generate an fstab
file (use -U
or -L
to define by UUID
or labels, respectively):
# genfstab -U /mnt >> /mnt/etc/fstab
Check the resulting file in /mnt/etc/fstab
afterwards, and edit it in case of errors.
Change root into the new system:
# arch-chroot /mnt
Set the time zone:
# ln -sf /usr/share/zoneinfo/Region/City /etc/localtime
Run hwclock(8)
to generate /etc/adjtime
:
# hwclock --systohc
This command assumes the hardware clock is set to UTC. See Time#Time standard for details.
In our case: ln -sf /usr/share/zoneinfo/US/Central /etc/localtime
Uncomment en_US.UTF-8 UTF-8
and other
needed localizations
in /etc/locale.gen
, and generate them
with:
# locale-gen
Set the LANG
variable
in locale.conf(5)
accordingly, for example:
/etc/locale.conf echo LANG=en_US.UTF-8 > /etc/locale.conf
If you set the keyboard layout, make the changes persistent in vconsole.conf(5):
/etc/vconsole.conf KEYMAP=de-latin1 I did not change keyboard layout, defualt is fine for us in the USA
Create the hostname file:
/etc/hostname
myhostname (hostname of your choosing)
Add matching entries to hosts(5):
/etc/hosts echo lenovo-i7 > /etc/hostname
The newly installed environment has no network connection activated by default. See Network configuration#Network managers.
For Wireless configuration, install the iw and wpa_supplicant packages, as well as needed firmware packages. Optionally install dialog for usage of wifi-menu.
Since
we have NetworkManager-applet, just enable NetworkManager with
command:
systmectl enable NetworkManager
(after reboot, Network Manager will be running)
Creating a new initramfs is usually not required, because mkinitcpio was run on installation of the linux package with pacstrap.
For special configurations, modify the mkinitcpio.conf(5) file and recreate the initramfs image:
# mkinitcpio -p linux Usually not needed, I usually skip above Initramfs section.
Set the root password:
# passwd
A Linux-capable boot loader must be installed in order to boot Arch Linux. See Category:Boot loaders for available choices.
If you have an Intel CPU, install the intel-ucode package in addition, and enable microcode updates.
Iinstall and enable grub boot loader with following commands:
# grub-install /dev/sda # grub-mkconfig -o /boot/grub/grub.cfg
Create a user and add him to a bunch of groups and set password for said user:
Example for user “joe”:
#
useradd -m -G wheel,video,audio,scanner,network,optical joe
# passwd joe type password again… Enable NetworkManager and the login manager sddm # systemctl enable NetworkManager sddm
Done……..The initial install should take about an hour
install intel-ucode
(*if your cpu
is intel and if you haven’t already)
If
your video card is intel, install intel-ucode
If you have Nvidia
video card, install nvidia (and more if needed)
# pacman -Syu
intel-ucode
# pacman Syu
nvidia nvidia-dkms
nvidia-settings
To
enable multilib uncommented the [multilib]
section in /etc/pacman.conf
(be sure to uncomment
both lines):
[multilib] Include = /etc/pacman.d/mirrorlist and to make it immediately effectual run: # pacman -Syu
Set up the system for building AUR packages (Arch User Repository)
#
pacman -S --needed base-devel
# pacman -Syu
To install
irssi, Libreoffice and gimp
#
pacman -S irssi
# pacman -S libreoffice-fresh
# pacman -S
gimp
From AUR, you have mythtv and teamviewer
See:
https://aur.archlinux.org/packages/mythtv/
and
https://aur.archlinux.org/packages/teamviewer/
… and they both should work ok,
mythtv will automaticall the mythtv server on the
network
so there was no configuration accept for selecting
pulseaudio for audio server.
Teamviewer requires enabling
teamviewerd:
# systemctl enable teamviewerd
Hard drive usage [at
this point] should be 8G + or -
Further developments;
install packages as needed such as:
'pacman -S kdeconnect' 'pacman -S x11vnc tigervnc' 'pacman -S gtypist' 'pacman -S deja-dup' 'pacman -S speedtest-cli' 'pacman -S lynx' 'pacman -S net-tools' 'pacman -S cups' 'pacman -S hplip' 'pacman -S calibre' 'pacman -S okular' Extra fonts:
ttf-merriweather ttf-merriweather-sans ttf-opensans ttf-oswald ttf-quintessential ttf-signika ttf-ubuntu-font-family ttf-mac-fonts ttf-google-fonts-git
Lots of font families above, maybe more than needed but... optional. Maybe just do:
all-repository-fontsAUR - Meta package for all fonts in the official repositories.
Also, if needed: bind-tools
etc. etc.
Additional Resources
To search and find out about Archlinux Packages:
https://archlinux.org/packages/
To search or find out about AUR Packages (Arch User Repository):
https://aur.archlinux.org/
Archlinux News Archives:
https://archlinux.org/news/
Archlinux irc: https://libera.chat/ Server: irc.libera.chat:6697 (TLS)