[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: fabrication de l'initrd (Was: aptitude : aucun espace disponible sur le périphérique)



salut,

l'initrd peut aussi servir à stoker une DSDT (Differentiated System Description Table) lorsque le bios est buggé. Parfois utile pour gérer convenablement l'acpi.

a+

f.


Eric DECORNOD wrote:
Le mardi 30 octobre 2007, Pascal Hambourg a écrit :
 Je n'en sais pas plus, pour moi c'est de la magie noire
Je sais ce qu'est l'initrd et à quoi il sert dans les grandes lignes.
Dsl, je ne voulais pas vexer, c'était pour éclairer la magie noire...

La magie noire, c'est comment il est fabriqué
Elle est construite par initramfs-tools, yaird ou linux-initramfs-tool
(en gros des variantes de mkinitrd)

La configuration de initramfs-tools par ex. est dans /etc/initramfs-tools/
On peux y choisir/spécifier des modules particuliers à charger avant de monter / Par exemple si on veux une / en cryptoloop, il faudra que tout y soit, et peut-être même scripter la demande de la passphrase pour booter...
(on peux même aller très loin et scripter ce que l'on veux.)

La fabrication est faite entre-autre à partir de /usr/share/initramfs-tools.

et ce qu'il fait exactement.
On peux en général en examiner le contenu en la gunzippant et en la montant en loopback. En gros elle est constituée d'un /bin ultra minimal qui permet d'exéctuer le script shell « init¹ » qui devra notament charger les module présents dans l'image. A la fin, elle monte la partition / dans un sous répertoire et puis elle execute pivot_root pour échanger le / (initrd) avec le / (le vrai) ;
et passe la main à /sbin/init qui se chargera d'interprêter /etc/initab

En gros on pourrait la faire soi-même à la main sans trop de difficultés.
Par exemple celle de KNOPPIX est radicalement différente.

¹: /usr/share/initramfs-tools/init

L'initrd est fabriquée lors de la configuration du paquet car son contenu
dépend du matériel.
Ouais, voilà. Pas très rassurant.
Au contraire, c'est ce qui permet à un « stock-kernel » de démarrer sur n'importe quel hardware sans inclure tous les modules du noyau possibles et imaginables (il serait énorme).
Comme cela on charge les modules du noyau dont « on a besoin » pour démarrer.

Je ne compile plus de noyau perso depuis des lustes et lorsque je le fais, je part du .config debian et je laisse tous les modules. Ensuite c'est mkinitramfs fait tout le travail pour moi.

De plus on peux inclure busybox dans l'initrd, comme cela si le boot merde, on dispose de quoi analyser. (les anxieux, peuvent demander à y inclure d'office tout ce qu'il faut pour faire des fsck, badblocks & co.)

Cordialement,



Reply to: