L'incident du dimanche soir
Comme 80% des incidents celui-ci a commencé à 21H00 juste après avoir dit "j'arrive j'en ai pour 2min" 😢.
Une mise à jour a priori banale du routeur comme tant d'autres jusqu'à présent. Au bout de 5 minutes d'attente du redémarrage je m'inquiète, au bout de 10 minutes je décide d'aller voir le routeur physiquement : "Erreur de démarrage, bootx64.efi introuvable" 😱.
Jusqu'à présent je n'explique pas le crash, une erreur de package, un problème matériel, ce qui est sur c'est que je semble être le seul impacté. Un problème comme ça aurait laissé des traces sur le forum ou les issues GitHub.
Comme toujours c'est dans les situations de crise que l'on en apprend le plus alors c'est parti pour un petit résumé des actions et astuces pour réparer un OPNSense, sur un DEC850, qui ne démarre plus.
Les outils utilisés
Le nécessaire pour pouvoir remettre sur pied le routeur :
- Une clé USB (rapide et fiable pour éviter de passer 1 heure à copier les données)
- L'image OPNSense
- Un outil de flash type Balena Etcher
Basique, rien d'extraordinaire c'est plutôt une bonne nouvelle.
DEC850 et paramètre BIOS
Premier point qui m'a pris 1 heure de debug, suite à une modification de la gestion EFI par FreeBSD il est nécessaire de modifier un paramètre BIOS dans le DEC850 pour avoir un mode console (serial) qui fonctionne correctement. La console semblait fonctionner correctement mais en fait il y avait des problèmes d'affichage qui ne me permettait pas de sélectionner les bonnes options et de démarrer correctement sur le live USB d'OPNSense
Le paramètre en question :
"Setup Utility –> AMD CBS –> FCH Common Options –> UART Configuration Options –> UART 0 Legacy Options" doit être mis à "Disable"
Documentation : https://docs.opnsense.org/hardware/serial_connectivity.html#legacy-uart-vs-uefi-serial
Live : démarrage + installation
Une fois ce problème de console résolu la suite a été rapide et fluide. Il a suffit de suivre la documentation OPNSense.
Mon routeur ne démarrait plus mais ma configuration était toujours présente et exploitable sur le disque. Lors du démarrage du live USB OPNSense propose de charger une configuration depuis un périphérique. J'ai pu sélectionner le disque dur et le live USB a démarré avec ma configuration chargée. Le plus dur était fait j'avais un routeur à nouveau fonctionnel, sauvé ! Je ne me voyais pas tout refaire à la main.
A partir de la sauvegarde de la configuration (un peu tard je sais 😅 ) puis lancement de l'installation. L'installation se fait à partir de l'image liveUSB en cours d'exécution, elle embarque donc la configuration qui a été chargée au démarrage. Finalement en quelques clics et un reboot je retrouve mon routeur up and running.
C'est gagné !
Documentation : https://docs.opnsense.org/hardware/serial_connectivity.html#legacy-uart-vs-uefi-serial
En résumé, les points clés
- Faire une sauvegarde de la configuration avant chaque mise à jour, évident mais c'est systématiquement lorsque l'on oublie que ça plante
- Modifier le paramètre BIOS du DEC850 pour avoir un mode console fonctionnel
- Faire une clé USB avec le liveUSB d'OPNSense, bien choisir l'option "serial" pour le DEC850 et le mode console
- Utiliser OPNSense Importer pour charger sa configuration au démarrage du liveUSB
- Réinstaller OPNSense à partir du système en cours d'exécution
Maintenant que je sais comment reconstruire mon routeur en 10 minutes, il ne plantera plus jamais 😄