Installation Arch Linux

Guide complet

Materiels

  • 2 clefs usb
  • Un appraille autre que celui ou vous voulez intalez Arch Linux pour lire ce tuto ( de preference un Ordinateur)

1) Créé la clef bootable

Mettre Endearvours sur sa clef

Deux solution s'offre a vous soit vous fait tout manuellements soit vous executer un scripte qui fait tout a votre place sachant qu'il va executer les meme commande que la solution à la mano

3) Endearvours

Slectionne la première option et attendez un peu . Vous devez voir apparaitre petit a petit Endeavours. Il peut être utils de se connecter a internet et de mettre le clavier en azerty.

Deux solution s'offre a vous soit vous fait tout manuellements soit vous executer un scripte qui fait tout a votre place sachant qu'il va executer les meme commande que la solution à la mano

Solution Scripte

Une fois la configuration faite , nous allons utiliser la deuxieme clef usb . Pour gagner du temps j'ai réaliser un scripte que je vous invite a télécharger et mettre dans votre clef usb ICI Mdr si vous voulez suivre la suite du tutoriels. Mettre ici le lien du scirpte .

Pour une simple question de facilité copier coler le scipte dans document puis ouvrer le terminal et executer les commandes suivantent :

cd Documents

chmod +x Arch-Install

Vous avez plus que a attandre que l'on vous demande de redemarrer (reboot)

Solution à la mano

Internet

Tout d'abors nous allons voir si on a internet

ping -q -c1 archlinux.org

Si vous avez cette vous avez comme resultat c'est que vous avez internet:

PING archlinux.org (2a01:4f9:c010:6b1f::1) 56 octets de données --- statistiques ping archlinux.org --- 1 paquets transmis, 1 reçus, 0% packet loss, time 0ms rtt min/avg/max/mdev = 48.744/48.744/48.744/0.000 ms

Sinon va falloir vous connecter à internet et je sais plus comment on fais :p :

Détection de l'UEFI et du SSD NVME

efivar -l >/dev/null 2>&1 lsblk | grep -q "nvme"

Mise en place des partitions :

timedatectl set-ntp true

Cette commande active la synchronisation de l'heure via NTP (Network Time Protocol). Cela permet à l'ordinateur de maintenir une heure précise en synchronisant son horloge avec des serveurs de temps sur Internet.

pacman -Sy --noconfirm

Ce commandement met à jour la base de données des paquets de pacman et synchronise les paquets locaux avec la version la plus récente disponible dans les dépôts. L'option --noconfirm est utilisée pour éviter les demandes de confirmation pendant le processus de mise à jour.

sgdisk --zap-all /dev/nvme0n1

Cette commande supprime toutes les partitions sur le périphérique spécifié (/dev/nvme0n1) en utilisant sgdisk, qui est un utilitaire de partitionnement pour les disques GPT (GUID Partition Table). Cela permet de nettoyer le disque avant de créer de nouvelles partitions.

printf "n\n1\n4096\n+128M\nef00\nw\ny\n" | gdisk /dev/nvme0n1

Cette série de commandes printf et gdisk est utilisée pour créer une nouvelle partition EFI (ESP - EFI System Partition) sur le disque spécifié. Cela crée une partition de 128 Mo à partir du secteur 4096 avec le type de partition EFI.

printf "n\n2\n\n\n8e00\nw\ny\n" | gdisk /dev/nvme0n1

Cette série de commandes printf et gdisk est utilisée pour créer une deuxième partition de type Linux LVM (Logical Volume Manager) sur le disque spécifié. La partition est créée en utilisant tout l'espace restant disponible sur le disque.

mkfs.fat -F32 /dev/nvme0n1p1

Cette commande formate la première partition (/dev/nvme0n1p1) avec le système de fichiers FAT32. Cette partition est généralement utilisée comme partition EFI (ESP) pour démarrer le système.

printf "%s" "$encryption_passphrase" | cryptsetup --type luks2 -h sha512 --pbkdf argon2id --label LVMPART luksFormat /dev/nvme0n1p2

Cette commande utilise cryptsetup pour formater la deuxième partition (/dev/nvme0n1p2) en tant que volume chiffré LUKS (Linux Unified Key Setup). Elle utilise l'algorithme de chiffrement AES-XTS-PLAIN64 avec le hachage SHA-512 et la fonction de dérivation de clé argon2id.

printf "%s" "$encryption_passphrase" | cryptsetup luksOpen /dev/nvme0n1p2 cryptVol

Cette commande ouvre le volume chiffré précédemment créé en fournissant la phrase de passe de chiffrement. Le volume chiffré est maintenant accessible sous le nom cryptVol.

Cette commande marque le périphérique /dev/mapper/cryptVol comme un nouveau volume physique pour être utilisé avec LVM (Logical Volume Manager).

pvcreate /dev/mapper/cryptVol

Cette commande marque le périphérique /dev/mapper/cryptVol comme un nouveau volume physique pour être utilisé avec LVM (Logical Volume Manager).

Cette commande crée un nouveau groupe de volumes appelé Arch en utilisant le volume physique /dev/mapper/cryptVol

lvcreate -L +"$swap_size"GB Arch -n swap

Cette commande crée un volume logique de swap nommé swap dans le groupe de volumes Arch. La taille du swap est définie par la variable $swap_size.

lvcreate -l +100%FREE Arch -n root

Cette commande crée un volume logique nommé root dans le groupe de volumes Arch, en utilisant tout l'espace restant disponible.

mkswap /dev/mapper/Arch-swap

Cette commande configure le volume logique Arch-swap en tant que partition de swap.

Intallation de arch linux

mkfs.ext4 /dev/mapper/Arch-root

Cette commande formate le volume logique Arch-root avec le système de fichiers ext4. Cela prépare le volume pour être monté comme la partition racine du système de fichiers.

mount /dev/mapper/Arch-root /mnt

Cette commande monte le volume logique Arch-root sur le point de montage /mnt. Cela rend le contenu du volume accessible à partir de l'emplacement /mnt dans l'environnement actuel.

mkdir /mnt/boot

Cette commande crée un répertoire appelé boot dans le système de fichiers racine monté (/mnt). Ce répertoire servira de point de montage pour la partition EFI.

mount /dev/nvme0n1p1 /mnt/boot

Cette commande monte la partition EFI (/dev/nvme0n1p1) sur le répertoire /mnt/boot. Cela rend le contenu de la partition EFI accessible à partir du répertoire /boot dans le système de fichiers racine.

swapon /dev/mapper/Arch-swap

Cette commande active la partition de swap en utilisant le périphérique /dev/mapper/Arch-swap. Cela permet au système d'utiliser la partition de swap pour la gestion de la mémoire virtuelle.

arch-chroot /mnt /bin/bash

Cette commande permet de changer l'environnement racine du système de fichiers vers /mnt, qui est le point de montage de la nouvelle installation d'Arch Linux. Cela permet d'exécuter des commandes comme si vous étiez dans le système installé plutôt que dans l'environnement live.

ln -sf /usr/share/zoneinfo/$continent_city /etc/localtime

Cette commande crée un lien symbolique entre le fichier de fuseau horaire spécifié (déterminé par les variables $continent_city) et /etc/localtime, ce qui configure le fuseau horaire du système.

hwclock --systohc --localtime

Cette commande synchronise l'horloge matérielle avec l'heure système actuelle. L'option --localtime indique que l'horloge matérielle est configurée pour être en temps local.

echo "fr_FR.UTF-8 UTF-8" >> /etc/locale.gen

Cette commande ajoute la configuration pour le jeu de caractères et l'encodage des caractères UTF-8 pour la localisation française dans le fichier /etc/locale.gen.

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

Cette commande définit la variable d'environnement LANG pour spécifier la langue par défaut du système comme français avec l'encodage UTF-8. Cela configure la localisation du système.

locale-gen

Cette commande génère les fichiers de localisation spécifiés dans /etc/locale.gen. Cela met à jour les paramètres de localisation du système avec les nouvelles configurations.

printf "KEYMAP=fr\n" >> /etc/vconsole.conf

Cette commande configure la disposition du clavier par défaut en français en ajoutant la ligne KEYMAP=fr dans le fichier /etc/vconsole.conf.

echo $hostname > /etc/hostname

Cette commande définit le nom d'hôte du système en écrivant le contenu de la variable $hostname dans le fichier /etc/hostname.

echo -en "$root_password\n$root_password" | passwd

Cette commande change le mot de passe de l'utilisateur root en utilisant la syntaxe d'entrée standard echo. Le mot de passe est fourni deux fois pour confirmation.

useradd -m -G wheel -s /bin/bash $user_name

Cette commande crée un nouvel utilisateur avec le nom spécifié dans la variable $user_name. L'option -m crée un répertoire de base pour l'utilisateur, -G wheel ajoute l'utilisateur au groupe wheel, et -s /bin/bash définit le shell par défaut de l'utilisateur.

echo -en "$root_password\n$root_password" | passwd $user_name

Cette commande change le mot de passe de l'utilisateur spécifié ($user_name) en utilisant la syntaxe d'entrée standard echo. Le mot de passe est fourni deux fois pour confirmation.

sed -i 's/^HOOKS.*/HOOKS=(base udev autodetect keyboard modconf block keymap encrypt lvm2 resume filesystems fsck)/' /etc/mkinitcpio.conf

Cette commande modifie le fichier de configuration mkinitcpio.conf pour inclure les crochets nécessaires au processus d'initialisation. Cela spécifie les crochets à utiliser lors de la création de l'image initiale du noyau Linux.

mkinitcpio -p linux

Cette commande reconstruit l'image initiale du noyau Linux en utilisant les paramètres définis dans mkinitcpio.conf. Cela garantit que le système peut démarrer correctement avec le nouveau noyau.

bootctl --path=/boot install

Cette commande installe et configure systemd-boot comme chargeur d'amorçage. Cela configure le système pour démarrer à partir du fichier de configuration et des entrées de démarrage stockées dans /boot.

Continuer avec la configuration systemd-boot, etc.

mkdir -p /boot/loader/ touch /boot/loader/loader.conf tee -a /boot/loader/loader.conf << END default arch timeout 0 editor 0 END

mkdir -p /boot/loader/entries/ touch /boot/loader/entries/arch.conf tee -a /boot/loader/entries/arch.conf << END title ArchLinux linux /vmlinuz-linux initrd /$cpu_microcode.img initrd /initramfs-linux.img options cryptdevice=LABEL=LVMPART:cryptVol root=/dev/mapper/Arch-root resume=/dev/mapper/Arch-swap quiet rw END

echo "Setting up Pacman hook for automatic systemd-boot updates" mkdir -p /etc/pacman.d/hooks/ touch /etc/pacman.d/hooks/systemd-boot.hook tee -a /etc/pacman.d/hooks/systemd-boot.hook << END Type = Package Operation = Upgrade Target = systemd

[Action] Description = Updating systemd-boot When = PostTransaction Exec = /usr/bin/bootctl update END

echo "Enabling autologin" mkdir -p /etc/systemd/system/getty@tty1.service.d/ touch /etc/systemd/system/getty@tty1.service.d/override.conf tee -a /etc/systemd/system/getty@tty1.service.d/override.conf << END [Service] ExecStart= ExecStart=-/usr/bin/agetty --autologin $user_name --noclear %I $TERM END

echo "Updating mirrors list" cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.BAKreflector --latest 10 --age 12 --protocol https --sort rate --save /etc/pacman.d/mirrorlist``

touch /etc/pacman.d/hooks/mirrors-update.hook tee -a /etc/pacman.d/hooks/mirrors-update.hook << END [Trigger] Operation = Upgrade Type = Package Target = pacman-mirrorlist

[Action] Description = Updating pacman-mirrorlist with reflectorWhen = PostTransactionDepends = reflectorExec = /bin/sh -c "reflector --latest 10 --age 12 --protocol https --sort rate --save /etc/pacman.d/mirrorlist"END

echo "Enabling periodic TRIM" systemctl enable fstrim.timer

echo "Enabling NetworkManager" systemctl enable NetworkManager

echo "Enabling suspend (but no hibernate)" sed -i 's/#HandleLidSwitch=suspend/HandleLidSwitch=suspend/g' /etc/systemd/logind.conf

echo "Adding user as a sudoer" echo '%wheel ALL=(ALL) ALL' | EDITOR='tee -a' visudo EOF

umount -R /mnt swapoff -a

reboot

Arch Linux

Voila nous avons installé Arch Linux , bravo a vous c'est merveilleux.


1804 Words

2024-01-06