7 minutes
Installation d’Arch linux
Instroduction
Dans cet article, nous allons voir comment installer Arch Linux de A à Z.
Démarrage de l’installation
Créer une clé usb de boot contenant l’ISO d’archlinux puis booter dessus (presser F10 généralement).
Sur le premier menu, sélectionner Arch Linux installation medium
et appuyer sur entrer.
Vous arriverez ensuite sur un terminal zsh
en mode root
.
Configuration le clavier
loadkeys fr-pc
Voilà vous êtes maintenant en AZERTY.
localectl list-keymaps
pour voir les différents agencements du clavier FR disponibles.
Vérification du mode de démarrage
Si la commande suivante ne retourne pas d’erreur, c’est que le mode de démarrage est bien en UEFI. On est donc prêt à continuer l’installation.
ls /sys/firmware/efi/efivars
Connexion à internet
Voir l’état des interfaces réseau:
ip link
Si vous voulez utiliser du Wifi , vérifier que votre carte n’est pas bloquée avec rfkill
Utiliser iwctl pour vous authentifier aux réseaux wifi.
Utiliser mmcli pour vous connecter à un réseau mobile
DHCP devrait fonctionner sans rien faire grâce aux services systemd-networkd et systemd-resolved
Pour configurer une IP statique, c’est par ici
Tout est configuré par défaut durant la phase d’installation d’Archlinux. Une fois le système installé et donc sorti du mode Live OS, il faudra tout réinstaller.
ping google.com
Configuration de l’heure
timedatectl status
timedatectl set-ntp true
timedatectl status
Partitionnement du disque
Configuration simple pour un disque SSD de 2 To.
Dans un premier temps on efface tout:
fdisk -l
fdisk /dev/sdX
# Utiliser m pour obtenir de l'aide
i (voir les infos sur les partitions)
d (détruire les partitions une à une)
w (save)
fdisk -l (pour confirmer que les changements ont bien été pris en compte)
Puis on recrée 3 nouvelles partitions:
- Première partition EFI
fdisk /dev/sda
g (pour créer une table de partition vide)
n (création d'une nouvelle partition EFI)
1
Enter (on n'entre pas de valeur pour le First sector)
+512M
y (oui on veut retirer la signateur vfat précédente liée à son ancienne installation)
t (pour changer le type de la partition)
1 (pour EFI system)
- Deuxième partition de SWAP
n
2
enter
+4G
y
t (changer le type de la partition)
2 (sélection de la 2e partition)
19 (pour Linux Swap)
- Troisième partition pour ROOT
n
3
enter
enter
y
t
3
23 (pour x86-64)
Sauvegarder tous les changements et vérifier que tout est ok.
w
fdisk --list
Dans les Devices du disque /dev/sda
vous devriez voir les 3 nouvelles partitions:
/dev/sda1
, /dev/sda2
et /dev/sda3
Création des filesystems
Nous allons utiliser mkfs
et mkswap
pour créer les file systems sur les nouvelles partitions.
mkfs.vfat /dev/sda1
mkswap /dev/sda2
mkfs.ext4 /dev/sda3
Installation des packages Arch
On commence par monter les partitions avant d’installer les packages:
mount /dev/sda3 /mnt
mkdir /mnt/efi
mount /dev/sda1 /mnt/efi
swapon /dev/sda2
Installation des packages de base:
pacstrat /mnt base linux linux-firmware
pacstrat /mnt dhcpcd dhclient
Génération du fstab
genfstab -U /mnt >> /mnt/etc/fstab
cat /mnt/etc/fstab
chroot pour se logguer dans le nouveau système
arch-chroot /mnt
La commande précédente permet de quitter l’environnement du live OS et d’atterir dans le nouveau système fraichement installé.
On peut donc maintenant utiliser pacman
pour manager les applications (c’est l’équivalent de apt
ou yum
).
pacman -Syu
# Installation de git
pacman -Syu git nano vim
hostname et hosts
echo NomDeVotreMachine >> /etc/hostname
echo '127.0.0.1 NomDeVotreMachine.localdomain NomDeVotreMachine' >> /etc/hosts
Gestion du fuseau horaire
ls -al /etc/
ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime
ls -al /etc/
Locale
Editer le fichier /etc/locale.gen
, décommentez la locale fr_FR.UTF-8 UTF8
et exécuter les commandes suivantes:
locale-gen
echo LANG="fr_FR.UTF-8" > /etc/locale.conf
# Pour la session courante
export LANG=fr_FR.UTF-8
echo KEYMAP=fr > /etc/vconsole.conf
Installation d’un Bootloader
pacman -Syu grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB
Ajout d’un microcode pour votre CPU:
pacman -Syu intel-ucode
Génération du grub.cfg:
grub-mkconfig -o /boot/grub/grub.cfg
Création d’un nouvel utilisateur et blocage du compte root
Création du nouvel utilisateur ayant accès root:
pacman -Syu sudo
useradd --create-home olivier
passwd olivier
Blocage du compte root initialement créé par défaut:
Modifier le fichier /etc/sudoers
et donner les droits et remplacer la ligne root ALL=(ALL) ALL
par olivier ALL=(ALL) ALL
Exécuter ensuite les commandes suivantes:
# Effacer le mot de passe root
passwd --delete root
# Locker le compte root
passwd --lock root
Enfin editer le fichier /etc/passwd
et remplacer la ligne root❌0:0::/root:/bin/bash
par root❌0:0::/:/usr/bin/nologin
A noter que dans les lignes précédentes,
❌
équivaut à: x :
sans espace. (Blog engine auto conversion…)
First boot
exit
shutdown -r now
C’est maintenant qu’on croise les doigts ahahah.
Passage du clavier en fr dans la session courante:
sudo loadkeys fr-pc
Pour rendre la keymap persistente, editer le fichier /etc/vconsole.conf
et ajouter la ligne suivante:
KEYMAP=fr
Configuration réseau:
- Récupérer le nom de vos interfaces réseau:
ip link
# Dans mon cas:
eno1 et wlp58s0
- Editer le fichier
sudo vim /etc/systemd/network/10-wire-wireless.network
et ajouter la config suivante:
[Match]
Name=eno1 wlp58s0
[Network]
DHCP=yes
LLMNR=yes
MulticastDNS=yes
DNSSEC=yes
DNSOverTLS=yes
DNS=1.1.1.1 1.0.0.1 2606:4700:4700::1111 2606:4700:4700::1001
FallbackDNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844
[DHCP]
UseDNS=no
DHCP=yes
pour que l’assignement d’une adresse IP se fasse automatiquement LLMNR MDNS DNSSEC DNSOverTLSUseDNS=NO
pour ne pas utiliser le DNS de ma freebox
- Editer maintenant le fichier
sudo vim /etc/systemd/resolved.conf
. C’est requis par Arch car nous avons créé un fichier*.network
juste au dessus. Voici le contenu à insérer dans notre second fichier:
[Resolve]
DNS=1.1.1.1 1.0.0.1 2606:4700:4700::1111 2606:4700:4700::1001
FallbackDNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844
LLMNR=yes
MulticastDNS=yes
DNSSEC=yes
DNSOverTLS=yes
- Créer le symlink suivant:
sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
Grâce à cela, toutes les applications vont appeler
127.0.0.53:53
pour le DNS. Le serviceresolved
va à son tour contacter les DNS spécifier dans notre fichier/etc/systemd/network/10-wire-wireless.network
et utiliser DNSSEC et DNS-over-TLS pour résoudre les noms de domaines.
- Activation des services:
sudo systemctl enable --now systemd-networkd
sudo systemctl enable --now systemd.resolved
ping google.com
Backup installation sur périphérique externe
Voilà, on vient de passer presque 1h à installer notre système sous Arch. Avant d’aller plus loin, on va réutiliser la clé USB qui nous a permis d’installer l’ISO Arch pour faire un backup. On va la formater et tout backuper.
- Formatage de la clé:
sudo fdisk -l
sudo umount /dev/sdb1
sudo umount /dev/sdb2
sudo fdisk /dev/sdb
d
1
d
2
w
sudo fdisk /dev/sdb
g
n
1
enter
enter
w
sudo mkfs.ext4 /dev/sdb1
- Backup:
mkdir /mnt/usbstick
sudo mount /dev/sdb1 /mnt/usbstick
sudo pacman -Syu rsync
sudo rsync -aAXv --delete --exclude=/dev/* --exclude=/proc/* --exclude=/sys/* --exclude=/tmp/* --exclude=/run/* --exclude=/mnt/* --exclude=/media/* --exclude="swapfile" --exclude="lost+found" --exclude=".cache" --exclude="Downloads" --exclude=".VirtualBoxVMs"--exclude=".ecryptfs" / /mnt/usbstick/
Restauration: Boot sur Live ISO puis:
mkdir /mnt/system /mnt/usb
puislsblk
oufsdisk -l
pour voir le nom des devices connectés.
Monter le file system et le backup:mount /dev/sda1 /mnt/system
etmount /dev/sdb1 /mnt/usb
Enfin, restaurer:rsync -aAXv --delete --exclude="lost+found" /mnt/usb/ /mnt/system/
Xorg
Déterminer le pilote graphique à utiliser:
lspci -v | grep -A1 -e VGA -e 3D
Suivant la marque, il faudra utiliser un package adapté. Voici la liste des packages à disposition.
Dans mon cas, ayant une carte Intel, je vais installer le package xf86-video-intel
puis j’installe le package xorg group via la commande: sudo pacman -Syu xorg
.
Je vérifie l’installation avec sudo Xorg -version
.
Desktop environment
On va maintenant installer Gnome.
sudo pacman -Syu gnome gnome-extra xorg-xinit
On va ensuite configurer le système pour que la commande startx
démarre une session gnome. Pour ce faire, on va créer un fichier sudo vim ~/.xinitrc
et on va ajouter la ligne suivante: exec gnome-session
.
On redémarre et vérifie que tout fonctionne bien. Exécuter startx
après s’être authentifié.
Keyring fix
sudo passwd
Bluetooth
pacman -Syu bluez bluez-utils
systemctl enable bluetooth.service
systemctl start bluetooth.service
Wifi
sudo pacman -Syu networkmanager
sudo systemctl enable NetworkManager.service
sudo systemctl start NetworkManager.service
Utilitaires
- Via pacman
vlc base-devel firefox
- Snapd:
git clone https://aur.archlinux.org/snapd.git
cd snapd
makepkg -si
sudo systemctl enable --now snapd.socket
sudo ln -s /var/lib/snapd/snap /snap
reboot
snap --version
- Spotify:
snap install spotify
- Paru:
git clone https://aur.archlinux.org/paru.git
cd paru
makepkg -si
- VS Code:
git clone https://aur.archlinux.org/visual-studio-code-bin.git
cd visual-studio-code-bin
makepkg -si
Openssh
sudo pacman -Syu openssh
ip address
sudo systemctl enable sshd.service
sudo systemctl start sshd.service
x2go
sudo pacman -Syu x2goserver
sudo x2godbadmin --createdb
sudo systemctl enable x2goserver.service
sudo systemctl start x2goserver.service
Pour pouvoir utiliser x2go on va installer un second desktop env plus léger et sans bug.
sudo pacman -Syu xfce4 xfce4-goodies
Option pour pouvoir démarrer un server X au choix:
- Editer le fichier
sudo vim ~/.xinitrc
et ajouter le contenu suivant:
# Here Gnome is kept as default
session=${1:-gnome}
case $session in
gnome ) exec gnome-session;;
xfce|xfce4 ) exec startxfce4;;
# No known session, try to run it as command
* ) exec $1;;
esac
- Démarrage d’un Desktop environment au choix via l’une des deux commandes suivantes:
xinit xfce
xinit gnome