(modifié le 9 mars 2025 à 12:55)

Si vous utilisez un routeur avec le firmware open-source Tomato (FreshTomato) alors vous pouvez ĂȘtre amenĂ© Ă  exporter la nvram pour sauvegarder la configuration de votre routeur.

Voyons comment faire avec 3 méthodes.

La NVRAM c'est quoi ?

La NVRAM est la partie non volatile de la mĂ©moire des routeurs dans laquelle sont stockĂ©s les rĂ©glages. Autrement dit les paramĂštres sont prĂ©servĂ©s dans cette puce, mĂȘme aprĂšs un reboot ou une perte d'alimentation du routeur, Ă  la maniĂšre d'une clĂ© USB.

FreshTomato utilise cette zone pour stocker sa configuration sous forme de variables. Tout ce que vous configurez dans l'interface web est alors injecté en variable dans la NVRAM sous forme de fichier en clair (contrairement au fichier d'export de configuration *.cfg qui ne l'est pas).

FreshTomato peut parfois conserver certaines variables NVRAM (paramĂštres) mĂȘme aprĂšs avoir flashĂ© une nouvelle image de firmware sur votre routeur. Il est donc trĂšs important d'effacer la NVRAM avant de flasher une nouvelle version plus rĂ©cente. Cela permet de s'assurer que toutes les variables du micrologiciel existant sont effacĂ©es avant le dĂ©but du flashage.

Si vous oubliez cette étape d'effacement de la NVRAM avant le flashage votre routeur peut se briquer ou fonctionner de façon inattendue. Cela peut paraßtre fastidieux mais il ne faut JAMAIS ignorer cette étape :

  • les nouvelles variables introduites seront crĂ©es : pas de souci
  • les variables modifiĂ©es ne le seront pas âžĄïž problĂšme
  • les variables supprimĂ©es resteront âžĄïž problĂšme

Je vous explique dans ce tutoriel comment faire une montée de version de FreshTomato sans pour autant tout reconfigurer à la main :

1. Sauvegarde via l'interface web

Rendez-vous dans le menu  :

Administration > Debugging (http://tomato/admin-debug.asp)

En bas de page cliquez sur "Download NVRAM Dump" :

Le fichier vous sera directement proposé en téléchargement dans votre navigateur web au format lisible "nvram.txt".

2. Sauvegarde en ligne de commande "nvram save"

Connectez-vous en SSH ou telnet puis exécutez en tant que root :

nvram save backup-nvram.cfg

Un fichier "backup-nvram.cfg" sera alors généré à l'endroit ou vous vous trouvez.

⚠ le fichier de sortie sera binaire et non lisible, il sera nĂ©cessaire de le restaurer avec nvram restore xxxxx.cfg

Il est aussi possible de sauvegarder la version lisible avec :

nvram show >backup-nvram.txt

3. Sauvegarde en ligne de commande avec "nvram-export"

Récupérez le contenu du dépÎt Git : https://github.com/jon-hedgerows/nvram-export

Une fois le script copié sur votre routeur Tomato exécutez-le :

./nvram-export.sh backup-nvram.sh

Votre sauvegarde sera alors prĂ©sente dans le fichier backup-nvram.sh qui se prĂ©sente sous forme d'un script bash. L'intĂ©rĂȘt du script est qu'il va crĂ©er un fichier exĂ©cutable avec les paramĂštres triĂ©s par ordre alphabĂ©tique. Il va Ă©chapper les caractĂšres posant problĂšmes

[bonus] DĂ©coder le fichier backup.cfg

Via le menu Administration > Configuration il est possible de sauvegarder la configuration dans un fichier *.cfg. Dans le cas oĂč vous n'avez que ce fichier il peut ĂȘtre utile de le dĂ©coder pour rĂ©cupĂ©rer un rĂ©glage sans restaurer le fichier (surtout si votre version de Tomato a changĂ©!).

Comme je vous l'ai dit ce fichier n'est pas lisible, mais il est possible de le décoder si votre routeur est équipé d'un processeur ARM (visible dans menu about) grùce à nvram-cfg-parser.

Pour utiliser le script il faudra d'abord installer npm et nodejs sous Linux (ou WSL) :

apt install npm nodejs

Remplacez apt par yum si vous ĂȘtes sur une distribution RedHat Like (Alma, Oracle, CentOS, etc).

Enfin pour convertir le fichier :

nvramcfg decode FreshTomato_xxx.cfg > nvram.json

Le fichier de sortie au format json devra ĂȘtre reconverti au fomat cfg si vous souhaitez restaurer dans Tomato :

nvramcfg encode arm nvram.json > nvram.cfg

â„č A noter l'existence d'un outil graphique wrtsettings qui peut ĂȘtre pratique pour visualiser la configuration. Mais il ne supporte pas les accents : Ă  Ă©viter donc pour modifier directement un fichier cfg.

Conclusion

Et voilĂ  vous avez de quoi sauvegarder votre configuration en exportant la NVRAM trĂšs facilement.

Une derniĂšre chose, on voit pas mal de tutoriels sur le net qui parlent de cette commande :

nvram export --set >config.txt

Inutile d'essayer cette commande ne fonctionne plus. J'imagine qu'elle fonctionnait sur d'anciennes versions Tomato et que la syntaxe a changé avec le temps dans busybox.

⚠ Attention : le fichier NVRAM contient toute la configuration de votre routeur, incluant les clĂ©s WiFi mais aussi identifiant et mot de passe admin, veillez Ă  ne pas laisser ce fichier sur votre PC. Stockez-le en base KeePass sous forme de piĂšce jointe ou Ă  minima ou sur un emplacement sĂ©curisĂ© (chiffrĂ©).

 

Auteur : Mr Xhark

Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter