Création d'un initramfs

Bonjour a tous,
Je souhaiterai créer un initramfs embarquant le minimum pour booter une image contenant linux. Je me suis penché sur ce sujet ci forum.debian-fr.org/viewtopic.ph … sc&start=0,
mais l’auteur parle d’un initrd et non d’un initramfs. Quelle est la différence entre un initrd et un initramfs, a part que l’un va en ram (enfin il me semble) ? Avec mkinitramfs, je ne vois pas comment rattacher l’archive sortie avec mon image, d’ou le coup de vouloir faire une sorte de script qui me créé mon initramfs. Pouvez-vous m’aider ?
Merci d’avance

Le problème de l’initrd est que c’est un disque de taille fixe, l’initramfs est en fait une archive cpio.

En gros tu as ton système complet sous le repertoire /maRAMamoi
Tu fais

# cd /maRAMamoi
# find . | cpio --quiet --dereference -o -H newc | gzip -9 > ~/initramfs

Ton système de fichier ramfs est prêt.

Pour retrouver le système de fichier à partir du fichier initramfs, tu fais

# cpio -i < ~/initramfset ça dépliera le système de fichiers là où tu es.

Dans le cas de votre exemple, /maRAMamoi correspondrait a mon image “dépliée”, si j’ai bien compris le truc. A partir de la, la taille de mon initramfs dépend alors des utilitaires que j’ai installé dans mon systeme de fichier ? Y’a-t-il un moyen d’enlever le superflu pour ne garder que les fichiers importants, pour avoir l’initramfs en sortie la moins grosse possible ?
Merci d’avance

[quote=“Raoul”]Dans le cas de votre exemple, /maRAMamoi correspondrait a mon image “dépliée”, si j’ai bien compris le truc.
[/quote]Oui

Ben oui, mais là commence le vrai travail car ça n’est pas simple de voir les fichiers superflus et très rapidement on est amené à faire le boot soit même.

En fait l’intérêt du ramfs est de d’avoir un ramdisk de taille virtuelle énorme, de ne pas avoir besoin d’avoir ext2 dans le noyau (mais c’est idiot de le mettre en module) et de ne pas être enquiquiné quand on arrive à un disque de taille trop petite.

[quote=“fran.b”]
Ben oui, mais là commence le vrai travail car ça n’est pas simple de voir les fichiers superflus et très rapidement on est amené à faire le boot soit même.

En fait l’intérêt du ramfs est de d’avoir un ramdisk de taille virtuelle énorme, de ne pas avoir besoin d’avoir ext2 dans le noyau (mais c’est idiot de le mettre en module) et de ne pas être enquiquiné quand on arrive à un disque de taille trop petite.[/quote]

J’avoue ne pas comprendre cette partie la…
Pourquoi sommes-nous embêtés quand on arrive a un disque de taille trop petite ? Parce qu’il manque des modules ?
Le principe est de partir d’un ramdisk assez important pour n’avoir au final qu’un petit disk ?
Ne pas mettre ext2 dans le noyau pose-t-il des problemes ?
Excusez moi avec mes questions mais je comprends pas :blush:

quote="Raoul"
Pourquoi sommes-nous embêtés quand on arrive a un disque de taille trop petite ? Parce qu’il manque des modules ?[/quote]Aucune idée de ce dont parle fran, mais je pense qu’il parle d’une limitation minimale sur la taille du ramdisk dans la manière dont le noyau le gère.[quote=“Raoul”]Le principe est de partir d’un ramdisk assez important pour n’avoir au final qu’un petit disk ?[/quote]Le principe est de ne mettre dans le ramdisk QUE ce qui est necessaire au noyau pour continuer sur le HD aprés chargement en ram.[quote=“Raoul”]
Ne pas mettre ext2 dans le noyau pose-t-il des problemes ?(…)[/quote]parceque la plupart du temps la racine est en ext, donc le noyau a besoin du module (ou que ce soit en dur dans le noyau) pour continuer le boot aprés déploiement de l’initrd en mêmoire.

[quote=“Raoul”][quote=“fran.b”]
Ben oui, mais là commence le vrai travail car ça n’est pas simple de voir les fichiers superflus et très rapidement on est amené à faire le boot soit même.

En fait l’intérêt du ramfs est de d’avoir un ramdisk de taille virtuelle énorme, de ne pas avoir besoin d’avoir ext2 dans le noyau (mais c’est idiot de le mettre en module) et de ne pas être enquiquiné quand on arrive à un disque de taille trop petite.[/quote]

J’avoue ne pas comprendre cette partie la…
Pourquoi sommes-nous embêtés quand on arrive a un disque de taille trop petite ? Parce qu’il manque des modules ?
[/quote]Je me suis mal exprimé en voulant aller trop vite: Lorsqu’on fait un disque virtuel classique, on doit prévoir sa taille à l’avance. Parfois, on sous estime cette taille et il faut refaire le disque. Voilà.

[quote]
Le principe est de partir d’un ramdisk assez important pour n’avoir au final qu’un petit disk ?
Ne pas mettre ext2 dans le noyau pose-t-il des problemes ?
Excusez moi avec mes questions mais je comprends pas :blush:[/quote]
ext2 est le système fondamental de fichiers, ne pas le mettre en dur est en général se compliquer la vie.

quote="fran.b"
ext2 est le système fondamental de fichiers, ne pas le mettre en dur est en général se compliquer la vie.[/quote]En général, parceque si tu fais par exemple une machine en xfs, c’est le module xfs qu’il faut mettre en dur.
Normalement, si tous les composants nécessaires à l’accés à la racine sont en dur dans le noyau, tu n’as plus besoin d’initrd du tout, puisqu’aprés, le noyau peut charger les modules dont il a besoin qui sont sur le HD.

Merci pour vos réponses, j’ai essayé de générer un initramfs avec

cd /maRAMamoi

find . | cpio --quiet --dereference -o -H newc | gzip -9 > ~/initramfs

mais l’archive faisait plus de 150 mo quand j’ai arreté ! Je verrai tout cela dans la semaine.
Merci encore