OVH Cloud OVH Cloud

Demarrage avec ramdisk (initrd)?

11 réponses
Avatar
thierry
Salut,
j'aurait besoin de savoir dans le détail comment boote une noyau
utilisant un init ramdrive.
Ce que j'ai compris :
- le loader charge en mémoire l'image du ramdrive
- le loader charge en mémoire l'image du noyau
- le noyau est lancé
- le noyau décompresse l'image du ramdrive (première question comment il
sait ou elle est?)
- le noyau monte le SF ramdrive (comment il sait sur quelle device il
est?)

Mon problème :
j'ai une disquette de boot, avec un ramdrive dessus.
- le ramdrive et le noyau sont chargés ;
- le noyau commence à monter
- VFS m'envoie un kernel panic comme il peut pas monter device 08:42
(alors que ca devrai être le ramdrive qui doit être monté).

Merci.
A+

--
Pour contacter l'équipe de modération : moderateurs-fcolm@efrei.fr
ATTENTION: Postez DIRECTEMENT vos articles dans le groupe, PAS dans
la liste de distribution des modérateurs.

10 réponses

1 2
Avatar
Wald Sébastien
Bonjour,
il te faut préciser dans la configuration de ton "boot loader" (lilo ou
grub) où se trouve le "ramdisk"...
Par exemple dans mon lilo.conf, j'ai :
initrd=/boot/initrd

Comment détecte-t-il le lecteur où se trouve le répertoire boot ?
Simple, il y a la ligne root=/dev/hda dans lilo.conf...

Cordialement.
--
Sébastien WALD
___________________________________________________
Membre Mirabellug
Président BLAINVINUX (Blainville et ses environs)
Militant pour les logiciels libres
___________________________________________________
Téléphone : 03-83-75-91-74
Adresse Internet :
Site Internet : http://sebastw.free.fr
Avatar
Brieuc Jeunhomme
Mon problème :
j'ai une disquette de boot, avec un ramdrive dessus.
- le ramdrive et le noyau sont chargés ;
- le noyau commence à monter
- VFS m'envoie un kernel panic comme il peut pas monter device 08:42
(alors que ca devrai être le ramdrive qui doit être monté).


Question naïve, mais as-tu bien mis le support des ramdisks en dur dans
le kernel, et des initial ramdisks (options CONFIG_BLK_DEV_RAM et
CONFIG_BLK_DEV_INITRD) ?

--
BBP

Avatar
Bruno Mathieu
Wald Sébastien a écrit:

Bonjour,
il te faut préciser dans la configuration de ton "boot loader" (lilo ou
grub) où se trouve le "ramdisk"...
Par exemple dans mon lilo.conf, j'ai :
initrd=/boot/initrd

Comment détecte-t-il le lecteur où se trouve le répertoire boot ?
Simple, il y a la ligne root=/dev/hda dans lilo.conf...

Cordialement.


Bonjour,

Si on n'utilise n'y grub ni lilo (un dd if=/boot/bzImage of=/dev/fd0), il
faut utiliser rdev.

# man rdev
Thierry, ces deux documents expliquent le démarrage de ton Linux :
/usr/src/linux/Documentation/initrd.txt
/usr/src/linux/Documentation/ramdisk.txt

--
Bruno

Avatar
thierry
Oui,... malheureusment ca serait simple sinon!
Avatar
thierry
Si on n'utilise n'y grub ni lilo (un dd if=/boot/bzImage of=/dev/fd0), il
faut utiliser rdev.
Pour info, la disquette est réalisée avec Syslinux (mais pas grand chose sur

le net la dessus).

Thierry, ces deux documents expliquent le démarrage de ton Linux :
/usr/src/linux/Documentation/initrd.txt
/usr/src/linux/Documentation/ramdisk.txt
J'ai lu les trucs mais j'arrive pas à comprendre.

Le ramdisk dans lequel est chargé l'image décompressée de initrd, c'est
bien /dev/ram du root (major 1, minor 0 = device 01:00) c'est bien ca?
Alors pq le noyau "kernel panic" en essayant de monter 08:42?

(C'est clair ou pas?)

Avatar
thierry
Wald Sébastien wrote:

Bonjour,
il te faut préciser dans la configuration de ton "boot loader" (lilo ou
grub) où se trouve le "ramdisk"...
Par exemple dans mon lilo.conf, j'ai :
initrd=/boot/initrd

Comment détecte-t-il le lecteur où se trouve le répertoire boot ?
Simple, il y a la ligne root=/dev/hda dans lilo.conf...

Cordialement.


Je vais essayer ...

Avatar
Penguin_X
thierry wrote:
Salut,
j'aurait besoin de savoir dans le détail comment boote une noyau
utilisant un init ramdrive.
Ce que j'ai compris :
- le loader charge en mémoire l'image du ramdrive
- le loader charge en mémoire l'image du noyau
- le noyau est lancé
- le noyau décompresse l'image du ramdrive (première question comment il
sait ou elle est?)
- le noyau monte le SF ramdrive (comment il sait sur quelle device il
est?)

Mon problème :
j'ai une disquette de boot, avec un ramdrive dessus.
- le ramdrive et le noyau sont chargés ;
- le noyau commence à monter
- VFS m'envoie un kernel panic comme il peut pas monter device 08:42
(alors que ca devrai être le ramdrive qui doit être monté).

Merci.
A+

Outch c'est compliquer :


Avatar
Bruno Mathieu
thierry a écrit:

Si on n'utilise n'y grub ni lilo (un dd if=/boot/bzImage of=/dev/fd0), il
faut utiliser rdev.
Pour info, la disquette est réalisée avec Syslinux (mais pas grand chose

sur le net la dessus).

Thierry, ces deux documents expliquent le démarrage de ton Linux :
/usr/src/linux/Documentation/initrd.txt
/usr/src/linux/Documentation/ramdisk.txt
J'ai lu les trucs mais j'arrive pas à comprendre.

Le ramdisk dans lequel est chargé l'image décompressée de initrd, c'est
bien /dev/ram du root (major 1, minor 0 = device 01:00) c'est bien ca?
Alors pq le noyau "kernel panic" en essayant de monter 08:42?

(C'est clair ou pas?)


Bonjour,

Une autre cause de problème, c'est qu'on oublie parfois de compiler en dur
dans le noyau le support du système de fichier du ramdisk. On utilise
souvent minix ou ext2 pour le ramdisk.

Un autre problème que j'ai eu, c'est des disquettes "pourries". Tu peux
surement tester avec http://fabrice.bellard.free.fr/qemu/ ou
http://bochs.sourceforge.net/

On peux aussi commencer à monter un cdrom bootable d'une distrib qui
fonctionne pour étudier la chose (j'ai commencé par le boot d'une slackware
9.1 : syslinux et busybox). D'ailleurs dans busybox, il y a un exemple de
création d'un système basé sus syslinux si mes souvenirs sont bons.

Je crois qu'il faut faire gaffe aussi à la taille du ramdisk.

--
Bruno


Avatar
thierry
Salut,
j'ai trouvé ;-)
En fait, c t la version de ldlinux qui déconnait.
J'ai pris une autre version et la hop tout marche.
(Je sais pas si ca a a voir mais dans la nouvelle version, le noyau est
chargé en mémoire AVANT le initrd)

Merci pour ton aide en tout cas.
A+
Avatar
Bruno Mathieu
thierry a écrit:

En fait, c t la version de ldlinux qui déconnait.


Ah ça aurait du pouvoir se détecter en montant le ramdisk puis en faisant un
chroot dessus. Si ça ça ne marche pas, inutile d'aller plus loin.
# mount ramdisk -o loop /point de montage; chroot /pointdemontage

J'ai pris une autre version et la hop tout marche.
(Je sais pas si ca a a voir mais dans la nouvelle version, le noyau est
chargé en mémoire AVANT le initrd)


J'ai toujours vu les opération se passer dans cet order : chargement du
noyau, décompression, chargement de l'image et décompression, exécution
de /linuxrc...


Merci pour ton aide en tout cas.


Y'a pas d'quoi : Plus y'a d'utilisateurs de Linux, plus y'a de rapports de
bugs et de contributions, meilleures sont les applis. Je m'y retrouve.

--
Bruno

1 2