Skip to main content

Déploiement avec FOG 1.6 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.

I- 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.

II- Matériel

  • Un ordinateur avec le serveur FOG installé dessus. La dernière version est la 1.6 (elle remplace la version 1.5).
  • 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.


III- Installation de la machine virtuelle sous Linux Mint 22.3

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). L'avantage d'avoir la même distribution sur la machine hôte et la machine invitée, c'est que l'on n'a pas à se familiariser avec une autre interface.

Remarque : On peut reprendre les indications ci-dessous pour installer FOG directement sur une Linux Mint 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'appuiera sur une utilisation sous Linux Mint mais cela n'est pas très différents pour d'autres systèmes.


B- Virtualisation de Linux Mint 22.3

On récupère l'image iso du système d'exploitation sur le site https://linuxmint.com/download.php . Puis on crée une machine virtuelle (VM en anglais et en abrégé) dans Virt-Manager en installant Linux Mint à 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).
Sur Lorsmon portable avec 16 Go de lancementRam, je choisis 8192 Mo de ram et un espace disque de 50 Go.
Lors du démarrage de l'iso, choisirje "Install"lance simple,Linux garder les cases cochées par défautMint et cocherj'installe lesà casespartir pourdu installerraccourci unsur Weble serveurbureau (Apache)je etne éventuellementfais l'accèspas SSHune siinstallation utile.OEM directement via le menu de démarrage).



IV- Paramétrage des cartes réseaux de la machine hôte sous Linux Mint 22.3

A- Explications du fonctionnement

La connexion réseau entre la machine hôte (host) et la machine invitée (guest ou VM) doit être de type "Bridge" (pont). 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 alors 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 Linux Mint 22.3 avec Serveur FOG (DHCP / TFTP / HTTP) 

B- Détection des cartes réseau

On va chercher le nom de nos cartes réseau avec la commande :

ip -br a

On dispose de 2 types de cartes réseau sur le portable :

  • enp1s0 : carte réseau Ethernet  pour se connecter en filaire à un switch qui lui sera relié aux différents ordinateurs à installer.
    ATTENTION : lorsqu'on utilisera la machine virtuelle avec FOG, il ne faudra jamais relier l'ordinateur en filaire à Internet car il y aurait des conflits entre le serveur DHCP de FOG et le serveur DHCP de la box Internet.
  • wlp2s0 : carte réseau Wifi  pour se connecter à Internet et qu'on ne doit pas modifier.

Pour les paramétrer, on va utiliser la ligne de commande de Network-Manager, nmcli qui permet une configuration fine.
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
C- Création d'un pont br0 sans IP
  1. Le pont br0 agira comme un switch virtuel entre la machine hôte et la machine virtuelle (VM). On le crée sans adresse IP car ce pont ne sert que de prise :
    sudo nmcli con add type bridge ifname br0 con-name br0 stp no \
    	ipv4.method disabled ipv6.method ignore
  2. Ensuite on fait en sorte que le pont br0 soit relié à la carte Ethernet enp1s0. C'est comme si on avait une prise
    sudo nmcli con add type bridge-slave ifname enp1s0 master br0 con-name br0-port
  3. Ensuite on les active avec ces commandes (en veillant à brancher la prise enp1s0 à un switch isolé auparavant) :
    sudo nmcli con up br0
    sudo nmcli con up br0-port
D- Gestion du réseau virtuel géré par libvirt

Le réseau virtuel NAT de libvirt (géré par Virt-Manager), nommé default, fournit à la VM sa carte « NAT » (192.168.122.x) et son accès à Internet via le Wi-Fi de l’hôte. Il correspond à l’interface virbr0 côté hôte.

  1. On liste les réseaux virtuels connus de libvirt, qu’ils soient démarrés ou non avec cette commande :
    sudo virsh net-list --all

    On doit voir le réseau default qui est celui créé à l'installation de libvirt : 

      Name      State     Autostart    Persistent
    -------------------------------------------------------------
     default    active    yes                 yes
  2. Si State = inactive, cela signifie que virbr0 est arrêté. Il faut donc le relancer avec la commande :
    sudo virsh net-start default
  3. Si Autostart = no, alors ce réseau ne démarrera pas automatiquement lors du démarrage du portable. Il faut donc taper la commande suivante : 
    sudo virsh net-autostart default
  4. Pour vérifier que virbr0 est bien paramétré, taper la commande : 
    ip -br a show virbr0
    → Ça doit afficher 192.168.122.1/24



V- Paramétrage des cartes réseaux de la VM

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...

A- Vérification de la carte réseau NAT

Pour cela, dans Virt-Manager, sans démarrer la VM, on sélectionne sa machine virtuelle sous Linux Mint 22.3 ① et on va dans le menu "Édition" ② puis "Détails de la machine virtuelle"  ③ :

 Virt-Manager_FOG_1-6.png

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 doit avoir "Réseau virtuel 'default' : NAT" ③  et en "Modèle du périphérique", on doit lire "virtio" ④. Si ce n'est pas le cas, on modifie les valeurs et on n'oublie pas de valider en appuyant sur le bouton "Apply" ⑤ :

linux_mint_22.3 sur QEMU-KVM_001.png

Il s'agit de la carte qui permettra de se connecter à Internet via le wifi du portable.


B- Ajout de la carte réseau Bridge br0

Maintenant, on clique sur le bouton du bas Ajouter un matériel pour rajouter une seconde carte réseau qui servira au serveur FOG. Pour cela on sélectionne Réseau①, comme "Source du réseau" on choisit Bridge device... ②, pour le "Device name" on indique br0 ③ et on valide en appuyant sur le bouton Terminer ④ :

Ajouter un nouveau matériel virtuel_001.png


C- Vérification sur la machine hôte

On peut maintenant lancer la machine virtuelle et vérifier que tout est correctement configuré en lançant dans un terminal de la machine hôte cette commande :

ip -br a

→ doit afficher pour wlp2s0 une adresse IP en 192.168.1.x, virbr0 en 192.168.122.1/24 et br0 sans adresse IP.


D- Finalisation des connexions réseau dans la VM

Dans la machine virtuelle, on supprime les éventuelles connexions Ethernet. Pour cela, le plus rapide est de faire un clic droit sur l'icône du réseau sur la barre de tâches en bas à droite et de choisir "Modifier les connexions...". Puis on les supprime en les sélectionnant et en cliquant sur le bouton "-" (moins).

  1. Création de la connexion Ethernet nat en enp1s0 qui permet la liaison à Internet par le wifi

    # NAT : DHCP, porte la route par défaut

    sudo nmcli con add type ethernet ifname enp1s0 con-name nat connection.interface-name enp1s0 \
    ipv4.method auto ipv6.method ignore
  2. Création de la connexion Ethernet lan en enp7s0 et qui permettra au serveur FOG de communiquer via le switch
    # Pont : IP fixe, jamais de route par défaut

    sudo nmcli con add type ethernet ifname enp7s0 con-name lan \
    connection.interface-name enp7s0 ipv4.method manual \
    ipv4.addresses 192.168.1.100/24 ipv4.never-default yes \
    ipv4.gateway "" ipv6.method ignore
  3.  On active les 2 connexions Ethernet avec les commandes suivantes :

    sudo nmcli con up nat
    sudo nmcli con up lan
  4. On vérifie que tout fonctionne comme attendu avec la commande :
    ip route

    → on doit obtenir une réponse de cette forme :

    default via 192.168.122.1 dev enp1s0 proto dhcp src 192.168.122.118 metric 102 
    192.168.1.0/24 dev enp7s0 proto kernel scope link src 192.168.1.100 metric 103 
    192.168.122.0/24 dev enp1s0 proto kernel scope link src 192.168.122.118 metric 102 






VI- Installation de FOG dans la machine virtuelle

Dans notre machine virtuelle, 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 /opt
git 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" :

Connexion_FOG_Debian13_2.pnget 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

    1. On se connecte en tant que root avec la commande :
      sudo -i
    2. Puis on se place dans le dossier d'installation avec :
      cd fogproject/bin
    3. Pour tout désinstaller, on tape :
      /installfog.sh --uninstall --purge-all --force

    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

      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). 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 :

          Source :  https://memo-linux.com/fog-1-2-script-post-installation-pour-modifier-le-nom-dune-machine-linux-clonee/

          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


            Sources utiles