Après l'installation de FreeBSD 15 lors de sa sortie en juin 2025 si ma mémoire est bonne. Nous voici rendu à une mise à jour de FreeBSD 15 à 15.1

Préparer la mise à jour

Avant de commencer, identifiez votre méthode de mise à jour : “directement en place sur le PC” depuis le système existant, ou via une ISO (sans avoir besoin de réinstaller depuis un DVD). L’approche classique dans le cas qui nous concerne, est la mise à jour d'un PC classique. Avant de commencer idéalement, faite  une sauvegarde (au minimum de la configuration critique : /etc, données applicatives, de vos fichiers clés). Vérifiez aussi que vous avez de quoi gérer le retour arrière (snapshot ZFS si vous en avez, ou sauvegarde le disque qui en pratique n'est pas l'idéal). Bon je sais personnes ne fait ça mais à tout le moins, faite un snapshot ZFS. 

Explication de la branche “15.0 versus 15.1”

Sur FreeBSD, la mise à jour passe par la branche des patches. En pratique, vous mettez à jour la base de FreeBSD ou utiliser le mécanisme prévu étape par étape en ligne de commande. C'est la méthode la plus courante pour passer d'un RELEASE à une version mineure). L’idée : récupérer les patchs correspondant à 15.1, appliquer sur le système, puis relancer/mettre à jour le noyau. En résumé, vous allez mettre à jour le kernel, les pilotes et d'autres fichiers systèmes qui ont subit des correctifs, des améliorations etc...  Ainsi va la vie en FreeBSD!

La première étape est de valider qu'elle type de mise à niveau vous aurez besoin de faire en identifiant votre version FreeBSD.

1. Ouvrez le terminal et lancez la commande suivante << pkg which /usr/bin/uname >> ou vous pourriez utiliser la commande uname -a >>

Commandterminal 1  

2. Toujours dans le terminal, lancez la commande de suivante:

Commandterminal 3  

Explication de cette commande

La commande lancée dans le terminal sur l'image ci-dessus sert à mettre à jour les paquets installés via pkg en utilisant le référentiel FreeBSD “ports” comme source de paquets.

  • pkg upgrade: demande à pkg de mettre à jour tous les paquets que nous allons installer, vers les versions disponibles.
  • y: répond automatiquement “oui” à toutes les confirmations (pas d’interaction).
  • r: FreeBSD-ports : indique la branche/la source des paquets à utiliser (ici la branche “FreeBSD-ports”).
  • pkg: ici, c'est le nom du paquet cible à mettre à jour (donc pkg (l’outil système) sera aussi mis à jour si une version plus récente de pkg existe ce qui est le cas dans cette mise à niveau.

En pratique, cela revient à dire : “Met à jour les paquets installés (sans me demander oui à chaque ligne), en récupérant les mises à jour depuis la source FreeBSD-ports, et faites aussi la mise à jour du paquet pkg lui-même.”

 

Normalement vous aurez comme résultat la liste des paquets à mettre à niveau, vous aurez qu'à répondre *y* à la questions pour lancer le processus de téléchargement/extraction/installation des paquets. 

Ce processus, ce traduit comme ceci:

Upgradeprocess  

3. Une fois la mise à niveau des paquets, on doit également faire la mise à jour de la base du système en version 15.1. Lancer la commande suivante comme sur l'image ci-dessous. Normalement, vous aurez la liste des fichiers système à mettre à niveau. Répondez *y* et faite entrer sur votre clavier. Dans mon cas ici, je suis déjà en version 15.1 alors c'est la raison pour laquelle on me retourne l'information que mon système est bien à jour comme vous pouvez le voir sur l'image. 

Commandterminal 4  

Explication de cette commande

  • pkg: outil de gestion de paquets.
  • upgrade: effectue une mise à jour des paquets installés vers les versions disponibles.
  • -r FreeBSD-base: indique la branche/dépôt source à utiliser. Ici, c’est la source “FreeBSD-base” (typiquement les paquets du système).
  • -oABI=FreeBSD:15:$(uname -p) : définit une option de configuration “ABI” pour sélectionner les paquets compatibles.
  • FreeBSD:15= version/branche principale FreeBSD 15.
  • $(uname -p)= architecture de votre système (ex. amd64, arm64, i386…) récupérée automatiquement. Le résultat : pkg n’essaiera pas de prendre des paquets pour une autre ABI/architecture.
  • -o OSVERSION= 1501000: force la valeur de version OS que pkg utilise pour filtrer/choisir les paquets.
  • 1501000= correspond en pratique à la version “15.1” encodée (FreeBSD utilise un format numérique pour ces comparaisons).

Pourquoi forcer ABI et OSVERSION ?

  • Pour éviter un décalage entre votre système réel et les métadonnées/choix de paquets du dépôt, surtout lors de mises à jour ou de cas particuliers (chroot, systèmes non standard, mélange de branches, etc.).
  • En bref : vous dites à pkg “traite mon système comme FreeBSD 15.1 sur cette architecture”.

À garder en tête :

  • Cette commande est généralement prudente et contrôlée. Elle cible explicitement le bon ABI et la bonne version de FreeBSD, mais si vous mettez une valeur qui ne correspond pas à votre système, pkg peut ne rien trouver et vous aurez un message d'échec.

4.  Une fois la mise à jour du système de base, il est temps de lancer la commande de mise à niveau des pilotes du noyaux ou Kernel si vous préférez.  Lancer la commande suivante comme sur l'image ci-dessous. Vous aurez la liste affiché dans le terminal et vous n'aurez qu'à répondre *y* et faire entrée sur votre clavier. Attention: dans mon cas ici, je suis déjà en version 15.1 alors c'est la raison pour laquelle on me retourne l'information que mon système est bien à jour comme vous pouvez le voir sur l'image.

 

Commandterminal 5  

Explication de cette commande

pkg upgrade -r FreeBSD-ports-kmods sert à mettre à jour les paquets installés en utilisant une branche précise.

  • pkg : gestionnaire de paquets FreeBSD.
  • upgrade: calcule les mises à jour disponibles pour les paquets déjà installés et les installe (sans supprimer vos paquets).
  • -r FreeBSD-ports-kmods: force pkg à utiliser la branche/dépôt nommé FreeBSD-ports-kmods pour trouver les versions à mettre à jour.

Concrètement, FreeBSD-ports-kmods correspond généralement à un dépôt qui fournit des modules du noyau (“kmods”) construits à partir des ports de FreeBSD. Donc cette commande est utile quand vous voulez mettre à jour spécifiquement les composants “kmods” (ex : modules tiers souvent des pilotes de matériels carte graphique, wifi etc..) vers des versions de mise à niveau du système.

Point à retenir : seuls les paquets disponibles dans cette branche et compatibles avec votre système : version FreeBSD 15, ABI, architecture) seront mis à jour. 

Portez attention au message du terminal car il peut avoir des mises à jour de fichier de configuration. Vous pouvez vérifier si c'est le cas avec cette commande: 

<code class="language-shell" data-lang="shell">find /etc /usr/local/etc -name '*.pkgnew' -ls</code>

Dans mon cas, lors de la mise à niveau, je n'ai pas eu de message particulier. Comme vous pouvez le constater sur l'image ci-bas. Aucune action à prendre en compte. 

Commandterminal 6  

5. Cette étape est important car vous allez mettre à niveau le chargeur de démarrage. Si vous êtes en mode UEFI, lancer la commande et suivez les instructions ici bas

Commandterminal 7  

Dans mon cas précis, j'ai deux installations de FreeBSD soit une sur un laptop qui me sert régulièrement. Et une autre installation en mode virtuelle pour le bien de ces articles. Mon vieux Laptop Toshiba P500 que j'ai récupé avant qu'il soit à la case. Le Bios sur ce Laptop n'est pas en UEFI. Alors dans ce cas, je dois simplement lancer deux commandes soit << gpart show>> permet de connaître le schéma de partitionnement d’un ou plusieurs disques gérés par GPT/MBR/  selon le cas. Dans mon cas, le mbr est sur /dev/sda0

Commandterminal 8  

Explication de cette commande

gpart : outil de gestion des partitions.
show : commande qui “affiche” les partitions (sans modifier quoi que ce soit sur le disque).
Si vous ne donnez pas de périphérique, selon la configuration, il peut lister les informations pour les disques visibles. Si vous fournissez seulement un disque (ex. /dev/ada0), il affiche uniquement ce disque. 

Ce qu'on retrouve comme information

  • le type de table (GPT, MBR)
  • la taille de disque et des données (pour GPT : partitions, pour MBR : partitions)
  • les numéros de partitions
  • leurs tailles et positions (début/fin, parfois le secteurs)
  • des informations comme l’UUID (souvent en GPT)

Exemple typique :

  • gpart show : vue d’ensemble
  • gpart show ada0 : schéma du disque “ada0”

 

Et pour terminer la mise à niveau, lancer la commande suivante et faite entrée au clavier

<code class="language-shell" data-lang="shell">gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0</code>

Commandterminal 9  

afin de vous assurez de mettre à jour également le processus de démarrage (boot) de votre système. Essentiellement cette commande sert à installer le code du boot loader sur un disque (en pratique, sur le premier secteur du disque/chaîne de démarrage), en indiquant notamment quel “MBR” et quel chargeur GPT/boot loader utiliser.

Explication de cette commande

  • bootcode: sous-commande pour écrire le code de démarrage.
  • -b /boot/pmbr : indique le programme maître pour le MBR (jargon technique “pmbr” = protective MBR boot code) à écrire dans la zone de démarrage.
  • -p /boot/gptzfsboot: indique le chargeur GPT pour ZFS à installer (ici gptzfsboot, typiquement pour démarrer sur un système racine ZFS).Quel est mon système de fichier sélectionné lors de l'installation de FreeBSD.
  • i 1 : précise l’indice de la partition GPT à utiliser (le “slot”/numéro de partition cible pour la suite de la chaîne de boot). Ici : partition numéro 1.
  • ada0 : indique le disque cible (dans mon cas /dev/ada0).

En bref, cette commande configure la chaîne de démarrage lorsque vous allumez votre pc :

  1. pmbr prépare/donne le point d’enchaînement,
  2. puis gptzfsboot prend le relais,
  3. en s’attachant à la partition GPT dont l’index est 1.

⚠️ Porter attention à ceci :

  • Cette commande doit-être exécutée sur le bon disque (et avec le bon index -i correspondant à la partition où se trouve le boot/ZFS root, ou celle attendue par la configuration).
  • Le chargeur gptzfsboot suppose un contexte ZFS de boot cohérent (ex : présence/format des datasets, et partitionnement correct).

Voilà nous avons terminé la mise à niveau de la version de FreeBSD 15 vers la branche 15.1.

Vous n'avez qu'à lancer la commande suivante 

<code class="language-shell" data-lang="shell">shutdown -r now</code>

pour redémarrer votre système.  Cette commande s'explique simplement par:

  • shutdown : est en ligne de commande l'utilitaire d’arrêt/redémarrage.
  • -r : indique la demande de reboot (redémarrer au lieu de s’arrêter).
  • now : indique le délai = immédiatement (sans attendre).

Redémarrer, puis valider que vous êtes bien sur la bonne version en ouvrant configuration du système et allez sur  le centre d'information.

Freebsd15.1upgraderéussi  

J'espère que vous avez apprécié cet article. J'ai mis 3 heures à l'écrire mais vous aurez fait l'ensemble des étapes en moins de 20 minutes.  Merci d'avoir visité mon site web Aventure Open Source.