Installer PrimTux
- Modifier le BIOS
- Installation classique
- Installation en machine virtuelle avec VirtualBox
- Installation en machine virtuelle avec Virt-Manager
- Déploiement avec Clonezilla
- Installation sur un Chromebook
- Installation avec rEFInd
- Partenaires contribuant à l'installation et au déploiement de PrimTux
- En cas de problèmes...
- Déploiement avec FOG sous Virt-Manager
- Déploiement avec FOG sous VirtualBox
Modifier le BIOS
Avant l'installation, il peut être nécessaire d'entrer dans le BIOS (logiciel interne utilisé par le microprocesseur pour démarrer l'ordinateur) pour modifier quelques paramètres. La vidéo suivante explique cette démarche pas-à-pas:
Installation classique
Par Cyril Laconnelli
Télécharger PrimTux
Sur la page de téléchargement , choisir la version convenant à ses besoins.
Vérifier la somme md5
Cette étape facultative permet de vérifier l'intégrité de l'image ISO téléchargée.
Comment vérifier la somme md5
Sous Linux, ouvrir un terminal dans le dossier dans lequel se trouve l'image .iso de PrimTux, puis taper la commande :
md5sum nom-iso-primtux.iso
Comparer ensuite la valeur retournée avec celle donnée avec le lien de téléchargement qui se présente sous cette forme :
Cette opération sera à effectuer dans la cas où PrimTux ne démarrerait pas correctement, afin d'en cerner la cause.
Créer une clé USB en mesure de démarrer l'iso
Si vous ne savez pas comment créer une clé USB de démarrage de PrimTux, cette page vous propose plusieurs méthodes. L'utilisation d'une clé sous Ventoy permet de disposer de plusieurs images iso installables et est assez simple à mettre en œuvre. De plus elle fonctionne la plupart du temps mais comme ce n'est pas systématique, il faudra peut-être essayer d'autres méthodes.
Démarrer l'ordinateur à partir de la clé USB PrimTux
L'ordinateur doit être en mesure de démarrer à partir d'un port USB. La plupart des ordinateurs disposent de la possibilité d'ouvrir un menu permettant de choisir le périphérique sur lequel démarrer. Cette fonction est accessible en appuyant sur une touche spécifique une dizane de secondes après avoir allumé la machine (il se peut que vous deviez vous y reprdendre à plusieurs fois). Cette touche est différente selon la marque et le modèle de l'ordinateur, et est généralement indiquée sur le manuel de l'appareil. Souvent : F12, ESC ou F9. Elle est parfois indiquée brièvement pendant le démarrage. Ne pas hésiter à tapoter (doucement) plusieurs fois la ou les touches dès le démarrage de l'ordinateur pour ne pas manquer ce moment.
Pour savoir quelle entrée du menu démarrer du BIOS choisir, se reporter à cette page.
Il peut être nécessaire d'intervenir dans le BIOS de la machine pour s'assurer que l'option "Secure boot" ou "Démarrage sécurisé" est désactivée, que le BIOS autorise bien un démarrage par USB, et que le démarrage par USB est bien présent dans l'option "Ordre de démarrage". La manière de résoudre ces problèmes dépasse le cadre de ce manuel.
Après démarrage depuis la clé USB PrimTux, un menu tel que celui-ci devrait apparaître :
C'est à partir de ce menu que nous pouvons choisir de tester ou d'installer PrimTux. Si c'est votre première découverte de PrimTux, commencez par la tester en choisissant la première ligne “Tester PrimTux.
Si vous êtes séduit et décidez de l'installer, redémarrez votre PC et choisissez cette fois “Installer PrimTux sur votre ordinateur”.
Installer PrimTux 64 bits
Voici comment installer PrimTux sur un ordinateur.
Démarrer en mode Installation
Choix de la langue et du clavier
Télécharger les mises à jour et les pilotes propriétaires ou pas
Choix des partitions d'installation
Installation en machine virtuelle avec VirtualBox
Qu'est-ce qu'une machine virtuelle ?
La virtualisation consiste à faire fonctionner une machine virtuelle (VM) avec un système d'exploitation (OS) nommé invité (Guest) sur une machine réelle fonctionnant avec un système d'exploitation nommé hôte (host).
L'invité est sous la responsabilité de l'hôte avec lequel il peut partager certaines de ses ressources matérielles sans pour autant nuire à l'intégrité du système hôte.
Les OS invités et hôtes ne sont pas nécessairement de la même “famille”: Linux (invité) sur Windows (hôte) et inversement, ou versions différentes du même système d'exploitation.
Prérequis
Un PC relativement récent disposant d'au moins 4 Go de RAM offre une base suffisante pour envisager l'utilisation d'une machine virtuelle de manière suffisamment confortable. Si vous êtes sous Windows 10 ou ultérieur, il faudra plutôt considérer un minimum de 6 à 8 Go.
Nous allons détailler ici l'utilisation du logiciel VirtualBox qui permet de créer des machines virtuelles. Ce logiciel existe aussi bien sur Linux que sur Windows. Son interface est sensiblement la même sous l'un ou l'autre système.
Nous verrons comment créer une VM PrimTux, ce qui permettra de disposer de la distribution pour l'évaluer, l'utiliser occasionnellement, ou encore en disposer sous un environnement Windows sans devoir repartitionner le disque dur. La procédure est assez simple, VirtualBox proposant le plus souvent des paramètres par défaut qui n'auront pas besoin d'être modifiés.
Nous devons préalablement disposer d'une image .iso de PrimTux que nous téléchargeons depuis la page de téléchargement du site. Nous vous recommandons de choisir une version adaptée aux capacités matérielles du PC hôte qui accueillera la machine virtuelle, en vous laissant une grande marge de sécurité puisque nous aurons une machine virtuelle devant fonctionner au sein d'un système qui utilise déjà lui-même de nombreuses ressources.
Installation de Virtualbox
Page du site officiel de Virtualbox pour le téléchargement : https://www.virtualbox.org
Nous devons choisir la version correspondant à notre système d'exploitation, Windows ou Linux. Dans le cas d'un OS Linux, il faut également sélectionner le paquetage correspondant à notre distribution et à l'architecture de notre processeur: i386 pour un PC 32 bits, amd64 pour un PC 64 bits.
Sous Windows le fichier est de la forme VirtualBox-xxxx-Win.exe sur lequel il suffit de double-cliquer pour lancer l'installation.
Sous Linux l'installation dépend de notre distribution. Sous Ubuntu et dérivées, Virtualbox est disponible dans les dépôts. Il est donc possible de l'installer en mode graphique depuis la logithèque ou Synaptic, ou en ligne de commande par
sudo apt install virtualbox
Si Virtualbox n'est pas présent dans les dépôts de notre Linux, ou si nous souhaitons disposer de la version la plus récente du logiciel, nous téléchargeons le paquet correspondant à notre système depuis le lien donné en début de paragraphe.
Avec le gestionnaire de fichiers nous nous rendons dans le répertoire de téléchargement. Nous y ouvrons un terminal dans lequel nous saisissons la commande d'installation.
Exemple pour les distributions de la famille Debian et dérivées :
sudo dpkg -i nom-fichier-téléchargé.deb
Si nous n'avons qu'un seul paquet .deb dont le nom commence par virtualbox, plutôt que saisir le nom complet, ce qui est fastidieux, nous pouvons saisir
sudo dpkg -i virtualbox*.deb
dpkg -i ne gère pas bien les dépendances. Pour éviter les erreurs d'installation liées à des dépendances non satisfaites, il est préférable d'utiliser Gdebi
sudo gdebi virtualbox*.deb
Si gdebi n'est pas installé (erreur de nom de commande introuvable), nous pouvons l'installer par
sudo apt install gdebi
NOTA : suivant la distribution, un double clic sur le nom du fichier pourra lancer Gdebi automatiquement.
Création de la machine virtuelle (méthode 1)
Au Premier démarrage de l'application VirtualBox nous obtenons une fenêtre de ce type :
Nous cliquons sur Nouvelle pour créer notre première machine virtuelle (VM) destinée à l'installation de PrimTux. Nous obtenons la fenêtre suivante :
Dans le premier champ, nous donnons un nom à notre machine virtuelle, par exemple… PrimTux !
Nous pouvons indiquer ici un nom de notre choix comportant accents et espaces si nous le désirons.
Le second champ, Folder, permet de choisir le répertoire dans lequel sera stockée la machine virtuelle. Le troisième, ISO image, permet de sélectionner l'image .iso du système à installer. Il permet l'ouverture une fenêtre de sélection de fichier. Nous sélectionnons l'image de PrimTux préalablement téléchargée. Virtualbox devrait automatiquement reconnaître le type d'architecture du système et compléter de lui-même les champs suivants.
Clic sur le bouton Suivant.
Pour la taille mémoire, VirtualBox propose une valeur optimale tenant compte du matériel. Pour PrimTux nous recommandons un minimum de 2 Go si on ne souhaite pas installer le contrôle parental. Dans le cas contraire un minimum de 3 Go est recommandé.
Clic sur le bouton Suivant.
Nous laissons cochée l'option Créer un disque dur virtuel maintenant et choisissons la taille à attribuer au disque dur. L'installateur de PrimTux requiert un disque de 30 Go minimum.
Clic sur Suivant.
La fenêtre affichée propose un résumé des options choisies. Si tout convient, il ne reste qu'à cliquer suer le bouton [Finish] pour lancer la création de la machine virtuelle.
En fin de processus, on retrouve la fenêtre principale de Virtualbox avec, à gauche, la liste des machines crées, et dans le volet de droite les options de configuration de la machine sélectionnée.
Nous aurons quelques modifications à effectuer dans la configuration du système, à laquelle on accède par l'option Configuration du menu, la roue crantée, ou bien en cliquant à droite sur l'un des paramètres écrits en gras.
Pour le réseau, nous recommandons l'option "Accès par pont". Choisissez alors le type d'interface que vous utiliserez (Ethernet ou WiFi).
Les valeurs par défauts proposées dans les autres sections n'ayant généralement pas besoin d'être modifiées, sauf pour des besoins spécifiques, la configuration de notre machine virtuelle est terminée. Il ne nous reste plus qu'à la démarrer en cliquant sur la flèche verte du menu principal.
Toute modification de la configuration ne peut se faire que machine éteinte.
Création de la machine virtuelle (méthode 2)
Si jamais vous rencontrez une erreur à la création de la machine, ne sélectionnez pas l'iso PrimTux à sa création, mais après avoir créé la machine.
Laisser le champ "ISO Image" à "<non sélectionné>", puis cliquer sur "Suivant"
2048 Go de RAM suffisent, mettez 4 Go si vous avez au moins 16 Go de RAM sur votre machine hôte.
L'installation de Primtux nécessite un disque dur de 30 Go minimum.
Pour sélectionner l'iso de PrimTux, allez dans la configuration de la machine nouvellement créée.
Onglet Stockage => Contrôleur : IDE => Choisir l'iso de PrimTux, puis cliquer sor OK.
Installation de PrimTux sous VirtualBox
Après avoir démarré notre machine virtuelle, nous obtenons le menu de démarrage de PrimTux :
La souris est automatiquement capturée par le système invité (ceci est paramétrable). Dans le cas contraire, pour que le système hôte la récupère, il faut maintenir par défaut la touche Ctrl droite du clavier enfoncée et cliquer avec la souris en dehors de la zone d'affichage de la VM.
Au sein de la machine virtuelle, tout se passe comme si nous étions sur une machine réelle. Aussi l'installation se fait comme sur une machine réelle, et nous pouvons nous référer au paragraphe Installation classique si nécessaire.
Installations complémentaires
Installer le pack d'extension
Oracle propose un pack d'extension permettant d'ajouter des fonctionnalités à VirtualBox, telles que :
- le support de l'USB 2.0 et 3.0 ;
- le boot réseau ;
- le support de Windows RDP permettant l'exécution d'applications à distance ;
- le chiffrement de disques ;
- …
Son installation est très simple, et se fait de la même façon sous Linux que sous Windows.
Sous Windows cette installation ne peut se faire que depuis une session disposant des droits administrateur.
Nous devons commencer par télécharger le pack d'extension correspondant à notre version de VirtualBox depuis cette page.
Dans la fenêtre qui s'affiche nous cliquons à gauche sur Extensions, puis sur l'icône avec le signe + (pour ajouter) en haut à droite :
Nous obtenons une boîte de dialogue de sélection de fichier dans laquelle nous allons chercher le fichier de pack d'extension que nous avons préalablement téléchargé, puis nous cliquons sur Ouvrir :
VirtualBox nous demande une confirmation que nous acceptons en cliquant sur Installation :
S'ensuit une demande d'accord de licence que nous ne pouvons accepter qu'après avoir fait défiler le texte jusqu'à la fin :
Un mot de passe administrateur ou une confirmation d'autorisation d'installation pourra nous être demandé. Si l'installation s'est correctement déroulée, le nom du pack devrait apparaître dans le volet de droite :
Installer les modules complémentaires
Les modules complémentaires ajoutent des fonctionnalités à la machine invitée, telles notamment :
- un affichage graphique plus rapide et automatiquement adapté à la résolution graphique du système hôte ;
- un presse-papier partagé entre la machine hôte et la machine invitée ;
- le partage de dossiers ;
- l'utilisation de pilotes dédiés optimisés ;
- …
Pour faire cette installation nous lançons notre machine virtuelle PrimTux et ouvrons la session Poe (session administrateur). Dans le menu de la fenêtre VirtualBox dans laquelle tourne PrimTux, nous cliquons sur Périphériques –> Insérer l'image CD des additions invité.
Une boîte de dialogue nous propose de télécharger l'image disque, ce que nous acceptons :
Nous attendons la fin du téléchargement :
Une fois le téléchargement terminé, une boîte de dialogue nous propose d'insérer l'image disque dans le lecteur CD/DVD. Nous cliquons donc sur [Insérer] :
Nous verrons ensuite une nouvelle icône s'afficher sur la gauche du bureau, sur laquelle nous double-cliquons pour ouvrir l'image disque dans le gestionnaire de fichiers :
Nous effectuons un clic droit sur un espace libre de la fenêtre des fichiers du gestionnaire de fichiers pour faire apparaître un menu contextuel dans lequel nous cliquons sur "Ouvrir un terminal ici" :
Dans le terminal qui s'affiche, nous saisissons la commande suivante (VBoxLinuxAdditions.run est un script exécutable au sein du dossier dans lequel nous nous trouvons), et nous appuyons sur Entrée. Le mot de passe administrateur nous est demandé :
sudo sh VBoxLinuxAdditions.run
Nous devons redémarrer la machine pour disposer des nouvelles fonctionnalités.
Accès aux dossiers partagés entre l'hôte sous Linux Mint et Primtux
Si l'on crée un dossier partagé entre son hôte sous Linux Mint (ou Ubuntu) et Primtux virtualisé, on n'aura pas le droit d'accès à partir de Primtux. Pour cela, il faudra saisir dans le terminal sous Primtux cette ligne de commande qui ajoute l'utilisateur "poe" au groupe "vboxsf" :
sudo usermod -a -G vboxsf poe
Installation en machine virtuelle avec Virt-Manager
AVERTISSEMENT : Virt-Manager ne fonctionne que sur des ordinateurs sous GNU/Linux !!!
Qu'est-ce qu'une machine virtuelle ?
La virtualisation consiste à faire fonctionner une machine virtuelle (VM) avec un système d'exploitation (OS) nommé invité (Guest) sur une machine réelle fonctionnant avec un système d'exploitation nommé hôte (host).
L'invité est sous la responsabilité de l'hôte avec lequel il peut partager certaines de ses ressources matérielles sans pour autant nuire à l'intégrité du système hôte.
Les OS invités et hôtes ne sont pas nécessairement de la même “famille”: on peut avoir Windows ou Android (invités) sur l'hôte sous Linux (hôte) ou des versions différentes du même système d'exploitation.
Spécificités de Virt-Manager
- Virt-Manager ne fonctionne que pour des ordinateurs sous GNU/Linux (Ubuntu / Linux Mint / Debian / Fedora / Gentoo / OpenBSD ...)
- Virt-Manager est moins gourmand en ressource que VirtualBox et semble mieux fonctionner pour Primtux8.
- Virt-Manager est une interface graphique facilitant l'utilisation des logiciels de virtualisation Qemu/KVM sur lesquels il repose.
- Virt-Manager permet de virtualiser des architectures différentes de processeurs comme des ARM qu'on trouve dans les Raspberry Pi.
Prérequis
Un PC sous GNU/Linux relativement récent disposant d'au moins 4 Go de RAM offre une base suffisante pour envisager l'utilisation d'une machine virtuelle de manière suffisamment confortable.
Nous verrons comment créer une VM PrimTux, ce qui permettra de disposer de la distribution pour l'évaluer, l'utiliser occasionnellement.
Nous devons préalablement disposer d'une image .iso de PrimTux que nous téléchargeons depuis la page de téléchargement du site. Nous vous recommandons de choisir une version adaptée aux capacités matérielles du PC hôte qui accueillera la machine virtuelle, en vous laissant une grande marge de sécurité puisque nous aurons une machine virtuelle devant fonctionner au sein d'un système qui utilise déjà lui-même de nombreuses ressources.
Installation de Virt-Manager
Page du site officiel de Virt-Manager : https://virt-manager.org/
On retrouve Virt-Manager dans la plupart des dépôts des distributions GNU/Linux. Du coup, il suffit d'installer le paquet avec la commande suivante pour les distributions dérivées de Debian comme Ubuntu ou Linux Mint :
sudo apt install virt-manager
Il faudra redémarrer son ordinateur afin que Virt-Manager soit fonctionnel (sinon on risque d'avoir des messages d'erreurs concernant "libvirt").
Le reste des explications s'appuieront sur une utilisation sous Linux Mint mais cela n'est pas très différents pour d'autres systèmes.
Création de la machine virtuelle
Au démarrage de l'application Virt-Manager, nous arrivons sur la gestionnaire de machines virtuelles. On clique sur la 1ère icône "Créer une nouvelle image virtuelle" :
Sur la fenêtre suivante, on coche "Média d'installation local", on choisit l'architecture "x86_64" et on clique sur le bouton "Forward" (suivant) :
Ensuite, on clique sur le bouton "Parcourir..." pour sélectionner l'image iso de Primtux à virtualiser. On décoche la case "Détecter automatiquement..." et on renseigne le système d'exploitation (pour Primtux8 on est basé sur Ubuntu 22.04 LTS). On termine en cliquant sur le bouton "Forward" :
Ensuite, on indique les ressources matérielles à allouer à la machine virtuelle en fonction de son matériel. Dans mon cas, j'ai attribué 8 Go de mémoire RAM et 4 CPU. Et on appuie sur le bouton "Forward" :
Dans la fenêtre suivante, on coche "Activer le stockage pour cette machine virtuelle" ainsi que "Sélectionner ou créer un stockage personnalisé". On clique alors sur le bouton "Gérer..." :
On arrive alors sur une fenêtre permettant d'indiquer l'endroit où sera stockée notre image virtuelle. On clique sur le bouton avec un + bleu en bas à gauche pour rajouter un espace de stockage (pool) :
On donne alors un nom à son espace de stockage (storage pool) comme ici "Primtux8". On clique sur le bouton "Parcourir" pour indiquer le dossier dans lequel sera stockée l'image (on choisit un dossier avec au moins 50 Go de libre) et on clique sur le bouton "Terminer" :
De retour sur la fenêtre précédente, on choisit l'espace de stockage créé ci-dessus et on clique sur l'autre bouton + bleu dans l'onglet "Détails" pour créer un nouveau volume :
On indique alors le nom du volume qu'on laisse dans le format initial "qcow2", et on fixe l'espace alloué (ici 40 Go) :
On revient sur la fenêtre précédente. On vérifie bien qu'on est sur le volume "Primtux8.qcow2" créé ci-dessus et on clique sur le bouton "Choose volume" :
On retrouve alors la fenêtre de l'étape 4 avec le chemin du stockage personnalisé complété et on clique sur le bouton "Forward" :
On arrive à la 5ème et dernière étape où l'on indique un nom pour l'installation (ici "Primtux8" encore). On ne modifie pas la connexion réseau (qui par défaut est réglée sur "Réseau virtuel 'default' : NAT") et on clique sur le bouton "Terminer" ce qui a pour effet de lancer la nouvelle machine virtuelle :
Lancement de la nouvelle machine virtuelle
On retrouve la page d'accueil de Primtux 8 et on choisit "Installer Primtux" :
On procède alors à l'installation classique de Primtux.
Réglages post-installation
- Adapter l'affichage à son écran (pas besoin d'installer d'outil contrairement à VirtualBox).
- Passer en mode plein écran. Pour revenir à l'affichage réduit, déplacer la souris en haut au milieu pour que Virt-Manager affiche une icone permettant de modifier l'affichage.
- Pour pouvoir "récupérer" la souris sur l'ordinateur hôte, utiliser le raccourci CTRL+ALT+L.
- Mettre à jour Primtux8 et installer les programmes complémentaires.
- Pour le partage du presse-papier entre l'hôte et l'invité, installer dans l'invité Primtux8 le paquet spice-vdagent avec la commande suivante et redémarrer l'invité :
sudo apt install spice-vdagent
- Pour partager un dossier : à compléter.
Déploiement avec Clonezilla
Qu'est-ce que Clonezilla ?
Clonezilla est un logiciel permettant de cloner des disques entiers ou des partitions. Il permet d'effectuer les opérations suivantes :
- cloner directement disque ou partition d'un périphérique sur un autre ;
- réaliser une image d'un disque ou d'une partition vers un fichier ;
- restaurer l'image d'un disque ou d'une partition sur un périphérique.
Clonezilla est proposé sous forme d'un image iso permettant de réaliser un live CD ou une clé USB de démarrage. Il fonctionne en mode semi-graphique. C'est son usage le plus fréquent.
Clonezilla peut également être installé au sein d'un système Linux existant.
Site officiel du projet : https://clonezilla.org/
Installation de Clonezilla sur une clé USB
- Il faut récupérer l'image iso de Clonezilla pour architecture Amd64 ici : https://clonezilla.org/downloads/download.php?branch=stable
- Copier cette iso sur sa clé USB de démarrage. Cette clé peut être sous Ventoy ou un autre système de démarrage (voir cette page : Créer une clé de démarrage pour Primtux).
Réaliser une image d'une PrimTux installée
Le but est d'utiliser une PrimTux installée sur un ordinateur comme modèle pouvant être cloné sur d'autres machines sans avoir à passer par la fastidieuse étape d'installation classique pour chacune d'elle. Outre le fait de gagner beaucoup de temps lorsque l'on a à installer PrimTux sur de nombreux PC, cela permet également de personnaliser une PrimTux selon des besoins particuliers avant d'en faire le déploiement.
Matériel nécessaire :
- 1 clé USB de démarrage sur laquelle est installé Clonezilla.
- 1 support pour sauvegarder l'image que l'on veut cloner : ça peut être une autre clé USB ou un disque dur externe mais avec une taille suffisante pour accueillir l'image (au moins 50 Go en général même si ça peut être plus petit).
- 1 ordinateur modèle avec la Primtux paramétrée pour l'environnement dans laquelle elle se trouve : code wifi, réseau, proxy, mots de passe, programmes supplémentaires, ...
Processus :
- Brancher la clé USB de démarrage avec Clonezilla sur l'ordinateur éteint contenant la Primtux que l'on veut cloner.
- Démarrer l'ordinateur en appuyant pendant les premières secondes sur la touche du clavier permettant de choisir le support de démarrage (souvent il s'agit de la touche F12 mais cela est variable selon les modèles).
- Dans le menu nous demandant de choisir sur quel support démarrer, choisir la clé USB contenant Clonezilla. On arrive sur une page nous demandant de choisir une résolution d'écran pour Clonezilla (on laisse celle par défaut) :
Remarques :
- Une fois l'option choisie, on peut valider directement en appuyant sur la touche ENTRÉE.
- Pour naviguer rapidement entre les options, on peut utiliser la touche de tabulation TAB. - On choisit le langage "Choose language -> French" et on valide :
- On change la disposition du clavier en français (ça facilitera les éventuelles saisies de texte) :
- Configuration Clavier -> On garde le choix par défaut : "PC générique 105 touches" :
- -Sur la page qui n'affiche que les configurations de clavier en anglais, on fait défiler tout en bas et on choisit "Autre" :
- On fait défiler la page et on choisit "Français" parmi la liste de tous les claviers :
- On choisit "Français - Occitan" qui se trouve juste au-dessus de "Autre" qui est sélectionné par défaut (c'est plus rapide et en plus c'est mon clavier de prédilection très pratique pour les majuscules accentuées) :
- On garde le choix par défaut -> "Disposition par défaut pour le clavier" :
- On garde le choix par défaut -> "Pas de touche "compose" :
- Sur la page "Démarrage de Clonezilla" on choisit "Start_Clonezilla Démarrage de Clonezilla" :
- On garde le choix par défaut -> "device-image disque/partition vers/depuis image" :
- On garde le choix par défaut -> "local_dev Monter un périphérique local (p.ex. : disque dur, clef USB)" :
- Un message apparaît alors au bas de l'écran demandant de brancher la clé USB :
On suit les instructions en branchant sa clé (ou son disque dur externe) USB en attendant 5 secondes puis on appuie sur la touche "ENTRÉE".
Une nouvelle fenêtre apparaît nous montrant les différents périphériques détectés par Clonezilla :
Si la clé USB n'apparaît pas, il faut attendre jusqu'à ce qu'elle soit détectée et apparaisse dans la liste :
Une fois la clé détectée (dans la capture ci-dessus, il s'agit de la clé /dev/sdb), on appuie sur les touches CTRL+C pour poursuivre. - Dans la fenêtre suivante "Clonezilla - Opensource Clone System (OCS) | Mode :", choisir le disque où l'on désire stocker l'image disque (dans notre cas la clé "sdb1") :
- On garde le choix par défaut -> "no-fsck" ce qui permet de gagner du temps (mais si on veut être prudent⋅e dans le cas où cette image sera déployée à très grande échelle, on choisira l'option "fsck") :
- Dans la fenêtre intitulée "Explorateur de répertoires pour le dépôt des images Clonezilla", choisir <ABORT> puis <Done> pour créer un nouveau dossier qui recevra l'image :
Remarque : dans la capture d'écran ci-dessus, on voit qu'on a déjà 2 répertoires d'images créées précédemment.
Au bas de la fenêtre, apparaît alors un récapitulatif et on appuie sur la touche ENTRÉE comme indiqué dans la consigne :
- On garde le choix par défaut -> "Beginner Mode débutant : Accepter les options par défaut" :
- On garde le choix par défaut -> " savedisk Sauvegarder_le_disque_local_dans_une_image" :
- On indique un nom pour l'image du disque que l'on va créer :
- Dans la fenêtre suivante on indique le périphérique (le disque dur contenant Primtux) que l'on veut cloner :
Remarque : dans l'exemple ci-dessus, il n'y a qu'un seul périphérique pouvant être cloné. Si ce n'est pas le cas., il faudra choisir le périphérique contenant Primtux. - On garde le choix par défaut -> "- z9p" pour la compression. La première option permet de gagner du temps à condition que l'ordinateur sur lequel on travaille le permette.
- On garde le choix par défaut -> "- sfsck Ne pas vérifier/réparer le système de fichiers source" :
- Dans la fenêtre "Paramètres avancés supplémentaires de Clonezilla", on choisit " - scs Non, ne pas vérifier l'image sauvegardée " (pour plus de sureté on peut choisir la première option mais ça prendra plus de temps) :
- On garde le choix par défaut -> "- senc Ne pas chiffrer l'image" :
- On finit en choisissant ce que Clonezilla doit faire à la fin : choix, reboot ou poweroff. On laisse le choix par défaut :
- En bas de la fenêtre apparaît un message récapitulatif en vert et on appuie sur la touche ENTRÉE :
- En bas du terminal, apparaît un nouveau message en jaune pour confirmer l'opération. On valide en appuyant sur la touche "y" + ENTRÉE :
- Des fenêtres avec des barres d'avancement comme celle-ci vont apparaître :
- À la fin, si tout s'est bien passé, on a des messages de réussite en jaune et on appuie sur la touche ENTRÉE :
- On arrive sur une dernière fenêtre nous demandant ce que l'on veut faire (choix effectué à l'étape 27) :
-
On peut éteindre l'ordinateur ou recommencer pour cloner l'image sur une autre clé USB par exemple.
Nous avons maintenant une image que l'on pourra installer sur les autres machines en suivant le processus du chapitre suivant.
Restaurer une image de PrimTux sur une machine
Il s'agit de l'opération précédente inverse et le processus est quasiment le même.
Cette fois-ci, on se place sur l'ordinateur sur lequel on veut déployer l'image Primtux que l'on vient de créer. Pour alléger la documentation, je reprends à l'étape 20 du chapitre précédent car jusque-là les manipulations sont exactement les mêmes :
- On choisit restoredisk Restaurer_une_image_vers_le_disque_local" :
- Ensuite on sélectionne le répertoire contenant l'image Primtux précédemment clonée et on clique sur "Done" :
- Dans la fenêtre suivante, on indique le périphérique sur lequel on veut installer Primtux :
Remarque : dans l'exemple ci-dessus, il n'y a qu'un seul périphérique pouvant être cloné. Si ce n'est pas le cas., il faudra choisir le périphérique sur lequel on veut installer Primtux. - On garde le choix par défaut -> "-k0 Utiliser la table de partitions de l'image" :
- On garde le choix par défaut -> "- scr Non, ne pas vérifier l'image avant la restauration " :
- On finit en choisissant ce que Clonezilla doit faire à la fin : choix, reboot ou poweroff. On laisse le choix par défaut :
- Ensuite tout se déroule quasiment comme pour la création de l'image : on valide par ENTRÉE ou on répond "y" aux 2 questions posées.
Lorsque le process est terminé, vous pourrez redémarrer ce nouvel ordinateur sous Primtux et finaliser son installation comme cela est indiqué en suivant.
Finalisation
Il sera nécessaire d'ajuster certains paramètres comme :
- le nom de la machine dans les fichiers /etc/hosts et /etc/hostname pour ne pas avoir tous les mêmes sur les différentes machines (c'est surtout important en fonctionnement en réseau pour pouvoir les distinguer entre elles).
- redimensionner la taille des partitions si la taille des disques ne sont pas identiques à celui ayant servi au clonage.
Installation sur un Chromebook
Les constructeurs d'ordinateurs portables alliés à Google proposent des modèles livrés d'origine avec le système d'exploitation Chrome OS s'appuyant entièrement sur les services et outils fournis par Google.
Même si ces portables sont verrouillés, il est cependant possible de remplacer le système d'exploitation d'origine par Primtux (ou Linux Mint ou une autre distribution GNU/Linux).
Présentation
Vous trouverez sur cette page, une méthode concernant le modèle Chromebook HP x360 12b-ca0005nf datant de 2020 mais elle doit être reproductible sur d'autres modèles de Chromebook avec des variantes selon leur âge et les constructeurs. Par exemple des "vieux" Chromebook de chez ACER nécessitent de dévisser une vis physique pour pouvoir modifier le firmware.
I- Passage du Chromebook en mode "Développeur" :
Tout comme les ordiphones sous Android (on voit bien la patte de Google) que l'on veut rooter ou mettre sous LineageOS, il est nécessaire de passer le Chromebook en mode développeur.
Pour cela, il faut presser les touches Échap + Rafraîchir (F3) puis appuyer pendant 1 seconde sur la touche de mise sous tension et relâcher les 3 touches.
Presser CTRL+D pour entrer en mode développeur et confirmer en appuyant sur la touche ENTRÉE.
Presser CTRL+D lorsqu'on arrive sur l'écran de démarrage du mode développeur.
ATTENTION : Il faudra toujours démarrer de cette façon et NE PAS APPUYER sur la touche ESPACE au risque de tout ré-effacer.
Au premier démarrage, le système efface toutes les données utilisateur, ce qui prend quelques minutes puis le système se ré-installe complètement.
II- Accéder au terminal et enlever la protection en écriture du firmware/BIOS :
Pour accéder au terminal, il faut presser en même temps les touches CTRL+ALT+T. Par contre, ce terminal ne permet pas d'utiliser la commande "sudo" contrairement au terminal VT-2 qui n'est accessible qu'en mode développeur.
Pour cela, il faudra appuyer sur les touches CTRL+ALT+F2 (flèche vers la droite). Pour revenir dans le terminal normal, on pressera les touches CTRL+ALT+F1 (flèche vers la gauche).
Le terminal VT-2 ne permet pas le copier-coller et je n'ai pas su modifier la disposition du clavier qui est QWERTY, ce qui ne va pas faciliter la tâche...
Dans le terminal VT-2, à l'invite "localhost login", on saisira "chronos" qui n'a pas de mot de passe.
Attention : si on a activé le mode déboggage au tout début de l'installation après être passé en mode développeur, pour se connecter, il faudra utiliser le login "root" et le mot de passe de déboggage. Avec l'utilisateur root, on pourra donner un mot de passe à l'utilisateur "chronos" avec la commande : chromeos-setdevpasswd
Utilisation du script du site https://mrchromebox.tech
La page https://mrchromebox.tech/#fwscript propose un script à télécharger permettant de modifier le firmware.
ATTENTION, il faudra bien suivre les instructions de mrchromebox même s'il y a une légère variante !!!
Pour télécharger le script (il faut donc une connexion Internet), il faut se connecter dans le terminal VT-2 avec le login "chronos" (PAS en tant que "root" !!!) et taper les commandes ci-dessous :
cd /home/chronos/user/Downloads
curl -LO mrchromebox.tech/firmware-util.sh
sudo bash firmware-util.sh
Le script se lance une 1ère fois et là, il faudra indiquer qu'on souhaite enlever la protection en écriture, ce qui fera redémarrer l'ordinateur.
Après le redémarrage, on se replace dans le terminal VT-2 et on relance le script firmware-util.sh qui se trouve dans le dossier /home/chronos/user/Downloads pour avoir un menu permettant d'agir sur le firmware. On peut le relancer directement avec cette commande : sudo bash /home/chronos/user/Downloads/firmware-util.sh.
On choisit l'option 1 "Install/Update RW_LEGACY Firmware" et si tout se passe bien on obtient un message vert indiquant la réussite puis on appuie sur ENTRÉE et on redémarre.
Sur l'écran de démarrage en mode développeur, on appuie sur les touches CTRL+L et là on pourra avoir accès au BIOS et au démarrage sur la clé USB comme sur n'importe quel ordinateur classique ! On appuie sur la touche Échap et on va dans "Boot Menu" pour démarrer sur la clé USB (fonctionne très bien avec un clé sous Ventoy). Linux Mint 21.3 Mate se lance en live sans problème apparent. OUF !!! On approche du but...
III- Installation complète de Primtux 8
Toujours à l'aide de l'utilitaire de mrchromebox.tech (il semblerait que l'utilitaire ne fonctionne que si on est connecté⋅e à Internet...), il est possible d'installer un système d'exploitation à la place de Chrome OS via le menu n°2 permettant d'installer l'UEFI.
Comme il s'agit d'une opération particulièrement risquée pour l'ordi (on supprime complètement Chrome OS), il faudra valider plein de mises en garde et à un moment l'utilitaire proposera même de se créer une clé USB de secours contenant la rom qui permettra de ré-installer ChromeOS en cas de problème, chose que je ne peux que recommander. J'ai sauvegardé sur une simple clé USB de données formatée en FAT32. Ce fichier de sauvegarde est à garder jusqu'à ce qu'on ait réussi l'installation de Primtux (ou une autre distribution) car une fois qu'on aura réussi, on pourra ré-installer d'autres distributions par la suite comme sur un ordinateur classique (hors de question de revenir sur Chrome OS).
Une fois la sauvegarde faite, l'utilitaire va télécharger et installer un nouveau firmware (coreboot). Si tout se passe bien on a un message vert, on appuie sur la touche ENTRÉE et on redémarre en tapant R (ou r).
Le premier démarrage est assez long et ensuite on a un bel écran de démarrage qui apparaît avec un lièvre blanc qui court sur un fond noir. On n'a qu'une fraction de seconde pour appuyer sur la touche Échap afin d'atteindre le Boot Menu pour démarrer sur la clé contenant Primtux8.
Ensuite on procède à l'installation classique de Primtux en supprimant toutes les anciennes partitions qui sont sur la mémoire eMMC (ce n'est pas un disque dur "classique").
Résultat :
Installation réussie !!! En plus avec Primtux8 (basée sur Linux Mint 21.3), tout fonctionne notamment le son, le wifi et le tactile !
Installation avec rEFInd
Certains constructeurs verrouillent certains de leurs ordinateurs récents (avec UEFI) de telle sorte qu'il est impossible d'installer une distribution GNU/Linux comme Primtux. Un des verrouillages consistent à empêcher l'installation de GRUB qui permet le démarrage de la distribution. C'est le cas de HP avec son Probook x360 11 G1 EE qui a été notamment fourni par la région Occitanie sous la dénomination loRdi à ses lycéens et lycéennes ou apprenti⋅es après la 3ème.
Remarque : vérifiez bien le modèle de loRdi car selon les années, il ne s'agissait pas du Probook x360 11 G1 EE. Les autres modèles ne sont pas verrouillés de la sorte.
Heureusement il existe une solution possible avec l'utilitaire rEFInd. Vous pourrez retrouver plus d'informations sur cette page https://doc.ubuntu-fr.org/refind.
A- Désactiver le secure boot dans le BIOS de loRdi
- Pour désactiver le Secure Boot, il faut appuyer au démarrage de l'ordinateur sur la touche Échap avec de petits appuis rapides et répétitifs afin d'arriver à accèder au menu général du BIOS. Si on a un message demandant de répondre Yes/No, on appuie un coup de plus sur la touche Échap pour avoir un menu graphique avec 6 grandes entrées.
Remarque : Il est fort probable qu'il faille s'y reprendre à plusieurs fois avant de réussir car la "fenêtre de tir" est très limitée. Si on rate, on peut appuyer sur la touche de mise sous tension pendant 5 secondes pour forcer l'extinction puis recommencer (gain de temps car on se fiche de ce que ça pourrait causer à Windows qui sera de toute façon supprimé 😉). - Ensuite on appuie sur la touche F10 (ou on clique dessus avec la souris ou en tactile) qui permet de régler le BIOS (Bios Setup).
- On va sur le menu de gauche "Advanced" -> Boot Options (en haut de la liste) -> SecureBoot -> et on choisit Disable (à la place de Enable).
- Ensuite on revient sur le menu de gauche "Main" -> "Save Changes and Exit" . On confirme en cliquant sur "Yes".
- Lorsque l'ordinateur redémarrage, comme la modification qu'on vient de faire touche un réglage sensible, on a un message qui demande de rentrer un code aléatoire (qui change tout le temps) à 4 chiffres + ENTER pour confirmer le changement effectué dans le BIOS. On tape ce code directement sur les touches numériques de la 2e rangée du haut du clavier (sans appuyer sur la touche Shift ou une autre) puis sur la touche ENTRÉE. Rien de s'affiche quand on tape mais si c'est bon, l'ordinateur redémarre.
B- Création de la clé USB bootable sous rEFInd
Comme une clé USB bootable basée sur GRUB ne pourra pas démarrer, on va utiliser une clé USB bootable basée sur le bootloader rEFInd. Une ancienne clé de 1 Go fera très bien l'affaire, pas besoin de plus car elle ne contiendra que rEFInd.
ATTENTION lorsqu'on utilise la commande "dd", si vous vous trompez de destination, vous pouvez perdre toutes vos données !!! À utiliser avec une EXTRÊME PRUDENCE !!!
Dans mon cas la clé usb bootable se trouve en /dev/sdc (et non pas /dev/sdb comme ça devrait être assez souvent le cas, auquel cas, il faudra remplacer "sdc" par "sdb" dans les commandes ci-dessous). Voici donc les différentes commandes adaptées à ce cas, à taper dans un terminal (ordinateur sous Linux Mint 21.3) :
- Pour effacer complètement la clé usb :sudo dd if=/dev/zero of=/dev/sdc count=500MB bs=1 status=progress && sync
C'est une opération qui prend pas mal de temps surtout si la clé a une grosse capacité et/ou est faible en vitesse d'écriture, il faudra donc être patient⋅e. Par exemple, pour une vieille clé de 2 Go Flash Voyager GT, il a fallu 20 minutes.
- Création de la table de partition :sudo parted /dev/sdc mklabel gpt
- Créer une partition fat32 d'au moins 510MB :sudo parted /dev/sdc mkpart primary fat32 1 551
- Attribuer le flag "boot" à la partition fat32 :sudo parted /dev/sdc set 1 boot on
- Nommer la partition ESP :sudo parted /dev/sdc name 1 ESP
- Formater la partition ESP en fat32 :sudo mkfs.fat -F32 /dev/sdc1
- Vérifier la clé :sudo parted /dev/sdc print
Si tout s'est bien passé, vous devriez avoir ces lignes (ou quelque chose de similaire) dans le terminal :
Modèle : Corsair VoyagerGT (scsi)
Disque /dev/sdc : 2047MB
Taille des secteurs (logiques/physiques) : 512B/512B
Table de partitions : gpt
Drapeaux de disque :Numéro Début Fin Taille Système de fichiers Nom Drapeaux
1 1049kB 551MB 549MB fat32 ESP démarrage, esp
C- Installation de rEFInd sur la clé usb
- On installe le paquet rEFInd avec la commande :
sudo apt install refindATTENTION !!! Lors du dépaquetage, il faut REFUSER l'installation de rEFInd sur son ordinateur !!! - On installe rEFInd sur sa clé USB (dans mon cas, elle est en sdc1) avec la commande :
sudo refind-install --usedefault /dev/sdc1 --alldrivers
Si tout s'est bien passé, on doit obtenir un message de ce style :
ShimSource is none
Installing rEFInd on Linux....
Note: IA32 (x86) binary not installed!
Copied rEFInd binary files
Copying sample configuration file as refind.conf; edit this file to configure
rEFInd.
La clé est prête !!!
D- Installation de rEFInd sur loRdi
- On branche la clé USB et on démarre loRdi en choisissant la clé USB (appuis répétitifs sur la touche F9 au démarrage).
- Dans le menu "EFI Boot Device", on doit voir la clé USB dans "USB Device" et on clique dessus.
- Une fenêtre "rEFInd" apparaît. On peut naviguer sur les différentes parties à l'aide des touches fléchées et on valide le choix en appuyant sur la touche ENTRÉE.
Remarque : Attention, le temps est limité : pour ne pas être "pressé⋅e", il suffit d'appuyer sur une touche fléchée pour arrêter le compte-à-rebours initial de 20 secondes. - Là, on voit qu'il est possible d'installer rEFInd dans l'EFI existant de Windows (1ère icone avec une flèche bleue dans un carré bleu "Install rEFInd to disk") et on le fait.
- On nous demande de choisir une partition pour installer rEFInd mais comme il n'y en a qu'une, on appuie sur la touche ENTRÉE.
- Puis on appuie à nouveau sur ENTRÉE pour revenir au menu principal de rEFInd.
- On sélectionne la croix rouge et on valide pour sortir de rEFInd.
- rEFInd réapparaît pendant 20 secondes avant de démarrer automatiquement sur Windows.
- On peut éteindre l'ordinateur.
Désormais, lorsqu'on démarrera l'ordinateur on tombera sur le le menu rEFInd et les clés USB d'installation habituelles seront reconnues (Ventoy et Easy2Boot).
E- Installation de Primtux sur loRdi
- On branche la clé USB d'installation de Primtux et on allume loRdi.
- Le menu rEFInd apparaît et on choisit la partition où se trouve Ventoy : on voit 2 pingouins et on choisit le premier où est indiqué "Boot EFI/BOOT/grubx64_real.efi from VTOYEFI".
- Là, dans la fenêtre Ventoy, on choisit l'image Primtux (ou d'une distribution autre) voulue.
- Dans la nouvelle fenêtre, on choisit "Boot in normal mode".
- On arrive sur le menu permettant de tester Primtux en Live ou de l'installer. On choisit de l'installer.
- Lors de l'installation, j'ai choisi de complètement supprimer les anciennes partitions (notamment EFI de Windows ce qui va poser quelques petits problèmes par la suite... mais vite surmontés).
- L'installation se termine par un message d'erreur fatale "Impossible d'installer GRUB dans /dev/sda" mais c'est "normal"... On clique sur "Valider".
- On redémarre l'ordinateur et là on arrive sur une belle page noire avec l'invite "grub>". Qu'à cela ne tienne, on recommence l'opération permettant d'installer rEFInd sur le disque dur (voir partie précédente "D- Installation de rEFInd sur loRdi") et une fois la réinstallation de rEFInd faite, on redémarre à partir du menu (double flèches jaunes).
- Maintenant on retrouveau démarrage le menu rEFInd et on ne choisit pas la première partition Linux avec le sigle d'Ubuntu (qui s'appuie sur GRUB) mais celle avec le pingouin GNU/Linux avec un disque dur en bas à droite.
- Primtux se lance et on ce connecte en tant que prof (pieuvre Poe) avec le mot de passe "tuxprof".
- Pour éviter des conflits ultérieurs lors de la mise à jour du noyau/kernel, il est nécessaire de désinstaller complètement Grub. Pour cela, une fois qu'on a démarré Primtux en tant que prof (attention le pavé numérique est activé par défaut et on le désactive en appuyant sur les touches Fn + Ver Num), dans un terminal, taper cette commande :
sudo apt-get -y remove grub2-common grub-common grub-pc grub-pc-bin - Quand une fenêtre surgissante affiche un avertissement concernant la suppression de Grub, on confirme en appuyant sur "Oui".
- Maintenant au démarrage, rEFInd affichera pendant 20 secondes une fenêtre de démarrage. Le choix par défaut sera le système choisi lors du démarrage précédent. Primtux correspond au pingouin GNU/Linux.
- Diminution du délai de connexion automatique de 20 à 5 secondes en éditant le fichier /boot/efi/EFI/refind/refind.conf et en modifiant la ligne timeout en mettant "timeout 5" à la place de "timeout 20". Pour éditer ce fichier, taper la commande (je ne sais pour quelle raison mais la complétion automatique ne marche pas comme si ce fichier n'existait pas) :
sudo nano /boot/efi/EFI/refind/refind.conf
Attention : Lors d'une mise à jour du kernel/noyau dans Primtux (pas fréquent mais ça arrive), le choix par defaut de rEFInd est perdu. Il faudra alors à nouveau choisir le pingouin au redémarrage.
Partenaires contribuant à l'installation et au déploiement de PrimTux
Association Oisux dans l'Oise : https://www.oisux.org
Association RÉSO en Ille et Vilaine : https://reso-informatique.fr
Association Goupil dans le Finistère nord : https://www.goupil-ere.org
Association CLX (Club LinuX) dans le Nord-Pas de Calais : https://clx.asso.fr/spip/
Réseau OGO (Ordi Grand Ouest) en Bretagne : https://www.ogo.bzh
En consultant la carte des utilisateurs de PrimTux, vous pourrez localiser des personnes ou des structures en mesure de vous apporter leur aide.
En cas de problèmes...
Impossible de mettre à jour après l'installation de Primtux7
Après avoir installé Primtux7, en particulier sur des Raspberry Pi 4 pour lesquels la dernière image produite de Primtux est cette version-là , on s'aperçoit qu'il n'est pas possible de procéder à une mise à jour. En effet, le dépôt contenant les paquets a changé depuis la réalisation de l'image à installer.
Il faut donc corriger cela en tapant la commande suivante dans un terminal :
sudo sed -i "1cdeb https://mirrors.o2switch.fr/primtux/repo/debs PrimTux7-amd64 main" /etc/apt/sources.list.d/primtux7.list
Une fois ce changement effectué, on procède à la mise à jour avec les commandes suivantes :
sudo apt update
sudo apt upgrade
Déploiement avec FOG sous Virt-Manager
AVERTISSEMENT : Virt-Manager ne fonctionne que sur des ordinateurs sous GNU/Linux !!!
Il existe une page décrivant l'utilisation de FOG avec VirtualBox ici : Déploiement avec FOG sous VirtualBox.
Principe de fonctionnement et intérêts de FOG
Si l'on veut déployer Primtux sur plusieurs ordinateurs de même modèle (cas typique dans une école possédant généralement plusieurs exemplaires d'une même série), il peut être intéressant de le faire à l'aide d'un serveur FOG. On a tout intérêt à installer ce serveur sur un ordinateur portable afin de pouvoir le déplacer facilement sur site.
Site officiel : https://fogproject.org/
Documentation en cours de construction : https://docs.fogproject.org/en/latest/
La solution FOG permet via un réseau Intranet à la fois de récupérer une image d'une machine "modèle" et ensuite de la déployer sur plusieurs machines en même temps, ce qui représente un gros gain de temps par rapport à une installation via clé USB avec CloneZilla.
Matériel
- Un ordinateur avec le serveur FOG installé dessus.
- Un swith Gigabit d'au moins 5 ports RJ45 qui permettra le déploiement de 4 machines en même temps.
- 5 câbles Ethernet pour relier les ordinateurs ainsi que le serveur FOG au switch.
Préparation de la machine virtuelle sous Debian 13
Il n'est pas nécessaire de réserver un ordinateur à cette seule tâche, ce qui serait quand même dommage car on ne déploie pas tous les jours non plus ;-). Ceci est rendu possible grâce à la virtualisation. Pour la virtualisation, on utilise ici Virt-Manager (VMM) qui fonctionne mieux et est plus léger que VirtualBox.
Pour une utilisation confortable, il vaudra mieux disposer d'un ordinateur assez récent avec 4 Go de Ram au minimum.
Sur cette page, nous décrirons l'installation d'un serveur FOG sur un ordinateur tournant déjà sous une distribution GNU/Linux, ici en l’occurrence une Linux Mint 22.3 (qui repose elle-même sur Ubuntu 24.04).
Remarque : On peut reprendre les indications ci-dessous pour installer FOG directement sur une Debian 13 sans avoir à virtualiser.
A- Installation de Virt-Manager
Page du site officiel de Virt-Manager : https://virt-manager.org/
On retrouve Virt-Manager dans la plupart des dépôts des distributions GNU/Linux. Du coup, il suffit d'installer le paquet avec la commande suivante pour les distributions dérivées de Debian comme Ubuntu ou Linux Mint :
sudo apt install virt-manager
Il faudra redémarrer son ordinateur afin que Virt-Manager soit fonctionnel (sinon on risque d'avoir des messages d'erreurs concernant "libvirt").
Le reste des explications s'appuieront sur une utilisation sous Linux Mint mais cela n'est pas très différents pour d'autres systèmes.
B- Virtualisation de Debian 13
On récupère l'image iso du système d'exploitation Debian 13.3 (netinstall) sur le site https://www.debian.org/index.fr.html. Puis on crée une machine virtuelle dans Virt-Manager en installant Debian à partir de l'image récupérée précédemment (voir ce tutoriel explicitant comment créer une image virtuelle et les réglages utiles). Lors de lancement de l'iso, choisir "Install" simple, garder les cases cochées par défaut et cocher les cases pour installer un Web serveur (Apache) et éventuellement l'accès SSH si utile.
C- Création d'un connexion réseau de type bridge avec nmcli
Précaution : il est fortement recommandé de créer un instantané de son système avec TimeShift afin de pouvoir revenir à un état antérieur avant les manipulations ci-dessous...
La connexion réseau entre la machine hôte (host) sous Linux Mint 22.3 et la machine invitée (guest) sous Debian 13 doit être de type "Bridge" (pont) et non pas NAT qui est le réglage par défaut !!! Le mode bridge permet aux autres machines sur le réseau de pouvoir récupérer à travers le pc hôte, le serveur FOG de la machine virtuelle : le serveur FOG sera visible directement dans le LAN.
Schéma :
PC physique bootant en PXE --- Switch ---> PC hôte sous Linux Mint 22.3 --- Bridge br0 ---> PC invité sous Debian 13 avec Serveur FOG (DHCP / TFTP / HTTP)
Pour cela, on va utiliser la ligne de commande de Network-Manager, nmcli qui permet une configuration fine.
- On va chercher le nom de notre carte réseau Ethernet sur la machine hôte avec la commande :
Sur ma machine, je trouve la carte "enp1s0".ip a - Il faut ensuite créer une connexion de type bridge dans la machine hôte avec les commandes :
nmcli connection add type bridge ifname br0 con-name br0 - On va ensuite l'IP fixer de br0 en 192.168.1.2/24 avec la commande suivante :
Cette commande correspond aux réglages que l'on ferait via l'outil "Configuration Réseau Avancée" :nmcli connection modify br0 ipv4.method manual ipv4.addresses 192.168.1.2/24 ipv4.gateway 192.168.1.1 ipv4.dns 1.1.1.1 - Il ne faut pas que l'interface enp1s0 ait d'IP avec cette commande :
nmcli connection modify bridge-slave-enp1s0 ipv4.method disabled - Ensuite, il faut associer la carte réseau physique enp1s0 au bridge avec la commande :
nmcli connection add type ethernet ifname enp1s0 master br0 - On active la connexion br0 avec la commande :
nmcli connection up br0 - Avec le câble Ethernet branché sur l'ordinateur hôte, on vérifie si le bridge br0 a bien une adresse IP du réseau LAN avec :
ouip a show br0
nmcli connection show br0
Info utiles :
La commande nmcli est très puissante avec beaucoup de fonctionnalités dont un prompt. Voir cette page pour plus d'info : https://debian-facile.org/doc:reseau:network-manager
- Pour supprimer l'interface réseau br0 (ou d'autres) créée (en cas d'erreur) :
sudo nmcli -f bridge con delete br0
D- Paramétrage de la connexion réseau de la machine virtuelle
Il faut modifier le type de connexion réseau de la machine virtuelle. Pour cela, dans Virt-Manager, on sélectionne sa machine virtuelle et on va dans le menu "Édition" ① puis "Détails de la machine virtuelle" ② :
Dans la fenêtre de la machine virtuelle, on clique sur l'icône d'information bleue "i" ①, puis sur la carte réseau (NIC) ② et là comme source du réseau, on choisit "Bridge device..." ③ (à la place du NAT de départ) et en "Device name", on saisit "br0" ④. On n'oublie pas de valider en appuyant sur le bouton "Apply" ⑤ :
On peut maintenant lancer la machine virtuelle et installer le serveur FOG.
Installation de DHCP dans la machine virtuelle sous Debian 13
Remarque : Lorsqu'on installe FOG, normalement le serveur DHCP s'installe également. Mais comme j'ai eu des souci avec ce serveur, j'ai préféré reprendre une installation de zéro. Ça permet également de mieux comprendre les réglages à effectuer.
Comme nous utiliserons FOG sans connexion Internet et sans routeur, il faut que son serveur face office également de serveur DHCP pour pouvoir attribuer des adresses IP aux autres machines du réseau.
Pour cela, il faut taper la commande :
sudo apt install isc-dhcp-server
Ensuite, il faut éditer le fichier de configuration avec la commande :
sudo nano /etc/default/isc-dhcp-server
Et renseigner l'interface réseau du bridge (enp1s0 dans mon cas) à la ligne :
INTERFACESv4="enp1s0"
Ensuite on édite le fichier de configuration avec la commande suivante :
sudo nano /etc/dhcp/dhcpd.conf
Et on colle la configuration suivante :
# DHCP minimal pour FOG PXE BIOS + UEFI
default-lease-time 600;
max-lease-time 7200;
authoritative;
# Détection architecture client
option arch code 93 = unsigned integer 16;
subnet 192.168.1.0 netmask 255.255.255.0 {
# Plage IP distribuée aux clients PXE
range 192.168.1.50 192.168.1.200;
# Passerelle
option routers 192.168.1.100;
# Masque réseau
option subnet-mask 255.255.255.0;
# DNS (paramètre obligatoire même si inutile pour le PXE)
option domain-name-servers 1.1.1.1;
# Serveur TFTP / PXE = FOG VM
next-server 192.168.1.100;
# Fichier de boot PXE
if option arch = 00:07 {
filename "ipxe.efi"; # UEFI 64 bits
} else {
filename "undionly.kpxe"; # BIOS legacy
}
}
On teste si cette configuration est correcte avec la commande :
sudo dhcpd -t
Si c'est correct, on peut lancer le serveur DHCP avec les 2 commandes ci-dessous :
sudo systemctl enable isc-dhcp-server
sudo systemctl restart isc-dhcp-server
Problème potentiel de connexion Internet
Ce serveur DHCP pourrait rentrer en conflit avec un autre serveur DHCP sur le même réseau. Si c'était le cas, voici comment le désactiver temporairement ou de façon "permanente".
Pour le désactiver temporairement (jusqu'au prochain boot où il se réactivera), taper la commande :
sudo systemctl stop isc-dhcp-server
Pour le désactiver de façon permanente, taper la commande :
sudo systemctl disable isc-dhcp-server
Installation de FOG dans la machine virtuelle sous Debian 13
Remarque : pendant toute la préparation de la machine virtuelle, dans Virt-Manager, il faudra paramétrer le réseau en NAT afin d'avoir accès à Internet pour télécharger les programmes notamment. Par contre, il faudra modifier plusieurs fois dans la machine Debian, les paramètres réseaux.
Nous utiliserons FOG sans l'intégrer dans un réseau existant, en utilisation isolée pour faire les installations de Primtux. Pour cela, on peut aller voir cette page (non mise à jour) : https://wiki.fogproject.org/wiki/index.php/FOG_on_an_Isolated_Network.
Pour faciliter l'installation et permettre l'installation de FOG qui a besoin d'avoir accès à Internet pour récupérer des fichiers, il faut paramétrer 2 connexions Ethernet dans Debian. La première est celle déjà existante et qui permet d’accéder à Internet (on ne la modifie pas), c'est la "Connexion filaire1" (ou "Wired connection 1") qui fonctionnera avec la connexion réseau de type NAT dans Virt-Manager. Par contre, on va se créer une 2e connexion Ethernet spécifique pour l'utilisation de FOG, avec l'application "Connexion Réseau Avancée" que j'ai baptisée "Connexion FOG" :
On fixe les réglages suivantes dans l'onglet IPv4 en configuration manuelle avec une IP fixe :
adresse IP : 192.168.1.100 (ou une autre)
masque de sous-réseau : 255.255.255.0 (correspond à 24 en notation CDIR)
passerelle : 192.168.1.1
Remarque : il serait aussi possible de modifier l'adresse IP du serveur a posteriori, en suivant les indications ici : https://docs.fogproject.org/en/latest/kb/how-tos/change-fog-server-ip-address/
Dans notre machine virtuelle Debian, avec la connexion pour accéder à Internet, on va récupérer l'archive FOG dans Git comme cela est recommandé dans la documentation (https://docs.fogproject.org/en/latest/installation/server/install-fog-server/). Pour cela, on installe git avec les commandes suivantes :sudo -i
apt install git
Puis on récupère FOG avec les commandes (toujours en étant root via la commande "sudo -i") :cd /optgit clone https://github.com/FOGProject/fogproject.git
Ensuite on revient dans le terminal et on lance l'installeur avec : cd fogproject/bin
On change de connexion réseau en "Connexion FOG" :
et on revient dans le terminal pour taper la commande :
./installfog.sh
Voici les différentes options choisies lors de l'installation (les choix par défaut sont indiqués entre crochets [ ] et avec une majuscule) :
- Choise: [2] -> "2" ou valider directement
- What type of installation would you like to do? [N/s] -> "n" pour Normal ou valider directement
- Would you like to change the default network interface from enp0s1? [y/N] -> "n" ou valider directement (il nous faut l'adresse 192.168.1.100/24 correspondant à la connexion FOG)
- Would you like to setup a router address for the DHCP server? [Y/n] -> "y"
- What is the IP address to be used for the router on the DHCP server? [192.168.1.1]
- Would you like DHCP to handle DNS? [Y/n] -> "y"
- What DNS address should DHCP allow? [192.168.1.1]
- Would you like to use the FOG server for DHCP service? [y/N] -> "y"
- you like to install the additional language packs ? [y/N] -> "y" si on veut l'interface en français
- Would you like to enable secure HTTPS on your FOG server? [y/N] -> "n" ou valider directement
- Would you like to change it (hostname debian-FOG)? [y/N] -> "n" ou valider directement
- Are you ok with sending this information? [Y/n] -> "n" inutile car on ne sera pas connecté au réseau lorsqu'on utilisera FOG.
- On remodifie la connexion Ethernet pour avoir accès à Internet en se mettant sur "Connexion filaire1" (ou "Wired connection 1").
- Are you sure you wish to continue (Y/N) -> "y" si on n'a pas fait d'erreur sinon "n" pour annuler l'installation et relancer le process du début.
L'installateur se lance alors et va récupérer les fichiers nécessaires sur Internet. - Lorsqu'on arrive à la création de la database, il faut de nouveau modifier l'adresse IP "Connexion FOG" pour pouvoir accéder à la page : http://192.168.1.100/fog/management et créer la base de données.
- On laisse se finir l'installation.
- Une fois l'installation terminée, on pourra alors se connecter au serveur FOG à cette adresse http://192.168.1.100/fog/management avec les identifiants suivants :
Username: fog
Password: password (avec un clavier AZERTY fonctionnant en QWERTY, il faudra saisir pqsszord)
Remarque : il peut être utile de changer le mot de passe afin qu'on puisse le saisir quelque soit le type de clavier des machines clientes (souvent en QWERTY lorsqu'on démarre), à la façon de "tuxprof" qui fonctionne quel que soit le clavier. - On peut aller maintenant paramétrer le serveur FOG dans notre langue, en allant sur la configuration de FOG (icône en forme de clé à molette), puis dans l'onglet à gauche "FOG settings" ou "Paramètres de FOG" (accès direct : http://192.168.1.100/fog/management/index.php?node=about&sub=settings), puis dans la partie "General Settings", dans le champ KEYMAP, on saisit "fr" pour que les claviers des clients correspondent bien au clavier français, et dans le champ "DEFAULT LOCALE", on choisit "Français" pour avoir l'interface en français. Ne pas oublier de valider en cliquant sur le bouton "Update" au bas de la section.
On peut aussi en profiter pour aller dans la section "FOG Boot Settings" et allonger le temps de boot de FOG qui par défaut est de 3 secondes, ce qui est un peu juste. Ne pas oublier de valider en cliquant sur le bouton "Update" au bas de la section.
REMARQUE : Si on se trompe dans une étape et que l'on veut reprendre de zéro l'installation de FOG, le mieux est de le désinstaller complètement (sans supprimer le dossier git) et de relancer la commande ./installfog.sh. Plus d'info ici : https://wiki.fogproject.org/wiki/index.php/Uninstall_FOG
Utilisation de FOG
Source utile : https://forums.fogproject.org/topic/14906/configuring-a-standalone-fog-vm-under-ubuntu-20-04
A- Test de FOG
On va tester le serveur FOG pour voir s'il est fonctionnel. Il va falloir vérifier que nous sommes bien avec les réglages suivants :
- Sur la machine virtuelle sous Debian 13 avec le serveur FOG :
- connexion réseau filaire = "Connexion FOG",
- dans son navigateur Internet, se mettre sur la page "http://192.168.1.100/fog/management" pour vérifier que le serveur FOG est bien lancé.
- Sur l'ordinateur hôte sous Linux Mint :
- dans Virt-Manager, vérifier que la carte réseau NIC de la VM Debian 13 est en mode bridge avec br0 (pas en NAT),
- le câble Ethernet est bien branché sur le switch,
- il peut y avoir une connexion wifi active : pratique pour aller chercher des informations sur Internet, comme cette page ;-) . Attention toutefois à ne pas être sur le même segment de réseau en 192.168.1.xxx.
- Sur l'ordinateur de test (le client) :
- le câble Ethernet est bien branché sur le switch,
- booter en PXE
B- Récupération de l'image Primtux à déployer
FOG marche dans les 2 sens, c'est-à-dire qu'il peut déployer une image mais aussi "l'aspirer" (comme CloneZilla). On peut donc préparer un ordinateur sous Primtux avec une seule partition (de cette façon, il sera possible de déployer l'image sur un disque de capacité plus petite à condition que les données ne dépassent pas sa capacité) et ensuite récupérer son image qui servira de modèle (master). Pour Primtux 9, j'en profite pour y installer DWService et le gestionnaire de presse-papier CopyQ (plus complet que Clipman), ... (voir cette page : https://lofurol.fr/joomla/enseignement/391-primtux-installation-de-primtux-9).
Source : https://docs.fogproject.org/en/latest/kb/how-tos/capture-an-image/
- On démarre l'ordinateur servant de modèle Primtux en boot PXE (en général, touche F12 au démarrage) et quand le menu FOG apparaît on a le choix entre 2 options :
- soit on fait une "Quick registration and inventory" afin d'enregistrer directement cette machine dans FOG.
- soit on fait un enregistrement plus complet (qui permet notamment de donner un nom plus identifiable à la machine) via l'option "Perform Full Host Registration and Inventory".
- Une fois l'enregistrement fait, l'ordinateur redémarre sous Primtux et on l'éteint.
- Dans FOG, on va dans le menu "Images" (icône en forme d'image justement), et on crée une nouvelle image. On lui donne un nom comme Primtux9 et sans rien modifier d'autre, on l'enregistre. Remarque : on choisit une seule partition pour l'image car de cette façon, il sera possible de déployer l'image sur un disque de capacité plus petite à condition que les données ne dépassent pas sa capacité.
- Dans FOG, on revient sur la machine enregistrée auparavant (elle a pour nom son adresse MAC) et on la modifie en cliquant sur son nom. Dans le champ "Image machine" on lui associe l'image Primtux créée précédemment. On n'oublie pas de sauvegarder la modification.
- Toujours dans la modification de la machine, on clique en haut sur l'onglet "Tâches basiques" puis sur l'icône "Capture". On laisse les paramétrages par défaut et on crée la tâche en cliquant sur le bouton bleu "Tâche" -> Un message vert indique que la tâche a été créée avec succès. On peut vérifier l'existence de cette tâche en cliquant sur l'icône "Tâches" représentant un empilement horizontal de dossiers.
- On redémarre alors l'ordinateur modèle Primtux en boot PXE. Cette fois-ci, le menu FOG n'apparaîtra pas mais un terminal indiquant des opérations en cours avec une dernière fenêtre bleue à la Clonezilla avec 2 barres de progression rouges. Sur le serveur FOG, on voit la tâche s'effectuer avec petite roue en mouvement. Au bout d'un certain temps (d'où l'intérêt d'avoir un switch réseau 1 Gigabit), l'image est obtenue (autour de 25 Go).
REMARQUE : il est possible de déployer une image universelle indépendante du matériel sur lequel on veut l'installer. On appelle ce type d'image, une golden image. Piste à creuser : https://forums.fogproject.org/topic/7391/deploying-a-single-golden-image-to-different-hardware-with-fog
C- Déploiement de l'image Primtux
Source : https://docs.fogproject.org/en/latest/kb/how-tos/deploy-an-image/
Tout se fait uniquement à partir de l'ordinateur client (pas besoin d'agir sur le serveur FOG), ce qui est très rapide.
Sur les ordinateurs à installer :
- on démarre en boot PXE et on procède à leur "Perform Full Host Registration and Inventory" qui permet de leur assigner un nom (nom dans FOG mais qu'on peut aussi donner à la machine via un script, voir ci-dessous) et surtout une image ID (dans notre cas celle créée auparavant de Primtux et qui est la numéro 1).
- On laisse tous les autres champs vides (inutile de renseigner "Primary user" ou les "Tags").
- À la question "Deploy image now ?", choisir Y puis renseigner les mots de passe FOG (utilisateur = fog ; mot de passe =password).
- Lorsque l'ordinateur redémarre, il faut le faire en boot PXE (touche F12) et alors l'image Primtux s'installera automatiquement.
Scripts de post-installation
Il est possible de lancer des scripts de post-installation pour par exemple renommer les machines à partir de leur nom enregistré dans Fog, redimensionner une partition, ...
Ces scripts doivent être placés dans le répertoire du serveur FOG /images/postdownloadscripts et se lanceront une fois que l'image aura été déployée.
A- Script pour renommer la machine sous Primtux :
Pour cela, il faut modifier les fichiers /etc/hostname et /etc/hosts. On va pouvoir le faire en créant un script dans le dossier /images/postdownloadscripts. Voici les commandes à saisir dans le terminal du serveur FOG :cd /images/postdownloadscripts
Ensuite on crée et on édite un fichier "renommage.sh" avec la commande :sudo nano renommage.sh
Et on colle les lignes de code suivantes :
#!/bin/bash
## Script de post-installation "renommage.sh" pour FOG
## Permettant de renommer une machine après l'installation de Primtux
## créé par Thierry Munoz le 30/01/2024 et mis à jour le 18/03/2026 pour Primtux 9
##création d'un répertoire temporaire /partprimtux
mkdir /partprimtux
##montage temporaire de la partition système du Linux
## ATTENTION : il faut indiquer la partition sur laquelle est installé Primtux !!!
## ici il s'agit de la partition sda3 (sinon ça ne marchera pas)
mount /dev/sda3 /partprimtux
##changement du nom host de la machine définie dans l'interface web
echo $hostname > /partprimtux/etc/hostname
##changement du nom "primtux" dans /etc/hosts qui se trouve sur la 2e ligne
sed -i "s/primtux/$hostname/" /partprimtux/etc/hosts
##Démontage de la partition système
umount /partprimtux
##Suppression du répertoire temporaire
rmdir /partprimtux
On sauvegarde (CTRL + O) et on ferme le fichier (CTRL + X) puis on le rend exécutable avec la commande suivante :sudo chmod +x renommage.sh
Ensuite, on édite et modifie le fichier fog.postdownload qui indique à FOG quel(s) script(s) lancer après la copie de l'image Primtux sur le client :sudo nano fog.postdownload
Et on colle cette ligne en veillant bien à laisser un espace derrière le point en début de ligne :
. ${postdownpath}renommage.sh
On sauvegarde (CTRL + O) et on ferme (CTRL+X) l'éditeur Nano.
Maintenant le script modifiera automatiquement les fichiers /etc/hostname et /etc/hosts avec le nom de la machine.
B- Script pour redimensionner la partition Primtux :
Normalement cette partie est inutile car FOG redimensionne automatiquement les partitions. Pour cela il faut choisir l'option "Single Disk - Resizable" lors de la capture.
PARTIE CI-DESSOUS INUTILE MAIS LAISSÉE POUR GARDER UNE TRACE
Le redimensionnement automatique de la partition finale ne fonctionne que pour Windows (en fait FOG a été développé initialement pour Windows) et du coup après avoir copié l'image Primtux, la totalité de la partition du disque dur n'est pas utilisée. On peut la modifier avec GParted mais l'idéal serait de l'agrandir automatiquement avec un script de post-installation.
Autre piste : dans le dossier /images/nom_image, il y a pour les images "resizables", des fichiers d1.minimum.partitions, d1.fixed_size_partitions et d1.partitions.
Voici un script à tester (pour des disques HDD, disques SSD "non sda" ?) :
#!/bin/bash#
#############################################################
# Script de redimensionnement de partition PrimTux pour FOG #
# philippe.dpt35@yahoo.fr #
# La parition de PrimTux doit être la dernière partition #
# du disque ; elle peut être dans une partition étendue #
# La variable periphdisk est à modifier si le disque #
# cible n'est pas sur /dev/sda #
#############################################################
periphdisk="sda"
# Récupère le N° de la partition étendue du disque s'il y en une
extendpart=$(LC_ALL=C fdisk -l | awk -v disk="/dev/$periphdisk" '$0 ~ disk && /Extended/ {sub("/dev/sd[a-z]","");sub("\n"," ");print $1}')
# Récupère le N° de la dernière partition du disque
lastpart=$(lsblk -o "name" -n | awk -v disk=$periphdisk '/└─/ && $0 ~ disk {sub("└─sd[a-z]","");print $1}')
if [ -n "$extendpart" ]; then
parted "/dev/$periphdisk" -- resizepart $extendpart 100%
fi
if [ -n "$lastpart" ]; then
parted "/dev/$periphdisk" -- resizepart $lastpart 100%
devpart=$(echo "/dev/$periphdisk$lastpart")
sleep 1
resize2fs "$devpart"
fi
exit 0
parted /dev/sda resizepart 2 100%
resize2fs /dev/sda5
Ressources utiles pour les scripts
- Pour vérifier les scripts shell : https://www.shellcheck.net/
- https://forums.fogproject.org/topic/7740/the-magical-mystical-fog-post-download-script
- https://forums.fogproject.org/topic/4510/scripts-customization-of-ubuntu-fog-service-for-ubuntu
Sources utiles
- Site avec un autre tuto détaillé : https://chrtophe.developpez.com/tutoriels/deploiement-fogproject/
- Page dont est issue cette documentation : https://lofurol.fr/joomla/logiciels-libres/339-installation-dun-serveur-fog-dans-virtualbox
- Pour mettre à jour FOG : https://forums.fogproject.org/post/151675
Déploiement avec FOG sous VirtualBox
Il existe une page décrivant l'utilisation de FOG avec Virt-Manager (méthode recommandée) ici : Déploiement avec FOG sous Virt-Manager.
Principe de fonctionnement et intérêts de FOG
Si l'on veut déployer Primtux sur plusieurs ordinateurs de même modèle (cas typique dans une école possédant généralement plusieurs exemplaires d'une même série), il peut être intéressant de le faire à l'aide d'un serveur FOG. On a tout intérêt à installer ce serveur sur un ordinateur portable afin de pouvoir le déplacer facilement sur site.
La solution FOG permet via un réseau Intranet à la fois de récupérer une image d'une machine "modèle" et ensuite de la déployer sur plusieurs machines en même temps, ce qui représente un gros gain de temps par rapport à une installation via clé USB avec CloneZilla.
Matériel
- Un ordinateur avec le serveur FOG installé dessus.
- Un swith Gigabit d'au moins 5 ports RJ45 qui permettra le déploiement de 4 machines en même temps.
- 5 câbles Ethernet pour relier les ordinateurs ainsi que le serveur FOG au switch.
Préparation du serveur FOG
Il n'est pas nécessaire de réserver un ordinateur à cette seule tâche, ce qui serait quand même dommage car on ne déploie pas tous les jours non plus ;-). Ceci est rendu possible grâce à la virtualisation. Pour la virtualisation, on utilise ici Virtualbox mais on pourrait tout aussi bien utiliser Virt-Manager (VMM) qui fonctionne mieux sous GNU/Linux (tutoriel à envisager).
Pour une utilisation confortable, il vaudra mieux disposer d'un ordinateur assez récent avec 4 Go de Ram au minimum.
Sur cette page, nous décrirons l'installation d'un serveur FOG sur un ordinateur tournant déjà sous une distribution GNU/Linux, ici en l’occurrence une Linux Mint 21.3 (qui repose elle-même sur Ubuntu 22.04).
Remarque : On peut reprendre les indications ci-dessous pour installer FOG directement sur une Debian 12 sans avoir à virtualiser..
A- Installation de Virtualbox
Une fois Linux Mint installé, installation de VirtualBox qui servira à virtualiser FOG avec les commandes suivantes :sudo apt update && sudo apt install virtualbox
Remarque : Il est nécessaire de redémarrer pour que VirtualBox apparaisse dans la liste des applications.
B- Virtualisation de Debian 12
On récupère l'image iso du système d'exploitation Debian 12.4 (netinstall) sur le site https://www.debian.org/index.fr.html. Puis on crée une machine virtuelle dans VirtualBox en installant Debian à partir de l'image récupérée précédemment. Lors de l'installation, garder les cases cochées par défaut (ne pas changer de bureau sinon le CD guest ne pourra pas se lancer !) et cocher les cases pour installer un Web serveur (Apache) et éventuellement l'accès SSH si utile. Une fois Debian installé, finir en intégrant l'iso "Guest additions" (image CD des Additions invité) pour pouvoir bénéficier de fonctionnalités supplémentaires (meilleur affichage plein écran, presse-papier bidirectionnel, ...).
C- Installation de FOG dans Debian
Remarque : pendant toute la préparation de la machine virtuelle, dans VirtualBox, il faudra paramétrer le réseau en NAT afin d'avoir accès à Internet pour télécharger les programmes notamment. Par contre, il faudra modifier plusieurs fois dans la machine Debian, les paramètres réseaux.
Nous utiliserons FOG sans l'intégrer dans un réseau existant, en utilisation isolée pour faire les installations de Primtux. Pour cela, on peut aller voir cette page (non mise à jour) : https://wiki.fogproject.org/wiki/index.php/FOG_on_an_Isolated_Network.
Pour faciliter l'installation et permettre l'installation de FOG qui a besoin d'avoir accès à Internet pour récupérer des fichiers, il faut paramétrer 2 connexions Ethernet dans Debian. La première est celle déjà existante et qui permet d’accéder à Internet (on ne la modifie pas), c'est la "Connexion filaire1". Par contre, on va se créer une 2e connexion spécifique pour l'utilisation de FOG que j'ai baptisée "Connexion FOG".
Adresse IP de "Connexion FOG" : On va aller dans les réglages du réseau avancé de Debian et se créer une nouvelle connexion Ethernet en fixant les réglages suivantes dans l'onglet IPv4 en configuration manuelle avec une IP fixe :
adresse IP : 192.168.1.100 (ou une autre)
masque de sous-réseau : 255.255.255.0
passerelle : aucune
Remarque : il serait aussi possible de modifier l'adresse IP du serveur a posteriori, en suivant les indications ici : https://docs.fogproject.org/en/latest/kb/how-tos/change-fog-server-ip-address/
Dans notre machine virtuelle Debian, avec la connexion pour accéder à Internet, on va récupérer l'archive FOG dans Git comme cela est recommandé dans la documentation (https://docs.fogproject.org/en/latest/installation/server/install-fog-server/). Pour cela, on installe git avec les commandes suivantes :su
sudo -i
apt-get -y install git
Puis on récupère FOG avec les commandes (toujours en étant root via la commande "sudo -i") :sudo -i
cd /rootgit clone https://github.com/FOGProject/fogproject.git
Ensuite on revient dans le terminal et on lance l'installeur avec :sudo -i cd /root/fogproject/bin
On change de connexion réseau en "Connexion FOG" et on revient dans le terminal pour taper la commande : ./installfog.sh
Voici les différentes options choisies lors de l'installation (les choix par défaut sont indiqués entre crochets [ ] et avec une majuscule) :
- Choise: [2] -> "2" ou valider directement
- What type of installation would you like to do? [N/s] -> "n" pour Normal ou valider directement
- Would you like to change the default network interface from enp0s3? [y/N] -> "n" ou valider directement (il nous faut l'adresse 192.168.1.100/24 correspondant à la connexion FOG)
- Would you like to setup a router address for the DHCP server? [Y/n] -> "n"
- Would you like DHCP to handle DNS? [Y/n] -> "n"
- Would you like to use the FOG server for DHCP service? [y/N] -> "y"
- you like to install the additional language packs ? [y/N] -> "y" si on veut l'interface en français
- Would you like to enable secure HTTPS on your FOG server? [y/N] -> "n" ou valider directement
- Would you like to change it (hostname debian-FOG)? [y/N] -> "n" ou valider directement
- Are you ok with sending this information? [Y/n] -> "n" inutile car on ne sera pas connecté au réseau lorsqu'on utilisera FOG.
- On remodifie la connexion Ethernet pour avoir accès à Internet en se mettant sur "Connexion filaire1".
- Are you sure you wish to continue (Y/N) -> "y" si on n'a pas fait d'erreur sinon "n" pour annuler l'installation et relancer le process du début.
L'installateur se lance alors et va récupérer les fichiers nécessaires sur Internet. - Lorsqu'on arrive à la création de la database, il faut de nouveau modifier l'adresse IP "Connexion FOG" pour pouvoir accéder à la page : http://192.168.1.100/fog/management et créer la base de données.
- On laisse se finir l'installation.
- Une fois l'installation terminée, on pourra alors se connecter au serveur FOG à cette adresse http://192.168.1.100/fog/management avec les identifiants suivants :
Username: fog
Password: password - On peut aller maintenant paramétrer le serveur FOG dans notre langue, en allant sur la configuration de FOG (icône en forme de clé à molette), puis dans l'onglet à gauche "FOG settings" (accès direct : http://192.168.1.100/fog/management/index.php?node=about&sub=settings), puis dans la partie "General Settings", dans le champ KEYMAP, on saisit "fr" pour que les claviers des clients correspondent bien au clavier français, et dans le champ "DEFAULT LOCALE", on choisit "Français" pour avoir l'interface en français.
On peut aussi en profiter pour allonger le temps de boot de FOG qui par défaut est de 3 secondes, ce qui est un peu juste.
REMARQUE : Si on se trompe dans une étape et que l'on veut reprendre de zéro l'installation de FOG, le mieux est de le désinstaller complètement (sans supprimer le dossier git) et de relancer la commande ./installfog.sh. Plus d'info ici : https://wiki.fogproject.org/wiki/index.php/Uninstall_FOG
Utilisation de FOG
Attention pour la partie qui suit, il faudra avoir réglé auparavant le réseau VirtualBox différemment ! Il faut choisir comme "Mode d'accès réseau :", "Accès par pont" et dans les paramètres avancés, dans l'option "Mode Promiscuité :", choisir "Allow All" :
A- Test de FOG
On peut d'ores et déjà tester le serveur FOG en branchant en filaire sur le même réseau un ordinateur de test et le faire démarrer sur le réseau en PXE. Si on voit le menu FOG qui apparaît sur le client, cela signifie que le serveur est fonctionnel !
B- Récupération de l'image Primtux à déployer
FOG marche dans les 2 sens, c'est-à-dire qu'il peut déployer une image mais aussi "l'aspirer" (comme CloneZilla). On peut donc préparer un ordinateur sous Primtux avec une seule partition (de cette façon, il sera possible de déployer l'image sur un disque de capacité plus petite à condition que les données ne dépassent pas sa capacité) et ensuite récupérer son image qui servira de modèle (master). J'en profite pour y installer DWService, Clipman, BlocksCAD, ... (voir cette page : https://lofurol.fr/joomla/logiciels-libres/338-primtux-installation-de-primtux7).
Source : https://docs.fogproject.org/en/latest/kb/how-tos/capture-an-image/
- On démarre l'ordinateur servant de modèle Primtux8 en boot PXE (en général, touche F12 au démarrage) et quand le menu FOG apparaît on fait une "Quick registration and inventory" afin d'enregistrer cette machine dans FOG. Une fois l'enregistrement fait, l'ordinateur redémarre sous Primtux8 et on l'éteint.
- Dans FOG, on va dans le menu "Images" (icône en forme d'image justement), et on crée une nouvelle image. On lui donne un nom comme Primtux8 et sans rien modifier d'autre, on l'enregistre. Remarque : on choisit une seule partition pour l'image car de cette façon, il sera possible de déployer l'image sur un disque de capacité plus petite à condition que les données ne dépassent pas sa capacité.
- Dans FOG, on revient sur la machine enregistrée auparavant (elle a pour nom son adresse MAC) et on la modifie en cliquant sur son nom. Dans le champ "Image machine" on lui associe l'image Primtux8 créée précédemment. On n'oublie pas de sauvegarder la modification.
- Toujours dans la modification de la machine, on clique en haut sur l'onglet "Tâches basiques" puis sur l'icône "Capture". On laisse les paramétrages par défaut et on crée la tâche en cliquant sur le bouton bleu "Tâche" -> Un message vert indique que la tâche a été créée avec succès. On peut vérifier l'existence de cette tâche en cliquant sur l'icône "Tâches" représentant un empilement horizontal de dossiers.
- On redémarre alors l'ordinateur modèle Primtux8 en boot PXE. Cette fois-ci, le menu FOG n'apparaîtra pas mais un terminal indiquant des opérations en cours avec une dernière fenêtre bleue à la Clonezilla avec 2 barres de progression rouges. Sur le serveur FOG, on voit la tâche s'effectuer avec petite roue en mouvement. Au bout d'un certain temps (d'où l'intérêt d'avoir un switch réseau 1 Gigabit), l'image est obtenue (autour de 25 Go).
REMARQUE : il est possible de déployer une image universelle indépendante du matériel sur lequel on veut l'installer. On appelle ce type d'image, une golden image. Piste à creuser : https://forums.fogproject.org/topic/7391/deploying-a-single-golden-image-to-different-hardware-with-fog
C- Déploiement de l'image Primtux
Source : https://docs.fogproject.org/en/latest/kb/how-tos/deploy-an-image/
Tout se fait uniquement à partir de l'ordinateur client (pas besoin d'agir sur le serveur FOG), ce qui est très rapide.
Sur les ordinateurs à installer :
- on démarre en boot PXE et on procède à leur "Perform Full Host Registration and Inventory" qui permet de leur assigner un nom (nom dans FOG mais qu'on peut aussi donner à la machine via un script, voir ci-dessous) et surtout une image ID (dans notre cas celle créée auparavant de Primtux7 et qui est la numéro 1).
- On laisse tous les autres champs vides (inutile de renseigner "Primary user" ou les "Tags").
- À la question "Deploy image now ?", choisir Y puis renseigner les mots de passe FOG (utilisateur = fog ; mot de passe =password).
- Lorsque l'ordinateur redémarre, il faut le faire en boot PXE (touche F12) et alors l'image Primtux7 s'installera automatiquement.
Scripts de post-installation
Il est possible de lancer des scripts de post-installation pour par exemple renommer les machines à partir de leur nom enregistré dans Fog, redimensionner une partition, ...
Ces scripts doivent être placés dans le répertoire du serveur FOG /images/postdownloadscripts et se lanceront une fois que l'image aura été déployée.
A- Script pour renommer la machine sous Primtux :
Pour cela, il faut modifier les fichiers /etc/hostname et /etc/hosts. On va pouvoir le faire en créant un script dans le dossier /images/postdownloadscripts. Voici les commandes à saisir dans le terminal du serveur FOG :cd /images/postdownloadscripts
Ensuite on crée et on édite un fichier "renommage.sh" avec la commande :nano renommage.sh
Et on colle les lignes de code suivantes :
#!/bin/bash
## Script de post-installation "renommage.sh" pour FOG
## Permettant de renommer une machine après l'installation de Primtux
## créé par Thierry Munoz le 30/01/2024
##création d'un répertoire temporaire /partprimtux
mkdir /partprimtux
##montage temporaire de la partition système du Linux
## ATTENTION : il faut indiquer la partition sur laquelle est installé Printux !!!
## ici il s'agit de la partition sda5 (sinon ça ne marchera pas)
mount /dev/sda5 /partprimtux
##changement du nom host de la machine définie dans l'interface web
echo $hostname > /partprimtux/etc/hostname
##changement du nom "primtux" dans /etc/hosts qui se trouve sur la 2e ligne
sed -i "s/primtux/$hostname/" /partprimtux/etc/hosts
##Démontage de la partition système
umount /partprimtux
##Suppression du répertoire temporaire
rmdir /partprimtux
On sauvegarde (CTRL + O) et on ferme le fichier (CTRL + X) puis on le rend exécutable avec la commande suivante :chmod +x renommage.sh
Ensuite, on édite et modifie le fichier fog.postdownload qui indique à FOG quel(s) script(s) lancer après la copie de l'image Primtux sur le client :nano fog.postdownload
Et on colle cette ligne en veillant bien à laisser un espace derrière le point en début de ligne :
. ${postdownpath}renommage.sh
On sauvegarde (CTRL + O) et on ferme (CTRL+X) l'éditeur Nano.
Maintenant le script modifiera automatiquement les fichiers /etc/hostname et /etc/hosts avec le nom de la machine.
B- Script pour redimensionner la partition Primtux :
Le redimensionnement automatique de la partition finale ne fonctionne que pour Windows (en fait FOG a été développé initialement pour Windows) et du coup après avoir copié l'image Primtux, la totalité de la partition du disque dur n'est pas utilisée. On peut la modifier avec GParted mais l'idéal serait de l'agrandir automatiquement avec un script de post-installation.
Autre piste : dans le dossier /images/nom_image, il y a pour les images "resizables", des fichiers d1.minimum.partitions, d1.fixed_size_partitions et d1.partitions.
Voici un script à tester (pour des disques HDD, disques SSD "non sda" ?) :
#!/bin/bash#
#############################################################
# Script de redimensionnement de partition PrimTux pour FOG #
# philippe.dpt35@yahoo.fr #
# La parition de PrimTux doit être la dernière partition #
# du disque ; elle peut être dans une partition étendue #
# La variable periphdisk est à modifier si le disque #
# cible n'est pas sur /dev/sda #
#############################################################
periphdisk="sda"
# Récupère le N° de la partition étendue du disque s'il y en une
extendpart=$(LC_ALL=C fdisk -l | awk -v disk="/dev/$periphdisk" '$0 ~ disk && /Extended/ {sub("/dev/sd[a-z]","");sub("\n"," ");print $1}')
# Récupère le N° de la dernière partition du disque
lastpart=$(lsblk -o "name" -n | awk -v disk=$periphdisk '/└─/ && $0 ~ disk {sub("└─sd[a-z]","");print $1}')
if [ -n "$extendpart" ]; then
parted "/dev/$periphdisk" -- resizepart $extendpart 100%
fi
if [ -n "$lastpart" ]; then
parted "/dev/$periphdisk" -- resizepart $lastpart 100%
devpart=$(echo "/dev/$periphdisk$lastpart")
sleep 1
resize2fs "$devpart"
fi
exit 0
parted /dev/sda resizepart 2 100%
resize2fs /dev/sda5
Ressources utiles pour les scripts
- Pour vérifier les scripts shell : https://www.shellcheck.net/
- https://forums.fogproject.org/topic/7740/the-magical-mystical-fog-post-download-script
- https://forums.fogproject.org/topic/4510/scripts-customization-of-ubuntu-fog-service-for-ubuntu
Ressources
- Page principale du projet FOG : https://fogproject.org/
- Site avec un autre tuto détaillé : https://chrtophe.developpez.com/tutoriels/deploiement-fogproject/
- Page dont est issue cette documentation : https://lofurol.fr/joomla/logiciels-libres/339-installation-dun-serveur-fog-dans-virtualbox
- Pour mettre à jour FOG : https://forums.fogproject.org/post/151675