Salut,
J'ai bien compris que le initrd servait à charger les modules nécessaires au démarrage du noyau, souvent afin que celui puisse monter la partition root.
Ce que je comprends pas, c'est comment le noyau trouve le fichier initrd (exemple : /boot/initrd.img), puisque par définition la root n'est pas montée !!!
Si il y en a qui savent, ou qui ont des liens, je suis preneur.
Bon, mon système fonctionne très bien avec la root en ext3 et le le pilote ext3 en module, mais ça m'énerve de ne pas tout comprendre.
Merci
# initrd
Posté par morgendorffer . Évalué à 1.
C'est là ton erreur. Le noyau ne cherche pas un fichier.
Grub/lilo charge initrd en mémoire puis charge le noyau en donnant en paramètre l'adresse de initrd en mémoire. Jamais le noyau va chercher initrd sur un système de fichier.
[^] # Re: initrd
Posté par Julien Lefèvre . Évalué à 1.
Mais comment on fait si on veut pas utiliser lilo ni grub ni aucun gestionnaire de boot ; si on veut juste démarrer à partir de l'image du noyau (en supposant qu'on a qu'un linux et aucun autre système d'exploitation) ?
Bref, la question devient comment démarrer un linux sans aucun gestionnaire de boot.
Est-ce possible ?
[^] # Re: initrd
Posté par doublehp (site web personnel) . Évalué à 1.
Pour info .. initrd a deux utilites:
- tu n as pas de root ... donc tu fais du disk less; alors la les images noyo en initrd peuvent venire d un (disque), CD, reseau ( genre ta carte reseau vas toute seule sur le bon server ... OUI OUI ca existe )
- tu as un root, mais tu ne veux pas ou peux pas mettre le driver de root dans le noyo: le bon driver est alors en module ; l initrd sert alors a charger ce driver.
( cas du RAID, DOC2000 dans l UIB, ou lorsque la carte qui supporte les disques a besoin d une initialisation speciale ... )
Exemple: tu prends une disquette avec un noyo dessus ... juste une disquette ala
cat noyo > /dev/fd0
chez toi ca marche; now imagine que tu as plusieur partitions Linux ... ben ca marche aussi, mais ca boot toujours le meme system .. pourquoi ?
parce que l image du noyo contient des informations sur l emplacement du root !!! je te laisse lire 'man rdev' ...
les arguments de lilo ou grub servent justement a passer outre ces arguments par default; un argument geniale si un jour tu oublies ton mot de passe root:
Linux init=/bin/bash
tu laisse booter, puis
mount -o remount,rw /dev/hda<?> /
password
mount -o remount,ro /dev/hda<?> /
sync
reboot
http://www.tldp.org/HOWTO/BootPrompt-HOWTO.html(...)
[^] # Re: initrd
Posté par morgendorffer . Évalué à 0.
Faut faire un noyau qui n'a pas besoin de initrd ou qui n'a pas besoin de initrd pour accéder à la partition root.
Notes que udev est initialement lancé par initrd. Si pas d'initrd, il faut faire des bidouilles pour que udev marche mais sans être initialement lancé par initrd.
[^] # Re: initrd
Posté par Calim' Héros (site web personnel) . Évalué à 2.
En plus j'ai pas souvenir d'avoir fait des manip monstrueuses pour y arrivé (ebfin j'ai suivi un tuto).
[^] # Re: initrd
Posté par morgendorffer . Évalué à 1.
Non, gentoo fait rien du tout.
T'as un /dev "statique" (pas utile quand on a udev....) avec des périphériques dedans. Donc le noyau peut booter (monter la partition racine) sans udev. Udev qui est soit dans l'initrd soit sur la partition. Donc, sans initrd et sans partition racine tu ne peux pas avoir udev. Point final.
Fais ça :
[root@ici /]# mkdir /tmp/root
[root@ici /]# mount -t --bind / /tmp/root
[root@ici /]# mount --bind / /tmp/root
[root@ici /]# ll /tmp/root/dev/
total 0
[root@ici /]#
Chez moi je n'ai rien. Et toi ?
[^] # Re: initrd
Posté par -=[ silmaril ]=- (site web personnel) . Évalué à 2.
Le noyau n'a pas besoin du /dev pour monter la partition racine (qui je le rappelle dans ce cas contiendrait elle meme le dit /dev ...)
Le bootloader converti les nom de peripherique en code: major:minor.
[^] # Re: initrd
Posté par morgendorffer . Évalué à 0.
[^] # Re: initrd
Posté par Calim' Héros (site web personnel) . Évalué à 2.
eva-01 root # ls -l /tmp/root/dev/ |wc -l
1476
Maintenat je veux bien que tu m'explique parce que je ne suis pas tout.
Le truc dont je suis sur c'est :
- J'ai pas de initrd
- J'ai pas activer le support de devfs dans le kernel
- J'etais en devfs il y a encore 2 semaines
- Ma gentoo ne rale plus (elle a pas aprecier au debut la migration, elle me disais etre concue pour devfs)
[^] # Re: initrd
Posté par morgendorffer . Évalué à 1.
* tu as un /dev statique ( qui est visible dans /tmp/root/dev/ par exemple ) qui te permet de booter sans initrd.
Si j'installe un /dev statique je peux aussi booter dans initrd.
Avoir un /dev statique n'empêche pas d'avoir aussi udev (qui est lancé après le montage de la partition racine par exemple).
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.