Debian entièrement en ram, pour un petit routeur

Pour un petit projet de routeur (c’est tout bête: juste quelques interfaces réseau, du routage, quelques règles de pare-feu, rien d’autre), que j’ai déjà installé et configuré comme il faut sur un disque dur, j’aimerai faire une image de système qui se décompresse entièrement en ram au démarrage, pour que le système puisse être coupé n’importe comment (en débranchant la prise) et qu’à l’allumage suivant tout soit dans un état identique (=> aucune donnée à garder), sans altération aucune.
En cherchant j’ai trouvé pas mal de ressources sur la création de live-cd/dvd, ou de système qui bootent sur compact-flash avec fs en lecture seule et répertoire temporaire sur tmpfs, mais ca n’est pas exactement ce que je recherche (je garde quand même sous la main, y’a des choses à prendre)

Le système a 1Go de ram et une compact-flash de bonne taille (pour l’instant ca tourne là-dessus: pcengines.ch/wrap1e203.htm ), donc l’allègement du système n’est pas une priorité.

J’ai du mal à trouver les bon termes de recherche, si quelqu’un pouvait m’aiguiller un peu ca m’aiderait beaucoup. Merci :slightly_smiling:

Travaille sur boisson.homeip.net/BootCD-2.6.iso.bz2

Il boute en RAM complète, le système est facilement modifiable et une fois bouté, tu peux tout enlever y compris le CD ou la clef ayant servi à le bouter.

J’avais vu passé ce lien parmi mes recherches. Ca convient, mais j’aimerai vraiment le faire moi-même, j’ai besoin de comprendre comment ca marche.

Je vais déjà décompresser ça dans un coin et voir comment c’est fait :smt002

Tu veux absolument utiliser une debian pour cela ?
Il y a beaucoup plus optimisé comme distrib. pour faire ca, regarde du coté BSD. Le systeme en lui meme prend meme pas 50M en memoire.

Oui absolument, pour deux raisons: c’est la distrib que je connais le mieux, et plus tard je rajouterai des choses dans le système (sur bsd je ne pourrai pas tout faire)

C’est facile, tu recopies le CD sur un répertoire, tu installes cpio et tu fais dans ce répertoire

sh srcroot

pour fabriquer l’arborescence (un répertoire Root crée)
et

sh docroot

pour changer ta racine.

sh makecd

te fabrique l’image ISO du CD
Tu peux modifier la clef à partir d’elle même.

Par contre attention, c’est une LFS bricolée à partir de paquets debian mais elle est efficace.

Comme tu veux mais bon les BSDs sont réputées justement pour cette fonction de passerelle/routeur/fw. Et c’est pas tres compliqué à mettre en place :wink:

je ne sais pas quel niveau d’implication tu veux mettre dans ton projet. De mon point de vue j’en vois au moins 3 :
1- le mode gros balaise qui veut tout savoir et tout comprendre pour ensuite dire à tout le monde “c’est moi qui l’ai fait” : faire tout depuis le début à partir de “recettes de fabrication” que l’on peut trouver sur linux from scratch ou slitaz qui propose une doc pour faire une slitaz depuis les sources
2- le mode gros balaise qui a la flemme mais qui veut dire à certains “c’est moi qui l’ai fait” : faire tout depuis le début à partir d’un environnement préconfiguré pour telle ou telle plateforme. De tête je dirais buildroot et T2SDE mais il y en a d’autre comme Pokylinux (plus orienté pda mais probablement modifiable)
3- le mode gros balaise qui a la flemme et qui en plus veut pas se casser un ongle avec des metadistributions plutôt orientée réseau comme openwrt et freewrt

Voilà
nana

Muf je serai ravi de me mettre à bsd, mais plus tard :stuck_out_tongue: (si un jour j’ai le temps :frowning: )
Par la suite le système accueillera d’autres services très variés, d’où ma préférence pour continuer sous linux.

Ce qui est “tout fait” en général m’intéresse peu, installer et constater que ca fonctionne, ca ne fait pas progresser. Je préfère comprendre d’abord, ensuite je me fais un tuto perso, je l’améliore au fil du temps, et ensuite j’automatise ça :wink:

Douarn je me situerai plutôt entre 1) et 2), mais je vais pas non plus faire une LFS pour ça (j’ai appris des choses en le faisant pour mon wrap, mais je ne suis pas du tout à mon aise pour le faire en entreprise), sur ce petit projet je n’ai pas de contrainte de puissance du matériel, ni de taille du système (1Go, y’a de la marge)
ps: je n’aurais pas de lecteur cd sur la machine, ni la possibilité de mettre une clé usb, ca sera sata ou ata uniquement, ca pourra prendre des coups, donc compact-flash tout indiquée :astonished:

[quote=“aspegic500mg”]
Ce qui est “tout fait” en général m’intéresse peu, installer et constater que ca fonctionne, ca ne fait pas progresser. [/quote]

Entre parentheses : BSD c’est loin d’être du tout fait :smiley:. C’est pas une distrib. que tu installes et tu regardes tourner, loin de là, mais tres loin de là :wink:.

Je ne parlais pas de bsd pour le “tout fait” :confused:
En bsd tout fait, j’avais par exemple essayé Monowall, c’est sympa et ca marche, je l’ai utilisé quelques semaines, mais finalement je n’ai rien appris du tout, donc pas intéressant :smt002
Installer bsd et paramétrer tout ce qu’il faut à la main, ca m’intéresse, mais pas le temps pour l’instant et plus tard j’aurai des choses à installer qui n’ont rien à voir avec le réseau et qui nécessitent vraiment linux :wink:

Faire une distribution Linux embarquée, en urgence
Linux embarqué Busy Box "in a nutshell"
Embarquez Linux ou Linux Everywhere…
et pourquoi pas prévoir ça pour la version 2.0 de ton routeur Interfaces utilisateur pour Linux embarqué (Embedded IHM)

Merci, je lis tout ça :stuck_out_tongue:

Une page qui me fait pas mal avancer:
slitaz.org/doc/scratchbook/b … m.html#src

Build a initramfs cpio archive

L’initramfs est une archive cpio du système générée depuis la racine, elle est décompressée en RAM par le noyau Linux lors du démarrage (boot), pour créer le système de fichiers en mémoire vive. Pour générer une archive initramfs, nous nous plaçons dans le répertoire racine du système de fichiers (rootfs), nous fesons une recherche avec find, et nous utilisons des pipes |. Ensuite nous créons une archivecpio gzipée avec gzip, que nous plaçons dans le répertoire de travail.

L’initramfs de SliTaz se nomme rootfs.gz, c’est le nom du système racine, mais avec l’extension .gz. Si vous changé le nom, il faudrat le spécifier dans le fichier isolinux.cfg pour isolinux, ou menu.lst pour GRUB.

Génération de l’initramfs:

Vous devriez avoir un fichier rootfs.gz d’environ 1 à 2 Mb dans le répertoire de travail de SliTaz.

Pour une nouvelle image, lors de modif dans rootfs, il suffit de copier la nouvelle archive rootfs.gz dans rootcd/boot, et de créer une nouvelle image ISO avec genisoimage ou mkisofs. Pour cela vous pouvez utiliser mktaziso se trouvant dans SliTaz tools. Ce script se chargera de vérifier si les répertoires sont bien présents, de générer une nouvelle archive cpio compressée et de créer une nouvelle image ISO bootable.