Une nouvelle aventure de foirage de mise à jour FreeBSD...

FreeBSD 8.0 est près de sortir, et j'ai voulu essayer la mise à jour par freebsd-update avec la RC2.

J'ai trouvé un descriptif de la méthode sur l'annonce de la disponibilité de FreeBSD 8.0-RC2. J'ai tenté cette méthode un peu pour le fun, et beaucoup parce que la mise à jour par sources que j'utilise d'habitude a raté avec une erreur (que j'ai pas cherché à démerder).

J'avais tenté freebsd-update la première fois que c'est sorti, avec FreeBSD 7.0, je crois. A l'époque, c'était pas encore tout à fait au point, et il fallait renseigner plein de choses dans un fichier de configuration inexistant. Ma tentative s'était conclue par un message d'erreur qui disait qu'il pouvait pas mettre à jour mon système... Donc j'avais laissé tomber.

Mais maintenant, c'est devenu beaucoup plus facile. Le système détecte les paquets installés, télécharge les patchs et binaires nécessaires, installe les mises à jour, et enlève même les anciens fichiers inutiles. La fête quoi. 🙂 Il a même vu que j'avais un noyau personnalisé, et m'a indiqué qu'il fallait que je le mette à jour à la main.

Mais voilà, ça a merdé pendant la mise à jour. En fait ça a l'air d'être une correction de bug des versions 7.x. La fois où j'ai installé FreeBSD 7.0, mon serveur n'est pas revenu du redémarrage, parce que le nom du disque a changé (il est passé de ad12 à ad10).

Là, mon disque est revenu en ad12... Et patatras la même histoire... Il faut respécifier la racine à la main (ufs:/dev/ad12s1a), remonter /usr à la main (mount /dev/ad12s1f /usr), galérer une heure durant se demandant pourquoi / est en lecture seule alors que les options du loader sont correctes (parce que j'ai pas dit mount -u /...). Et tout ça en clavier qwerty. 😛

Une fois que j'ai mis à jour /etc/fstab, tout est revenu dans l'ordre. J'ai pu finir ma mise à jour, et mon serveur est reparti gaiement.

A part pour Plone, la nouvelle installation par buildout installant un Python indépendant du Python système, mais quand même lié aux bibliothèques système. Les anciennes, de FreeBSD 7.2, qui ont sauté quand freebsd-update a nettoyé les binaires obsolètes. J'ai dû relancer une installation (en effaçant les binaires Python du répertoire de l'instance Plone), et c'est reparti aussi.

Mais au final, ce qu'il faut que je fasse, c'est coller des labels sur mes partitions. Ça consiste à nommer une partition avec un nom indépendant et persistant, de façon à ce qu'il soit correctement identifié même s'il n'est pas reconnecté au même endroit (ou que le driver le nomme différemment). C'est une méthode destinée aux média amovibles, qui est applicable à mon cas sur les partitions du disque dur principal... Et tout est expliqué dans cette page du handbook !

Seul inconvéniant, il faut redémarrer en mode single user. Comme mon serveur n'est pas équipé d'ordinaire d'écran ou de clavier, c'est une opération plutôt fastidieuse. Mais je pense le faire à la sortie de FreeBSD 8.0-RELEASE, où j'en profiterai pour également passer de i386 en amd64. 64 bits rulez. 😛