OVH Cloud OVH Cloud

mkinitrd / kernel / module question

3 réponses
Avatar
mna
Bonjour,

juste une question qui me tarabuste ...

j'ai une mdk92 et je suis passé d'une partition ext2 à ext3
(montée en /).

par défaut la gestion kernel de l'ext3 est en module donc :

je fait un :

#mkinitrd --preload jbd --preload ext3 initrd.img $(uname -r)

je mets le fichier "image" dans /boot/initrd.img
je modifie mon lilo.conf en conséquence style :

image=/boot/vmlinuz
label="linux"
root=/dev/hda2
initrd=/boot/initrd.img
append="devfs=mount hdd=ide-scsi acpi=off quiet"
vga=788
read-only

je reboot et là surprise ma partition est montée en ext2 avec un
message d'alerte dans la syslog :
kernel: EXT2-fs warning (device ide0(3,2)): ext2_read_super: mounting ext3
filesystem as ext2

Si quelqu'un peut m'expliquer pourquoi le noyau ne load pas le
module ext3 qui se trouve dans l'image RAM du boot je suis preneur.

Je précise que pour solutionner la chose j'ai recompilé le noyau
avec le support ext3 en natif et que ça marche nickel mais
j'aimerai vraiment comprendre pourquoi la solution
modules + preload dans initrd ne fonctionne pas ?
( ça serait la même chose avec des modules "proprio" pour des accès
à du hard particulier )

merci à tous.
mna.

3 réponses

Avatar
Qing Liu
mna writes:

Bonjour,


Bonsoir,

juste une question qui me tarabuste ...

j'ai une mdk92 et je suis passé d'une partition ext2 à ext3
(montée en /).

par défaut la gestion kernel de l'ext3 est en module donc :

je fait un :

#mkinitrd --preload jbd --preload ext3 initrd.img $(uname -r)

je mets le fichier "image" dans /boot/initrd.img
je modifie mon lilo.conf en conséquence style :

image=/boot/vmlinuz
label="linux"
root=/dev/hda2
initrd=/boot/initrd.img
append="devfs=mount hdd=ide-scsi acpi=off quiet"
vgax8
read-only

je reboot et là surprise ma partition est montée en ext2 avec un
message d'alerte dans la syslog :
kernel: EXT2-fs warning (device ide0(3,2)): ext2_read_super: mounting ext3
filesystem as ext2


Questions bêtes: tu as monté ton initrd.img pour voir si les
modules jbd, ext3 y sont et que linuxrc contient bien les
lignes qui chargent ces modules ? Relancé /sbin/lilo ?


--
Liu

Avatar
mna

mna writes:
[...]
Questions bêtes: tu as monté ton initrd.img pour voir si les

modules jbd, ext3 y sont et que linuxrc contient bien les
lignes qui chargent ces modules ? Relancé /sbin/lilo ?


très bonnes questions ;o)

apparement le fichier linuxrc est correct :

#!/bin/nash
echo "Loading jbd.o module"
insmod /lib/jbd.o
echo "Loading ext3.o module"
insmod /lib/ext3.o
echo Mounting /proc filesystem
mount -t proc /proc /proc
echo Creating root device
mkrootdev /dev/root
echo 0x0100 > /proc/sys/kernel/real-root-dev
echo Mounting root filesystem
mount -o defaults --ro -t ext3 /dev/root /sysroot
pivot_root /sysroot /sysroot/initrd
echo Remounting devfs at correct place if necessary
handledevfs
umount /initrd/proc

et le rechargement de lilo à bien été effectué.

ci dessous l'arborescence de l'image initrd.img (montée sous pomme/) :

# ls -R pomme/
pomme/:
bin/ dev/ etc/ lib/ linuxrc* loopfs/ proc/ safedev/ sbin@ sysroot/

pomme/bin:
insmod* modprobe@ nash*

pomme/dev:
console null ram systty tty1 tty2 tty3 tty4

pomme/etc:

pomme/lib:
ext3.o jbd.o

pomme/loopfs:

pomme/proc:

pomme/safedev:

pomme/sysroot:

ca paraît curieux hein .?.


Avatar
Qing Liu
mna writes:


mna writes:
[...]
Questions bêtes: tu as monté ton initrd.img pour voir si les

modules jbd, ext3 y sont et que linuxrc contient bien les
lignes qui chargent ces modules ? Relancé /sbin/lilo ?


très bonnes questions ;o)

apparement le fichier linuxrc est correct :

#!/bin/nash
echo "Loading jbd.o module"
insmod /lib/jbd.o
echo "Loading ext3.o module"
insmod /lib/ext3.o
...

ca paraît curieux hein .?.


Effectivement. Est-ce qu'après le boot, le module ext3
peut être chargé ? Trop tard pour monter / en ext3, mais
c'est juste pour savoir si le module est le bon
(version du noyau courant/sources avec lesquel le module
a été compilé).

--
Liu