Installation de Linux Arch avec
- linux-lts
- partition en BRTFS (subvolume @rootfs et @home)
- wayland avec Hyprland comme environnement de bureau et gestionnaire de fenêtres.
- repo chaotic AUR
Voir aussi : script d’installation automatique avec option d’installation du système complet sur clé USB
Avant l’installation#
Arch est un distribution Linux pour utilisateur avancé. Ceci ne s’adresse pas aux débutants sous linux.
Aide du site officiel Arch#
Voici qqs pages utiles d’aide sur Arch :
- guide d’installation : https://wiki.archlinux.org/title/Installation_guide => à suivre en complément de ce tuto, car il y’a des infos intéressantes et plus générale (ou sur des cas précis non abordés ici).
- comment créer la clé USB d’installation : https://wiki.archlinux.org/title/USB_flash_installation_medium
- installation d’un système complet sur clé USB : https://wiki.archlinux.org/title/Install_Arch_Linux_on_a_removable_medium
- script d’installation : ce script d’installation guidée : https://wiki.archlinux.org/title/Archinstall
Usage basique de Linux#
Connaître l’usage basique de Linux avant de se lancer dans l’installation
Préparation du partitionnement#
⚠ Connaître son futur plan de partitionnement AVANT de se lancer dans l’installation.
Usage possible d’une clé bootable, comme par exemple Kali Linux Live pour voir et éditer son disque dur avec une interface graphique (+ gparted).
L’installation#
Après le boot sur la clé USB d’installation, on arrive sur la ligne de commande. Voici les commandes pas-à-pas ….
localectl list-keymaps
loadkeys fr-latin1
Vérification qu’on est en mode UEFI
cat /sys/firmware/efi/fw_platform_size
=> réponse 64, OK c'est UEFI
Connexion internet : à vous de faire le nécessaire suivant votre situation
ip link
-> liste les interfaces réseau reconnues et disponibles
iwctl
-> utilitaire pour la connexion via WIFI
station wlan0 scan
station wlan0 get-networks
station wlan0 connect "Network Name"
ping 1.1.1.1 -> pour vérification que la connexion internet que ça marche
** Une manière simple d’avoir une connexion internet fonctionnant sans aucune configuration pour l’installation**
- en utilisant la connexion 4G d’un téléphone portable + un partage de connexion via USB
Partitionnement#
Voici le schéma de Partitionnement que j’utilise:
- partition EFI (fat32) minimum 500 Mo (pour boot sur plusieurs OS !!!!!!!!!)
- partition avec Linux + vos données (BTRFS) avec 2 subvolume: @rootfs et @home pour séparer / et /home
- partition swap/cache (optionnelle)
OS déjà installé à conserver Si un OS est déjà installé, et à conserver, comme Windows, alors il faudra préserver plusieurs partitions:
- la partition de Windows
- la partition EFI sur les ordinateurs récents
- des partitions restore de Windows …
Vu d’ensemble des disques et partitions sur l’ordinateur
fdisk -l
Choisir le disque sur lequel sera fait l’installation
fdisk -l /dev/sdX
-> vérification que Disklabel (ou Type d'étiquette de disque) est : "gpt"
Ensuite choisir les 2 (ou 3) partitions nécessaire : EFI (boot) + Linux + swap/cache (optionelle)
Création du répertoire d travail temporaire
mkdir tmp
Partition Linux#
Création de sys. fichier BTRFS pour root.
- => Si tout est à formater :
mkfs.btrfs /dev/sdXn
- => Si partition BTRFS existante, et des données à conserver : gérer les subvolume avec
mount /dev/sdXn /tmp
btrfs subvolume list .....
btrfs subvolume delete ....
btrfs subvolume create ....
umount /tmp
Config BTRFS, avec création des 2 subvolume, @ (/root) et @home (/home)
mount /dev/sdXn /tmp
btrfs subvolume create /tmp/@rootfs
btrfs subvolume create /tmp/@home
umount /tmp
- Puis dans tous les cas, montage
mount -o noatime,nodiratime,compress-force=zstd:3,discard=async,subvol=@rootfs /dev/sdXn /tmp
mount --mkdir -o compress=zstd,subvol=@home /dev/sdXn /tmp/home
Partition EFI#
Formatage EFI
mkfs.fat -F 32 /dev/sdXn
Montage EFI
mount --mkdir /dev/sdXn /tmp/boot
Partition SWAP#
mkswap /dev/partition_d'échange
swapon /dev/partition_d'échange
Installation du système de base#
reflector --latest 10 --protocol https,http --sort rate --save /etc/pacman.d/mirrorlist
pacstrap -K /tmp base linux linux-firmware nano grub efibootmgr intel-ucode bash man sudo zram-generator resolvconf reflector networkmanager
Dans la liste ci-dessus à installer, choisir intel-ucode avec un processeur intel, et amd-ucode avec un AMD of course
Possibilité d’utiliser refind en la place ou avec grub. A inclure dans la liste dans ce cas.
Génération de fstab#
genfstab -U /tmp >> /tmp/etc/fstab
cat /tmp/etc/fstab
-> vérification (possible) que tout est OK
Passage sur le nouveau système#
arch-chroot /tmp
Timezone
ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime
hwclock --systohc
Set langue
nano /etc/locale.gen
-> décommenter fr....UTF-8
locale-gen
nano /etc/locale.conf
-> avec LANG=fr_FR.UTF-8
nano /etc/vconsole.conf
-> avec KEYMAP=fr-latin1
Hostname
nano /etc/hostname
-> avec votre_nom_de_système
nano /etc/hosts
-> avec
127.0.0.1 localhost
::1 localhost
127.0.1.1 votre_nom_de_système
Users
passwd
-> mot de passe root
useradd -mG wheel,storage,power,audio,video -s /bin/bash votre_nom_utilisateur
passwd votre_nom_utilisateur
-> mot de passe du nouvel utilisateur
EDITOR=nano visudo
-> décommenter la ligne suivante pour exécuter des commandes avec sudo : %wheel ALL=(ALL) ALL
Grub
nano /etc/default/grub
-> activer ces 3 paramètres pour enregistrer le dernier boot utilisé, et pas de sous-menu
GRUB_DISABLE_SUBMENU=y
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
Refind (optionnel)
refind-install
Gestion réseau
systemctl enable systemd-networkd
systemctl enable systemd-resolved
systemctl enable NetworkManager
Installation gestionnaire login (optionnel)
pacman -S lightdm lightdm-gtk-greeter
-> ou sddm
systemctl enable lightdm
Install Xorg + LXDE (optionnel)
pacman -S --needed xorg xorg-xinit xorg-xlsfonts brightnessctl
pacman -S --needed lxde openbox pcmanfm network-manager-applet
localectl set-x11-keymap fr
xhost si:localuser:root
Video driver
pacman -S --needed xf86-video-intel mesa vulkan-intel libva-mesa-driver mesa-vdpau
à adapter suivant votre config matérielle …. ici pour un portable avec carte vidéo intel
Enfin, redémarrage
exit
umount -R /tmp
reboot
Après l’installation … encore bien des étapes#
Si LXDE + lightdm installé, permet de continuer la configuration plus facilement, en mode graphique.
Si démarrage en console, et LXDE installé alors faire pour lancer le mode graphique
echo "exec startlxde" >> .xinitrc
startx
Suite installation
timedatectl set-ntp true
Gestion Swap, RAM, écritures disques …
sudo nano /etc/fstab
-> ajout de "tmpfs /tmp tmpfs rw,nodev,nosuid,size=2G 0 0"
-> modif pour pour / et /home avec "noatime,nodiratime"
-> pour partitions BTRFS, ajout options avec "compress-force=zstd:3"
-> pour disque SSD, ajout options "discard=async"
Config zram (avec zram-generator)
sudo nano /etc/systemd/zram-generator.conf
-> avec
[zram0]
zram-size = min(ram / 2, 4096)
compression-algorithm = zstd
Gestion Energie : TLP
sudo pacman -S tlp tlp-rdw
sudo systemctl enable --now tlp
sudo systemctl enable --now NetworkManager-dispatcher
systemctl mask systemd-rfkill.service systemd-rfkill.socket
Config TLP
sudo nano /etc/tlp.conf
-> et décommenter "DEVICES_TO_DISABLE_ON_STARTUP="bluetooth nfc wifi wwan"
Limite de la charge batterie à 60%
sudo tlp-stat -b
-> trouver l’id de votre batterie, ex : BAT0
sudo nano /etc/tlp.conf
-> décommenter/modifier ces 2 lignes, avec l’id de votre batterie
START_CHARGE_THRESH_BAT0=50
STOP_CHARGE_THRESH_BAT0=80
sudo tlp start
-> relance TLP
sudo tlp-stat -b
-> vérification
tlp-stat -s
-> permet de voir la config
Installation d’utilitaires
sudo pacman -S --needed wget bluez bluez-utils blueman
Config Bluetooth
sudo systemctl enable --now bluetooth
sudo nano /etc/bluetooth/main.conf
-> décommenter pour ne pas démarrer auto #AutoEnable=false
Config Reflector - optionnel https://wiki.archlinux.org/title/Reflector
systemctl is-enabled NetworkManager-wait-online
-> vérif que enabled
sudo nano /etc/xdg/reflector/reflector.conf
-> avec
--save /etc/pacman.d/mirrorlist
--country France,Germany
--protocol https,http
--latest 10
sudo systemctl enable --now reflector
Gestion des mots de passe des apps (comme pour nextcloud ….)
voir ici
Installation drivers son
sudo pacman -S --needed pipewire pipewire-alsa pipewire-pulse pipewire-jack wireplumber pavucontrol
Activation du dépôt chaotic AUR (https://aur.chaotic.cx/)
sudo pacman-key --recv-key 3056513887B78AEB --keyserver keyserver.ubuntu.com
sudo pacman-key --lsign-key 3056513887B78AEB
sudo pacman -U 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst'
sudo pacman -U 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst'
sudo nano /etc/pacman.conf
-> avec ajout à la fin de
[chaotic-aur]
Include = /etc/pacman.d/chaotic-mirrorlist
sudo pacman -Syu
Gestion des paquets AUR
https://wiki.archlinux.org/title/Arch_User_Repository
Installation de yay
Installation de paru (https://github.com/Morganamilo/paru). Installation possible avec pacman grâce au dépôt chaotic AUR
sudo pacman -S --needed base-devel git paru
Configuration de paru dans ~/.config/paru/paru.conf avec
[options]
AurOnly = true
# Disable editing PKGBUILD by default
SkipReview = true
Utilisation de paru
Install : paru --aur -S
Update seulement les paquets AUR: paru -Sua
Uninstall : paru --aur -Rns
L’option –aur bloque l’utilisation de paru uniquement sur les paquets AUR. Donc paru ne touche pas aux paquets que pacman gère.
Création d’un alias de console afin de limiter paru aux paquets AUR : avec l’option –aur
nano .bashrc -> ajout de : alias paru='paru --aur'
Installation autres utilitaires
sudo pacman -S --needed gparted lshw git zip unzip p7zip htop tree dialog bash-completion net-tools ethtool btrfs-progs smartmontools gnome-calendar gvfs-mtp gnome-disk-utility brightnessctl profile-cleaner peazip octopi pacseek
Hyprland (wayland) and co …..
sudo pacman -S --needed hyprland swaync waypaper wlogout waybar wayland-protocols kitty qt5-wayland qt6-wayland hyprpolkitagent hyprpaper rofi-wayland hypridle hyprlock aquamarine hyprcursor hyprgraphics xdg-desktop-portal-gtk xdg-desktop-portal-hyprland hyprland-qt-support hyprland-qtutils xorg-xwayland hyprlang hyprpicker hyprutils eza awesome-terminal-fonts ttf-font-awesome otf-font-awesome noto-fonts noto-fonts-emoji ttf-fira-sans ttf-hack papirus-icon-theme imagemagick ttf-fira-sans qt6ct nwg-look adw-gtk-theme gsimplecal hyprshade bibata-rainbow-cursor-theme bibata-cursor-theme"
Pour faire des screenshots
sudo pacman -S --needed jq grim slurp wl-clipboard grimblast-git
Puis installer les fichiers de config hyprland.
Activation de la compatibilité avec programmes 32 bits (wine, freefilesync ….)
https://wiki.archlinux.org/title/Official_repositories#multilib
sudo nano /etc/pacman.conf
-> décommenter
[multilib]
Include = /etc/pacman.d/mirrorlist
Installation programmes basiques
sudo pacman -S --needed firefox catfish thunderbird baobab guvcview file-roller evince xournalpp libreoffice vlc obs-studio geany geany-plugins keepassxc audacious nextcloud-client gimp vlc mpv hunspell-fr hunspell-es_es hunspell-en_gb masterpdfeditor-free
Installation programmes AUR
paru -S slimbookbattery xnviewmp
Config No Hibernation
sudo nano /etc/systemd/sleep.conf
-> avec
AllowSuspend=yes
AllowHibernation=no
AllowSuspendThenHibernate=no
AllowHybridSleep=no
Config Firewall
https://wiki.archlinux.org/title/Uncomplicated_Firewall
sudo pacman -S ufw gufw
sudo systemctl enable --now ufw
sudo ufw enable
sudo ufw status
à configurer avec gufw
aide : https://fr.linux-console.net/?p=16742 et https://leshirondellesdunet.com/pare-feu-ufw
Activation compatibilité programmes 32_bits (wine freefilesync …)#
https://wiki.archlinux.org/title/Official_repositories#multilib
sudo nano /etc/pacman.conf
-> décommenter
[multilib]
Include = /etc/pacman.d/mirrorlist\n"
Gestion des paquets#
Voir ici
Installation de programmes#
Voir ces pages
Réglages divers#
Voir ces pages avec des astuces de configuration pour différents logiciels
Sécurisation du démarrage (boot)#
Par ici quelques réglages sur la sécurisation du démarrage de votre ordinateur.
Qqs commandes avancées#
Par ici