À la découverte de Gentoo

Publier le 10 avril 2021 13:00

Qu'est-ce que !

Le Pare-Fou est allongé sur un lit, son ordinateur est allumé affichant un message "L'installation est terminée, vous devez redémarrer le système".

Hum ? ... Tu as fini de travailler ? Pas d'erreur ? Pas de soucis ? Tout va bien ? Il est quelle heure ?! Oh et puis redémarrons cette machine et voyons ce qui se passe ! Depuis le temps que je voulais le faire de moi-même, j'espère avoir réussi cette fois-ci !

Non parce que faut le dire, en dehors de la patience qu'il faut avoir pour installer cette distribution Linux, il faut également avoir une certaine connaissance de son système... Le nombre de fois où ma machine est partie en vrille, j'en ai fait des loopings et, comme le bon joueur que je suis, j'ai repris un ticket pour un nouveau tour de manège !

Je vous donnerai les statistiques de cette fabuleuse aventure plus tard pour les curieux.

Un peu de contexte. Gentoo est une distribution Linux mère qui a la particularité d'utiliser un système de gestion de paquet similaire à BSD permettant ainsi d'assurer une certaine flexibilité au niveau de l'installation des outils et logiciels (les paquets). Lorsque l'utilisateur installe un paquet, ce dernier est compilé par la machine contrairement aux autres distributions Linux. Cela nécessite donc de la patience, de la curiosité et surtout une certaine ténacité pour atteindre l'objectif d'installer une Gentoo. À la fin de cette aventure, vous aurez acquis une bonne compréhension de la compilation et du kernel Linux.

Au moment où j'écris ces lignes, je n'ai pas encore lancé ma première installation de Gentoo.

La scène s'assombrit, la lumière se fixe sur Le Pare-Fou.

Tout ceci n'est pour le moment qu'un rêve, qu'un fantasme, je n'ai même pas téléchargé l'ISO de Gentoo. Je suis actuellement sur la page principale du Handbook. Alors si vous le voulez bien, prenons un ticket tous ensemble et entrons dans notre premier tour de manège !

Un ticket pour ce train !

Le Pare-Fou est installé devant sa tour Windows avec son Dell sur les genoux.

Il faut que je vous explique un peu mon setup actuel. Pour cette installation, j'ai pris mon Dell inspiron 15 3000. Ceci n'est pas une publicité, c'est pour que vous puissiez avoir une base sur les choix futurs que je vais faire. Mon ordinateur est actuellement sous Arch, une autre distribution Linux. Je vais donc vous montrer les différentes étapes de l'installation de ma gentoodell.

L'une des premières choses à faire c'est de lire le Handbook de Gentoo. Prenez le temps de lire cette première page, ne cliquez sur aucun lien, nous verrons à la fin de cette première mise en bouche ce que nous devrons faire.

C'est bon pour vous ? Personnellement, j'ai noté 3 points intéressants :

  • Gentoo Linux is available for many computer architectures. - il va falloir que je trouve l'architecture de mon ordinateur.

  • The point of the Handbook is to get a bare-bones Gentoo system up and running, not to cover all possible installation path. - il ne faudra pas se contenter du Handbook, mais chercher également dans le Wiki Gentoo (ou ailleurs).

  • I cannot find stage1 information in the Handbook. Where do I look? - je commence par le stage1 ou le stage3 ? De quoi me parle-t-on ?

L'architecture. Selon le Handbook, cela correspond à la famille des processeurs. Je vais donc chercher à travers le terminal l'architecture de mon processeur.

florent@archdellix-> uname -m
x86_64
florent@archdellix-> cat /proc/cpuinfo
...
model name	: Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz
...
florent@archdellix-> nproc
4

Avec ces informations, vous obtenez les réponses suivantes : j'ai 4 processeurs 64 bits Intel Core I5. Je dois donc suivre le AMD64 Handbook pour installer Gentoo.

Si vous êtes sous Windows 10, utiliser le raccourci clavier "Touche Windows + i". Vous cliquerez ensuite sur "Système" puis sur "À propos de". Vous trouverez ainsi vos informations sur votre processeur.

Avant de me lancer dans le Handbook qui correspond à mon architecture, je vais tout de même me renseigner sur ce que signifie ces stages 1, 2, 3.

Ma curiosité rassasiée, je me lancerai donc sur une installation classique avec le stage3. Lorsque je me sentirai en veine, peut-être tenterais-je l'attraction Linux++ avec le stage1.

J'ouvre donc le AMD64 Handbook et me lance dans une lecture des plus palpitantes !

Embarquement dans le wagon.

Je lis rapidement l’About qui me présente les différentes parties de l'installation pour passer à la première étape à savoir : l'installation du média.

Je ne m'inquiète pas pour le matériel requis - le CPU est bon et j'ai bien plus de mémoire, espace de stockage et mémoire swap qu'annoncé.

Je continue de lire et j'arrive sur le téléchargement de l'ISO. Je me rends donc dans la page des différents miroirs disponibles, je choisis le premier dépôt français (OVH) et je me rends dans la partie releases/amd64/autobuilds/current-install-amd64-minimal/ pour prendre l'ISO requis (il n'y a qu'un seul fichier ayant l'extension .iso).

Pendant que le téléchargement se fait sur ma tour Windows, j'insère une clé USB qui va accueillir cette ISO et j'installe Rufus, un outil qui va permettre de rendre bootable ma clé USB. Une fois le fichier ISO terminé, j'utilise le logiciel Rufus qui pointe automatiquement sur ma clé USB, je lui spécifie le fichier ISO et je démarre le processus. Tada ! Gentoo est dans une clé et attend d'être installé sur mon système.

Bon, comme je suis une quiche, j'ai pris mes notes sur mon Dell qui va accueillir Gentoo... laissez-moi faire le ménage sur ma Archdellix et je reviens vers vous ! Prenez un café, un thé, une bière en attendant !

Le Pare-Fou fait plusieurs aller-retour avec un disque dur externe. Il inspire profondément.

Ça y est. Je vais enfin pouvoir démarrer sur Gentoo. Enfin, il faut encore que je lise une partie avant de me lancer : booting the installation media. Je vois déjà des options de kernel et de système : je sens que je vais être largué... enfin, prenons le temps qu'il faut pour assimiler tout cela.

On se rappelle : ce Handbook prend des choix par défaut, des choix dont ils estiment que la plupart des utilisateurs feront, car cela correspond à la plupart des configurations. Mais moi je veux comprendre ces options, pourquoi elles sont là ? Quelles sont leurs valeurs ? Qu'est-ce qui va faire que mon installation sera différente d'une autre personne ?

Alors s'en plus attendre, je me lance à la conquête d'une première lecture plus technique !

Comme je m'en doutais, une fois inséré la clé, redémarré notre système et booté sur Gentoo, un prompt s'affichera dont le simple fait de taper sur la barre d'Entrée nous permet d'avoir des options de boot par défaut. Peut-être est-ce le choix que je ferai ? Regardons les options qui nous sont proposées.

J'apprends que je peux voir les options qui me sont disponibles en pressant les touches F1 et F2 pour avoir respectivement les options du kernel et les options du boot.

Selon le Handbook, deux choix du noyau nous sont proposés : Gentoo et Gentoo nofb (no framebuffer). J'apprends à travers le Wiki Gentoo que le framebuffer peut causer certains soucis d'affichages avec les nouvelles cartes graphiques. Je regarde le lien externe qui est associé à ce wiki qui confirme mon futur choix : je prendrai la version gentoo-nofb. Je pourrai très bien revenir sur une installation avec le choix par défaut plus tard.

Maintenant les options du système. Il est évident que tout ceci sera bien différent de votre installation, que je peux très bien me tromper, que je peux être exhaustif sur les options ou au contraire restrictif.

Pour chaque option, j'ai pris des notes et voici ce que j'obtiens :

  • acpi=on : pour gérer la gestion de l'alimentation ainsi que les paramètres avancés de cette dernière.

  • ne rien spécifier pour console (je vais laisser le choix par défaut, je ne m'y connais pas assez)

  • noraid : je ne ferai pas de mappage de RAID sur mon système.

  • noapm : vu que j'ai choisi acpi pour gérer mon alimentation, je dois désactiver apm.

  • nopcmcia : je n'ai pas de composant PCMCIA/Cardbus

  • doscsi : pour le support éventuel d'autre contrôleur.

  • Je ne touche pas à l'option ide. Cela semble être particulier et dépendre de certains CD-ROM.

  • dans la liste des "no", celle qui gère la souris alors que je serais en console me convient : nogpm (les autres sont soit des options pour débugger / soit qui dépendent du choix d'installation (RAID / DHCP / son...))

  • dolvm, une option intéressante, mais dont j'ai le regret de ne pas vouloir l'activer. Malheureusement pour moi je n'ai pas encore plongé dans cet univers virtuel donc cette option risque de me ralentir pour ma première installation. Je la laisse de côté.

  • Les autres options ne seront pas utilisées.

LVM permet de gérer votre volume physique en volume logique qui peut être redimensionné sans trop de risque et dont la prise de snapshot (sauvegarde totale de la partition virtuelle) ne perturbe pas la machine et les services. Peut-être un autre article à ce sujet-là ?

J'ai fini de lire la partie technique, maintenant il est temps de passer à la pratique et de me frotter à la vraie vie !

Le Pare-Fou insère la clé sur son Dell. Il redémarre son ordinateur et...

Ah bah ça n'a pas loupé ! J'arrive sur le choix de la disposition clavier, je n'ai pas le temps de voir fr et pouf me voilà sur le livecd en QWERTY. Zut ! J'ai loupé un truc ?!

Je reboot deux fois de suite pour comprendre qu'il faut que je saisisse "18" pour avoir une disposition FR. J'appuie sur F1... rien ne se passe... F2 ?... Pas de nouvelle non plus. Je lance la commande gentoo-nofb : command not found.

Je me suis gouré quelque part ? C'est fort probable ! J'arrête tout et j'essaye d'arriver sur le grub (il charge en 1 sec la première partition).

Je regarde le grub : boot livecd (kernel Gentoo), boot livecd (kernel Gentoo) (cached). Ah ! Voilà le problème ! Ma clé est chargée avec l'installation par défaut de Gentoo avec un kernel "gentoo" (et non gentoo-nofb). Du coup... Comment dois-je faire avec mes options ?!

Le Pare-Fou utilise l'appel à un ami. Rawleenc lui répond et il trouve ensemble la cause : UEFI.

Ah bah ça... Les options que j'ai précédemment listées, que j'ai scrupuleusement choisies, et dont j'ai fait des recherches n'ont finalement servi qu'à accroitre mes connaissances.

En effet, les choix d'options de kernel et du système sont valables pour une installation Bios (avec CD-ROM). Le Handbook prend le cas le plus général et liste ces options pour un boot avec un CD-ROM.

Moi je boot avec de l'UEFI (avec clé USB) pour installer Gentoo, il charge donc le kernel par défaut ainsi que des options par défaut (en détectant mon système et en choisissant les options adéquates) pour me placer sur le livecd.

Le livecd est la console qui va nous permettre d'installer par la suite notre kernel et notre Gentoo avec les options que j'ai précédemment listées (plus d'autres, mais on y reviendra).

Ce qui m'a un peu déçu à ce stade, ce n'est pas tant l'heure que j'ai perdu à essayer de trouver une solution, mais plus le fait que la documentation ne précise pas que l'UEFI boot par défaut sous le kernel "gentoo" contrairement au Bios où le choix des options est possible. En tout cas à ma lecture, cela n'était pas flagrant et j'ai certainement loupé l'information sur le moment.

J'en profite également pour vous parlez de Rawleenc, un ami d'école d'ingénieurs, qui a installé sa Gentoo KDE récemment. C'est entre autres lui qui peut me sortir d'affaire lorsque je coince et que je ne trouve pas l'information nécessaire sur internet.

Continuons ! Nous sommes sur le livecd maintenant, avec un clavier AZERTY (choisir 18 pour la disposition FR), il est temps de reprendre la lecture.

J'apprends que des modules sont automatiquement chargés par le processus de boot, mais que certains modules peuvent ne pas être chargés (et requis par mon système). Je prends note et je continue le récit.

Concernant les comptes utilisateurs, pour le moment je ne vais pas en ajouter un dans le livecd, ni même attribuer de mot de passe au superutilisateur root.

Je ne vais par ailleurs ni lire la documentation à travers mon TTY ni activer le service sshd pour me connecter à distance sur mon Dell. Ma tour Windows s'occupera de la documentation ainsi que ma prise de note et je ne veux pas faire de mauvais copier-coller en passant par ssh. Il faut savoir que sur Windows il peut arriver d'avoir des caractères "invisibles" qui seront ensuite mal interprétés sur Linux.

Du WIFI dans le train !

On ne l'entend pas beaucoup ce titre-là !

Nous allons désormais passer à l'étape de la configuration réseau. Sans surprise, un ping google.fr ne fonctionne pas et lorsque j'analyse mes interfaces réseau elles n'ont aucune IP :

  • enp2s0 correspond à mon interface Ethernet.

  • lo correspond à la loopback. Elle a l'IPv4 127.0.0.1/8 et IPv6 ::1/128.

  • wlp1s0 correspond à mon interface WIFI. Celle que j'utiliserai pour rejoindre Internet.

Pour obtenir ses informations, il faut utiliser la commande ip a (ou ip addr) ou pour les nostalgiques ifconfig. À ce stade, toutes mes interfaces sont UP, mais aucune IPv4 / IPv6 ne leur sont associées.

En continuant de lire la documentation, je tombe sur la commande net-setup qui prend en paramètre l'interface réseau. Je tape donc net-setup wlp1s0 pour arriver dans une petite interface graphique qui m'affiche les détails de mon interface.

Je choisis oui avec les touches directionnelles à la question "est-ce l'interface que vous souhaitez configurer ?" et la touche Entrée pour valider.

Mon réseau est sans fil avec une clé WPA-PSK/WPA2-PSK.

Je renseigne le SSID (le nom de la box) et le mot de passe de mon téléphone (partage de connexion en 4G).

Je choisis d'activer DHCP (mon téléphone générera une IP dynamique à mon appareil) et je valide.

Sur mon téléphone, je vois qu'un nouveau périphérique livecd est connecté. Je relance le ping précédemment lancé : ça fonctionne ! Une autre vérification à faire est de s'assurer d'avoir une IP sur l'interface wlp1s0 avec ifconfig ou ip a (ip addr). Vous devriez obtenir une IPv4 et une IPv6.

Je passe les étapes manuelles et tout le blabla sur la terminologie du réseau pour finalement aller à la partie suivante du Handbook : préparer le disque.

On rattache les wagons !

Cette étape est certainement la plus importante - construire ses partitions. Je ne vais pas vous le cacher - c'est la partie qui me fait toujours le plus peur ! Mais rassurez-vous, c'est simple comme bonjour !

Il faut voir ça comme un assemblage de wagon. Nous avons notre train, représenté par notre disque dur entier, qui est séparé en wagon (partition racine et partition swap) avec une locomotive (partition de Boot). Il faudra ensuite customiser nos différents bouts de train (nos partitions) en les aménageant convenablement (associer un système de fichier - mkfs).

Le fait que je sois en UEFI apporte un tout autre challenge ! Je vous laisse prendre connaissance des informations fournies en préambule pour nous retrouver sur la partie Default partitioning scheme.

Comme vous le voyez sur le schéma, nous avons :

  • une partition dédiée au système (Boot ou EFI selon le cas) - la locomotive.

  • une partition de swap pour permettre d'étendre la mémoire utilisable - un wagon de secours pour la locomotive (wagon à charbon par exemple).

  • une partition racine où notre système Gentoo fonctionnera - le wagon des usagers.

Les outils à notre disposition pour créer nos partitions sont les suivants : fdisk, cfdisk, parted.

J'utilise cfdisk pour supprimer mes anciennes partitions. Désormais j'ai 931.5G d'espace libre sur mon ordinateur, je "write" mes modifications, je valide en écrivant "yes" et je quitte.

Maintenant, je dois créer les 3 partitions. Je continue donc de lire la documentation qui me parle des customisations possibles sur le nombre de partitions et la valeur du swap (2 fois la RAM).

Pour obtenir la RAM j'utilise la commande free -h qui m'indique que j'ai 7.7GGi de mémoire, je mettrai donc 16Gi de swap pour suivre les conventions. J'arrive donc à la partie Partitioning the disk with GPT for UEFI et je déroule les commandes en commençant par fdisk /dev/sda.

Je crée ma première partition (EFI system) : j'écris n, puis 1, puis entrer (first sector par défaut), puis +256M je supprime la vfat signature correspondant à mon ancienne configuration en écrivant y. Je modifie le type de ma partition : j'écris t (je n'ai qu'une seule partition donc fdisk me propose directement de faire le choix de son type) je liste avec l et je choisis "Efi System" soit 1.

Je crée ma seconde partition (swap) : j'écris n, puis 2, puis entrer (first sector par défaut), puis +16G. Je modifie le type de ma partition : j'écris t, puis 2 (deuxième partition), puis 19 (Linux swap).

Je crée ma troisième et dernière partition (partition racine de Gentoo) : j'écris n, puis 3, puis entrer (first sector par défaut), puis entrer (last sector par défaut - sous-entendu prend tout le reste du disque). Je modifie le type de ma partition : j'écris t, puis 3 puis 20 (Linux filesystem). Par défaut la partition était déjà de ce type-là, mais autant continuer sur ma lancé.

J'écris "p" pour afficher mes partitions qui correspondent exactement à la partie "Creating the root partition". J'écris w pour appliquer mes modifications et je vérifie via fdisk -l /dev/sda que mes modifications ont bien été appliquées et je passe également sur cfdisk /dev/sda pour voir mes jolies partitions.

Maintenant que nous avons créé nos partitions et que nous leur avons indiqué le type de partition qu'ils auront, il faut maintenant leur attribuer un système de fichier (la customisation des wagons).

En suivant la partie Applying a filesystem to a partition, je redécouvre que pour la partition EFI il est préférable de choisir un système de fichier vfat - 32 bits et pour la partition racine du ext4. Ça tombe bien, c'est exactement les mêmes recommandations que sur Arch donc je ne suis pas dépaysé !

J'applique donc les commandes fournies dans cette partie et je n'oublie pas d'activer mon swap sur la partition sda2.

Je vérifie avec free -h que mon swap est bien activé (15Gi au total) et je continue mon aventure en montant ma partition "Linux filesystem" (sda3) sur le répertoire /mnt/gentoo. Je tourne la page !

Le Pare-Fou s'enfuit voir sa cafetière et reviens 5 minutes plus tard.

Les cheminots en action.

Installer les fichiers d'installation de Gentoo... AAAAAAAAAAAHHHHH ! La partie qui va être encore plus intéressante ! Peut-être que c'est à ce moment-là que les options précédemment observées seront utilisées ! Ou peut-être que je ne les utiliserais jamais... Enfin ce n'est pas grave, continuons notre parcours !

Je remarque que la date ne correspond pas, enfin que l'heure ne correspond pas. Je continue de lire, j'exécute la commande automatique et je remarque que l'heure est en UTC, et non avec mon timezone ! Tout s'explique ! L'heure est exacte (2 heures de décalage, heure d'été) tout va bien !

Nous arrivons sur la partie où il faut installer l'étape stage3, je me place donc sur le dossier /mnt/gentoo puis je télécharge le fichier .tar.xz présent dans le dossier current-stage3-amd64/ du dépôt miroir que j'avais préalablement choisi (France OVH).

Pendant le téléchargement, je lis la partie concernant les options de compilation : ça va chier ! Je note que les options sont disponibles dans un fichier d'exemple et j'en apprends un peu plus sur des options de bases.

Une fois le téléchargement terminé, je prends garde aux options de décompression de l'archive puis je supprime le fichier tar.xz.

Note importante (explication de la suppression de l'archive) : toute modifications, suppressions, ajout de fichier doit s'assurer d'avoir un fichier de backup. Ainsi avant que je ne fasse n'importe quelle modification, je ferai une copie des fichiers que je modifie. Je dois également m'assurer que les permissions et les propriétaires correspondent au fichier d'origine. Ainsi, si une modification casse l'installation, je pourrai revenir sur un état propre et repartir de zéro. Je vous épargne les commandes "cp" (commande de copie), mais sachez que je réalise ses commandes.

Ceci étant dit, avançons-nous sur le dossier /mnt/gentoo/usr/share/portage/config/ et plus précisément sur le fichier make.conf.example. Une fois avoir bien pris en compte TOUTES les options possibles, voici celle que j'ai ajouté pour ma configuration.

MAKEOPTS="-j4"
ACCEPT_KEYWORDS="amd64"
AUTOCLEAN="yes"
EMERGE_DEFAULT_OPTS="${EMERGE_DEFAULT_OPTS} --jobs=4 --load-average=4"

J'ai placé ces options à la suite des flags et j'ai ajouté dans le COMMON_FLAGS le paramètre "-march=skylake" qui correspond à l'architecture de mon processeur.

Désormais, nous allons choisir notre miroir. J'exécute donc la commande mirrorselect qui m'est proposée et je choisis celui de France - OVH qui m'a fourni l'ISO et le tarball. Je n'oublie pas d'ajouter ceux présents dans le make.conf.example à la suite de celui d'OVH dans mon fichier /mnt/gentoo/etc/portage/make.conf.

Je suis les recommandations en copiant les informations DNS sur mon nouvel environnement et je prépare certains dossiers en leur appliquant leur système de fichier (/proc, /sys, /dev de mon futur environnement /mnt/gentoo). J'entre désormais dans /mnt/gentoo et j'affecte à ma partition /dev/sda1 le dossier /boot.

J'utilise emerge-webrsync pour obtenir les derniers profiles qui sont disponibles, parmi ces derniers un m'intéresse : systemd. Je réalise donc la commande eselect profile list et je choisis celui qui à "17.1/systemd". J'ai l'intention d'installer Gnome par la suite, mais d'abord réalisons une installation d'un terminal fonctionnel (qui nous crashent à la gueule lorsqu'il y a des erreurs).

Je réalise pour la première fois la commande "emerge" sur le monde pour télécharger, compiler et installer mes 26 premiers paquets. Pendant que mon ordinateur travaille, je survole la partie des USE flags pour m'attarder sur la génération du kernel avec systemd.

Il faut savoir que Gentoo préconise le système Openrc qui est documenté dans son Handbook. À chaque opération "Openrc", je dois récupérer les commandes équivalentes sur "systemd".

J'arrive ensuite sur l'étape d'installation du kernel. J'installe les paquets gentoo-sources et genkernel avec la commande "emerge --ask gentoo-sources genkernel". Je mets à jour mon fstab en ajoutant la locomotive de la manière suivante (chut, on y reviendra) :

/dev/sda1	/boot	ext4	defaults	0 2

Et je réalise la commande "genkernel all" puis "genkernel --menuconfig all" pour m'assurer que les options du kernel étaient "bon". En réalité, c'est beaucoup trop bas niveau pour que je puisse être sûr à 100% que ça soit "bon", je fais en sorte que le support de systemd et que mon hardware soit prise en compte par le kernel, l'avenir me donnera les connaissances dont j'aurai besoin pour maîtriser cela.

À la fin de la génération de mon kernel, je réalise la commande "emerge --depclean" pour supprimer les éventuels paquets obsolètes.

J'arrive désormais sur la partie pour configurer mon système. Nous revenons donc sur le fstab dans lequel j'enrichis ce dernier de ma partition swap et ma partition racine (mes wagons) :

/dev/sda2   none         swap    sw                   0 0
/dev/sda3   /            ext4    noatime              0 1

J'installe les paquets réseaux dhcpcd et iw / wpa_supplicant pour gérer ma future connexion.

J'installe le paquet grub:2 et réalise les commandes pour l'installer et le configurer (ichi ichi ichi, le fstab...) : grub m'indique que tout va bien !

Je quitte donc mon nouvel environnement en réalisant la combinaison de touche Ctrl + D et j'enlève toutes les partitions montées.

Je reboot en prenant soin d'enlever la clé USB une fois que mon système s'est éteint.

Le Pare-Fou va se prendre un thé - voit le grub s'affichait. Il saute de joie et choisit la partition gentoo. Et ce qui devait arriver arriva.

Quoi ?! Impossible d'accéder à une session de login en ligne de commande ? Qu'est-ce j'ai fait ! Qu'est-ce que ça me dit ? J'ai bien tout fait pourtant ?!

Voici les logs sorties par gentoo lors de mon premier reboot :

Logs d'erreurs lors du démarrage de la partition

Trois choses attirent mon attention (par ordre de ma découverte) :

  • emergency mode : à ce moment-là, j'ai compris que j'avais fait une faute grave dans mon installation.

  • compte root verrouillé : je n'ai pas donné de mot de passe à root et je n'avais pas de compte utilisateur - impossible de me logger.

  • Failed to mount /boot : j'avais pourtant bien déclaré la partition dans le fstab, mais... (regarde deux lignes plus haut) quel con !

Pour expliquer le problème : lorsque j'ai crée ma partition, j'ai affecté à la partition /dev/sda1 (/boot) le système de fichier VFAT. Hors dans mon fstab, j'ai déclaré cette partition comme ext4 - ça mismatch d'où cet incident. C'est comme dire à la locomotive que finalement c'est un wagon (et d'en être certain !).

Pour réparer le problème, j'ai redémarré mon système sur ma clé USB. J'ai monté mes partitions en suivant le même procédé inscrit dans le Handbook et j'ai réalisé les modifications nécessaires :

  • renseigner la valeur vfat à la place d'ext4 dans le fichier fstab sur la ligne associée à ma partition /boot.

  • ajouter un utilisateur ainsi que l'outil sudo pour que ce dernier puisse passer administrateur temporairement.

Je redémarre le système en prenant soin de retirer la clé et pouf la magie opère : j'arrive sur un système Gentoo avec systemd. Félicitations !

Un train l(in)uxieux

Qu'est-ce que je m'amuse avec ces titres !

Je peux m'arrêter là, mais j'aimerais tout de même continuer sur ma lancé en installant un bureau d'environnement : Gnome. De plus, je n'ai à ce stade mis aucun USE Flags ni même configurer correctement mon système (hostname, support de la langue française, clavier AZERTY).

Pour m'assurer que mon futur environnement supporte la langue française, j'ajoute dans mon make.conf la variable L10N="fr" puis je sélectionne le profile gnome/systemd.

Je me fade tout les USES Flags présents dans ce fichier /var/db/repos/gentoo/profiles/use.desc et j'en sors une cinquantaine que j'affecte à la variable "USE" dans mon make.conf. Je désactive également certains flags comme qt5 et kde par exemple.

De ce que j'ai pu comprendre des USES Flags, nous avons d'abord ceux du profile qui sont présent dans un fichier make.default (à ne pas modifier !), ensuite viens notre /etc/portage/make.conf, puis des flags propres à certains packages dans le dossier /etc/portage/package.use/ et enfin en dernier recours les flags lors de l'installation avec emerge en utilisant le paramètre USE avant.

J'ajoute également le fait d'accepter n'importe quelle licence avec la directive "ACCEPT_LICENSE".

Dans /etc/hostname j'affecte la valeur gentoodell pour avoir ce nom d'hôte. Je mets à jour le fichier /etc/hosts pour l'associer à l'IP 127.0.1.1.

Je mets à jour les fichiers liés aux locales systemd à savoir /etc/locale.conf (puis locale-gen) et /etc/vconsole.conf. Si vous avez un souci au niveau de votre heure (ce qui n'est pas mon cas), vous pouvez voir les locales dans /usr/share/zoneinfo/* et créer un lien symbolique sur /etc/localtime. Exemple : ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime

Comme j'ai changé de profile, je dois recompiler tout le monde, j'exécute donc la commande : emerge --ask --changed-use --deep --with-bdeps=y @world

Une fois cela terminé, j'installe enfin Gnome en fixant certains packages qui nécessitaient des flags particuliers. J'avais en l'occurrence ncurls qui avait besoin d'un seul paquet ssl, hors j'en avais deux dans mes uses flags nss / openssl. J'ai retiré nss dans le dossier /etc/portage/package.use/ en spécifiant le package associé.

Quelques heures plus tard, je redémarre mon système en ayant au préalable activé le gestionnaire de gestion d'utilisateur gdm : j'ai désormais une Gentoo Gnome sur mon pc.

Gentoo Gnome installé

Un train sur un bateau ?

Je ne vais pas trop m'attarder sur ce sujet, mais j'ai tenté de faire des images docker / lxc de Gentoo par la suite.

Pour docker, toutes mes tentatives ont été vaines. Prenant le stage3 qui nécessite des droits particuliers, je ne suis pas parvenu à faire comprendre à docker que les owners / permissions sont spéciales. Nécessite un apprentissage plus approfondi de docker.

Pour lxc, je n'ai pas eu de problème. Il m'a suffi de décompresser le stage3 dans un dossier temporaire, de compresser ce fichier dans un tar.gz, d'apporter des metadata pour importer l'image sans problème. À la suite de ça, j'ai lancé un conteneur de cette image qui est parvenu à me "ls -l" correctement le dossier "racine". Nécessite toutefois d'apprendre lxc / lxd pour avoir du réseau dans mes conteneurs et profiter de la commande emerge pour y installer mes paquets.

Remerciement

Déjà, merci à vous d'avoir lu jusque-là. Ce n'est pas forcément très palpitant vu que c'est plus un article pense-bête pour moi. Donc sincèrement, merci à toi cher public d'avoir participé.

J'aimerais également remercier toute la sphère linuxienne, qui contribue de près ou de loin, à faire évoluer ce système. Lorsque j'ai installé Gentoo, j'ai appris de nouvelles choses et je sais maintenant que d'autres sujets m'attendent : j'ai le sentiment d'être en constante évolution. Et ça je le vois surtout à travers Linux, donc merci à vous cher collègue, ami, d'être là.

Remerciement aussi à ma famille, mes amis, mon chat et... à non ce n'est pas un rapport de fin d'année c'est bon ! Excusez-moi je m'égare !

Statistique

Tout le processus d'installation de Gentoo a pris tranquillement 3 jours. Durant le week-end de Pâques pour être précis. Les étapes entre elles ont également un peu de délais suite à ma prise de note et aux aléas de la vie (c'était pâques hein !).

Samedi

23h25 - 23h40 : lecture du Handbook "générale".

23h50 : commande de check pour trouver mon architecture

00h01 : reviens avec les informations sur les stages

00h13 : ouverture du Handbook "amd64" - lecture page about

00h22 : lecture d'installation media

00h58 : fin du téléchargement de l'ISO / boot de la clé

Dimanche

10h15 : lecture de booting the installation media

10h31 - 11h44 : prise en compte des différentes options kernel / systèmes lors du boot

11h44 - 12h54 : investigation du "problème" des options

13h03 - 13h12 : configuration réseau - net-setup

13h57 - 14h25 : partitionnement

14h42 - 14h45 : investigation sur l'horloge

14h50 - 15h15 : installation du stage3

15h20 - 16h18 : options de make.conf

16h18 - 16h30 : selection du profile 17.1/systemd - emerge-webrsync

16h30 - 17h00 : emerge de world - 26 paquets

17h47 - 18h05 : installation des outils pour le kernel

18h05 - 20h36 : double build du kernel pour le plaisir - premier fini à 19h35

20h46 - 21h : téléchargement des paquets réseau / grub - installation grub

21h06 - reboot du système - failed

21h36 - fix du fstab - adduser - ajoute networkmanager

21h45 - reboot du système - success

Lundi

11h05 - 12h : mise à jours make.conf avec USE, ACCEPT_LICENSE, L10N

12h13 - 17h18 : emerge world avec le profile gnome/systemd - rust, llvm et spidermonkey étant les plus long

17h55 - 22h00 : emerge gnome - reboot success