OBSD4* : wiki

Version de traduction basée sur la 6.2 officielle


Guide de migration : 6.1 vers 6.2

Les mises-à-jour sont seulement supportées entre deux versions qui se suivent immédiatement. Veuillez lire et bien comprendre le processus avant de l'essayer. Concernant les machines critiques ou physiquement distantes, testez-le sur un système local identique d'abord.

Commencez par effectuer les étapes de pré-mise-à-jour. Ensuite, démarrez votre machine depuis le noyau d'installation 'bsd.rd' : utilisez un media d'installation démarrable, ou placez la version 6.2 de bsd.rd à la racine de votre système de fichiers et ordonnez au chargeur de démarrage de démarrer ce noyau. Une fois que le noyau est démarré, choisissez l'option de mise-à-jour (U)pgrade et suivez les instructions. Appliquez les changements de configuration et finissez par la mise-à-jour des paquets : pkg_add -u.

Alternativement, vous pouvez utiliser le processus manuel de mise-à-jour.

Vous pouvez vérifier la page d'errata ou mettre-à-jour la branche stable pour obtenir tous les correctifs post-installation.


Avant de redémarrer vers le nouveau noyau

Nettoyez /usr/share/man. Pour supprimer tous les manuels obsolètes : rm -rf /usr/share/man

Fichier d'historique ksh en clair. Le fichier history ksh(1) (utilisé quand $HISTFILE est paramétrée) a changé de format de fichier binaire vers un fichier texte en claire. Si vous souhaitez conserver votre historique ksh actuel, créez une version texte de celui-ci avant la mise-à-jour :

    $ fc -ln 1 | cut -f2- > ~/ksh_hist.txt 

Après la mise-à-niveau, vous pouvez utiliser ksh_hist.txt en tant que fichier d'historique.

Si vous montez votre HOME via NFS, assurez-vous que les machines exécutant 6.2 utilisent un HISTFILE différent que les machines exécutant 6.1 ou plus ancien.

Changement incompatible pour les utilisateurs nvme(4) avec GPT. Si vous démarrez depuis un disque nvme(4) avec une table GPT, vous êtes affecté par une erreur de décalage unitaire (« off-by-one ») dans le pilote qui a pour conséquence que le nombre de secteur dans votre table de partition peut être incorrect. La seule manière de corriger cela est de ré-initialiser la table de partition. Sauvegardez vos données sur un autre disque avant la mise-à-jour. Avec le nouveau bsd.rd, basculez vers le shell, et ré-initialisez GPT :

    # fdisk -iy -g -b 960 sdN 

Ensuite, faites une nouvelle installation et restaurez vos données depuis la sauvegarde.

Redimensionnez /usr/obj. Si vous créez vos propres versions pour les plate-formes amd64 et i386, vous devez vous assurer d'avoir au moins 3 Go de disponible pour /usr/obj.

Changement de configuration et de syntaxe

hostname.if. Le mot-clé rtsol n'est plus pris en charge par hostname.if(5). Remplacez-le par inet6 autoconf.

install.site. L'exécution des scripts {install,upgrade}.site dans bsd.rd est reporté à la fin du script d'installation. Si vous utilisez cette fonctionnalité, assurez-vous que votre script fonctionne toujours comme attendu. Le script sera maintenant exécuté après ces étapes :

  • créer des nœuds de périphérique sous-jacents pour les périphériques softraid
  • installer le bloc d’amorçage sur le disque
  • basculer sur le noyau MP sur les systèmes multi-processeurs
  • mettre-à-jour kernel.SHA256 et relier le noyau
  • préparer l'exécution de sysmerge(8), fw_update(8) et syspatch(8) au redémarrage.
  • préparer le courriel avec le fichier de réponse à l'utilisateur admin/root.

ifconfig. Les options de configuration spécifiques à vlan(4) et svlan(4) dans ifconfig(8) et hostname.if(5) ont été dépréciées en faveur de la prise en charge du parent générique et de vnetid.

Les options vlan, vlandev et -vlandev sont maintenant dépréciées en faveur de vnetid, -vnetid, parent, et -parent lors de l'usage d'ifconfig(8) ou du fichier de configuration hostname.if(5). L'utilisation de l'option vlan doit être remplacée par vnetid. Étant donné que la balise VLAN 0 est invalide selon les spécifications VLAN concernées, l'option vnetid n'accepte pas 0 comme identifiant valide de réseau. Pour utiliser la balise VLAN 0 sur la connexion, vnetid peut ne pas être configuré avec -vnetid. L'usage de vlandev et -vlandev doit être remplacé par respectivement parent et -parent.

Contrairement à vlan et vlandev, vnetid et parent ne montent pas implicitement l'interface vlan. De manière similaire, l'option vlan n'est plus impliquée par l'interface mineure quand elle n'est pas explicitement paramétrée.

ifconfig(8) ne produit plus de ligne d'état spécifique vlan, ou une ligne séparée pour vnetid et parent. Les lignes vnetid et parent ont été fusionnées dans une seule ligne encap contenant les informations de la balise VLAN et parent.

Un exemple des modifications du fichier de configuration vlan(4) et des sorties d'ifconfig(8), ci-dessous. Avant les changements :

    # cat /etc/hostname.vlan7
    vlandev em0 # vlan 7 and up are implied
    lladdr random
    # ifconfig vlan7
    vlan7: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
            lladdr 70:a7:3a:75:da:2d
            index 7 priority 0 llprio 3
            vlan: 7 parent interface: em0
            vnetid: 7
            parent: em0
            status: active 

Après les changements :

    # cat /etc/hostname.vlan7
    vnetid 7 parent em0
    up
    lladdr random
    # ifconfig vlan7
    vlan7: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
            lladdr 60:e8:d7:0d:10:6d
            index 7 priority 0 llprio 3
            encap: vnetid 7 parent: em0
            groups: vlan
            status: active 

ksh. Le drapeau emacs-usemeta ksh(1) n'est plus utilisé et a été déprécié. Merci d'ajuster vos fichiers de configuration de shell.

pf.conf: IPv6 options d'entête bloquées. Les paquets IPv6 ont des options d'entête hop-by-hop et des options d'entête de destination qui sont maintenant bloquées par pf(4). Ainsi, les options IPv6 sont maintenant gérées de la même manière que leurs équivalents dans IPv4. Ajoutez allow-opts à vos règles si vous voulez passer les paquets IP avec options.

pf.conf: icmp6-type notnbr-unr supprimé. Il y a presque 20 ans que la RFC 1885 était obsolète. Il faut rattraper son retard en ne supportant plus notnbr-unr (ICMP6_DST_UNREACH_NOTNEIGHBOR). Le type correct est beyond-unr (ICMP6_DST_UNREACH_BEYONDSCOPE). Dans pf.conf(5), notnbr-unr a besoin d'être remplacé par beyond-unr.

smtpd.conf. Le mot-clé secure n'est plus valide dans les directives listen dans smtpd.conf(5). Les utilisateurs sont invités à remplacer les directives listen secure existantes avec les deux écouteurs tls et smtps séparés ; i.e., une ligne telle que :

    listen on $iface secure pki $pki 

doit être remplacé par :

    listen on $iface tls pki $pki
    listen on $iface smtps pki $pki 

La syntaxe de redirection n'est pas affectée par ce changement.

Packages spécifiques

beat. filebeat et packetbeat ont été mis-à-jours vers la version 5.3.1 ce qui change de manière significative la structure du fichier de configuration de 1.x vers 5.x. Veuillez-vous référer à la documentation upstream pour la migration votre configuration. De même, prenez note des incompatibilités lors de la mise-à-niveau vers 5.3.1.
topbeat a été fusionné dans metricbeat, un chemin de migration est disponible.

borgmatic. Le fichier de configuration est passé du format INI (/etc/borgmatic/config) a YAML (/etc/borgmatic/config.yaml). Veuillez mettre-à-niveau votre configuration existante après mise-à-jour de votre package :

    # upgrade-borgmatic-config 

cups. Les binaires CUPS (lpr, lpq, lprm) ne sont plus symboliquement liés dans /usr/bin. Si vous voulez utiliser les commandes CUPS depuis la ligne de commande, vous devez maintenant utiliser le chemin absolu, e.g.:

    $ /usr/local/bin/lpq 

Exécuter lpq sans spécifier le chemin absolu invoquerait le lpq(1) du système de base.

De même, pour voir un manuel de CUPS, vous devriez utiliser :

    $ man -m /usr/local/man lpq 

Si vous utilisez constamment CUPS, vous pouvez ajouter ce qui suit à votre .kshrc pour éviter de taper le chemin absolu :

    for i in lpq lpr lprm; do alias $i=/usr/local/bin/$i; done 

zarafa. Zarafa a été remplacé par Kopano et une mise-à-niveau manuel des fichiers de configuration est nécessaire. Veuillez lire le fichier pkg-readme de Kopano ainsi que le guide de migration officiel et le guide de migration rapide pour plus de détails.

Mise-à-jour sans le noyau d'installation

Ceci N'EST PAS le processus recommandé. Utilisez la méthode d'installation du noyau autant que possible!

Parfois, vous avez besoin de faire une mise-à-jour d'une machine pour laquelle le processus normal de mise-à-jour n'est pas possible. Le cas le plus courant est une machine distante où l'accès à la console système n'est pas aisé.

Préparation

Placez les fichiers d'installation au bon endroit. Assurez-vous d'avoir assez d'espace disque ! Exécuter une mise-à-jour à distance sans l'espace nécessaire pourrait être … malheureux. Notez que l'usage de softdeps peut amplifier la situation car les fichiers supprimés ou réécrits ne restitueraient pas leur espace immédiatement. Envisagez le fait de désactiver l'option de montage softdep dans /etc/fstab et redémarrer avant de prendre le contrôle pour une mise-à-jour manuelle. Il est recommandé d'avoir au moins 500 Mo d'espace libre sur /usr.

Être root. Bien que l'usage de doas(1) avant chaque commande soit généralement une bonne pratique, la commande serait probablement interrompue par les dernières étapes, ainsi vous devriez passer root avant de démarrer le processus. C'est une bonne chose de vérifier votre accès administrateur en utilisant une des autres méthodes que doas, c'est à dire, par une connexion directe ou en utilisant su(1).

Arrêtez et/ou désactivez toutes applications appropriées. Durant ce processus, toutes les applications dans l'espace utilisateur seront remplacées mais peuvent ne pas fonctionner, et des dysfonctionnements peuvent arriver. Vous pouvez également avoir des problèmes avec la résolutions DNS lors du premier redémarrage, en effet les règles PF et les montages NFS dépendants des résolutions DNS peuvent causer des problèmes de démarrage. Il peut y avoir d'autres applications que vous souhaitez empêcher de fonctionner immédiatement après la mise-à-jour, arrêtez-les et désactivez-les aussi.

Installation des nouveaux blocs de démarrage. Cela devrait être actuellement fait à la fin de chaque mise-à-niveau. Si cela a été négligé, alors le fait de ne pas le faire immédiatement pourraient rendre non-fonctionnel la console série ou d'autres choses, selon votre plate-forme. Utilisez installboot(8), en assumant que sd0 est votre disque de démarrage :

      installboot sd0

Mise-à-jour manuelle

Installation des nouveaux noyaux. Les étapes supplémentaires de copie sur le noyau primaire, sont faites pour s'assurer qu'il y a toujours un noyau valide sur votre disque.

Si vous utilisez un noyau pour multi-processeurs :

      cd /usr/rel    # où vous placez les fichiers de version
      ln -f /bsd /obsd && cp bsd.mp /nbsd && mv /nbsd /bsd
      cp bsd.rd /
      cp bsd /bsd.sp

Si vous utilisez un noyau pour un seul processeur :

      cd /usr/rel    # where you put the release files
      ln -f /bsd /obsd && cp bsd /nbsd && mv /nbsd /bsd
      cp bsd.rd bsd.mp /    # peut lever un avertissement inoffensif

Activer KARL. Enregistrez la somme de contrôle du noyau :

      sha256 -h /var/db/kernel.SHA256 /bsd 

Installation du nouvel espace utilisateur. Sauvegardez une copie de reboot(8), décompressez et installez les paquets tar, puis redémarrez. Installez base62.tgz en dernier, car le nouveau système de base, en particulier tar(1), gzip(1) et reboot(8) ne fonctionnent pas avec l'ancien noyaux. Décompressez l'un ou l'autre des jeux de fichiers manuellement :

      cp /sbin/reboot /sbin/oreboot
      tar -C / -xzphf xshare62.tgz
      tar -C / -xzphf xserv62.tgz
      tar -C / -xzphf xfont62.tgz
      tar -C / -xzphf xbase62.tgz
      tar -C / -xzphf man62.tgz
      tar -C / -xzphf game62.tgz
      tar -C / -xzphf comp62.tgz
      tar -C / -xzphf base62.tgz    # Installez en dernier!
      /sbin/oreboot

ou, si vous utilisez ksh(1), vous pouvez faire :

      cp /sbin/reboot /sbin/oreboot
      for _f in [!b]*62.tgz base62.tgz; do tar -C / -xzphf "$_f" || break; done
      /sbin/oreboot

Notez que tar(1) ne peut décompresser qu'une seule archive par invocation, donc un simple glob ne fonctionnera pas.

Après le redémarrage, mettez-à-jour /dev. Utilisez MAKEDEV(8) :

      cd /dev
      ./MAKEDEV all

Mise-à-jour du chargeur de démarrage. Toujours en supposant que sd0 soit votre disque de démarrage :

      installboot sd0

Mise-à-jour des fichiers de configurations systèmes. Utilisez sysmerge(8) :

      sysmerge

Mise-à-jour des micrologiciels. Il peut y avoir de nouveaux micrologiciels pour votre système. Mettez-les à jour avec fw_update(1) :

      fw_update

Pour terminer : Examinez les sorties de consoles post démarrage (en utilisant dmesg -s) et corrigez toute défaillance si nécessaire. Toutes les étapes concernant les changements de configuration ci-dessus s'appliquent également aux mises à jour manuelles. Enfin, supprimez /sbin/oreboot et mettez-à-jour vos paquets : pkg_add -u. Redémarrez une fois que vous êtes sûr du bon fonctionnement de votre propre noyau généré par KARL.


Cette page est la traduction officieuse de la page “Upgrade Guide: 6.1 to 6.2” de la FAQ officielle d'OpenBSD.
En cas de doute, merci de vous y référer !

Si vous voulez participer à l'effort de traduction, merci de lire ce topic.