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

Re: [Initrd][Grub] Kernel panic



Le boot initrd fonctionne de la façon suivante:

1) Chargement du noyau avec les routines du Bios
2) Chargement d'un fichier donné en paramètre initrd dans le lilo (ou le
grub) par les routines du Bios Ce fichier est une image gzippé d'un
système de fichier monté en /dev/ram0--- à ce stade les routines de
lecture du BIOS s'arrête, si le système a bouté sur un CD ou sur une
disquette, désormais, il ne sait plus le faire que par l'intermédiaire du
noyau ---- 3) L'image zippée du système de fichier (système initrd) est
monté en racine et le programme linuxrc est exécuté 4) A l'issue de
l'éxécution, la racine réelle (donné dans root=...) et qui n'est donc pas
/dev/ram0 est montée, si dans cette racine le repertoire /initrd existe,
le système de fichier de /dev/ram0 est monté sur ce repertoire, sinon il
est démonté 5) le boute continue.

Ce n'est pas ce que tu fais. Eventuellement, tu peux comprimé ton système
de fichiers final sur un fichier boot.gz dd if=/dev/zero of=boot bs=1024
count=4096 mke2fs -F boot
mount -o loop boot /belleroot/
rm -R lost+found/
cp -dpRf boot.src/* /belleroot/
# le repertoire boot.src continet ton arborescence
umount /belleroot/
gzip -9 boot


puis tu tapes la ligne appropriée pour grub, pour lilo, ce serait

APPEND root=/dev/ram0 initrd=boot.gz

tu auras peut être la main mais tu seras en fait dans le processus de
l'initrd.... De plus, je doute que tout tienne sur une disquette...

PS: Ceci est une explication de comment j'ai compris et manipulé (avec
succès pour le moment) l'initrd, il y a peut être des possibilités que
j'ignore...

François Boisson

On Sat, 6 Sep 2003 15:51:03 +0200
Sylvain Briole <sbriole@free.fr> wrote:

> Bonjour à tou(te)s,
> 
> (message également posté sur fr.comp.os.linux.configuration)
> 
> Je suis en train de me battre âprement avec Grub et Initrd pour une
> création de disquette de boot.
> 
> RTFM : j'ai lu le Disk-Encryption HOWTO, le BootDisk HOWTO, ainsi que le
> fichier initrd.txt contenu dans la doc du noyau.
> 
> Mon désir : créer une disquette de boot pour monter en loopback un
> fichier root.img qui se trouve sur une partition NTFS afin de m'en
> servir comme "/" de mon système.
> 
> Le système sur laquelle je la prépare : Debian stable Woody 3.0r1
> 
> J'ai procédé de la sorte :
> 
> mkdir /floppy
> mkdir /floppy_initrd
> 
> mkfs.ext2 /dev/fd0
> mount /dev/fd0 /floppy
> cd /floppy
> mkdir boot
> cp /monjolinoyau boot/vmlinuz
> grub-install --root-directory=. /dev/fd0
> 
> j'ai ensuite créé un fichier boot/grub/menu.lst de la sorte
> 
> title test
> kernel /boot/vmlinuz root=/dev/ram0 init=/linuxrc
> initrd /boot/initrd
> 
> ensuite, j'ai effectué les opérations suivantes :
> 
> cd boot
> dd if=zero of=initrd bs=300k count=1
> mkfs.ext2 -F -m0 -b 1024 initrd
> mount -o loop initrd /floppy_initrd
> mkdir -p /floppy_initrd/{dev,bin,lib,usr/sbin,sbin}
> cp -a /dev/{console,fd0,hda,hda1} /floppy_initrd/dev
> cp -a /dev/{loop0,loop1,tty,ram,ram0} /floppy_initrd/dev
> cp -a /bin/{mount,sh,umount} /floppy_initrd/bin
> cp -a /sbin/{losetup,pivot_root} /floppy_initrd/sbin
> cp -a /usr/sbin/chroot /floppy_initrd/usr/sbin
> cp -a /lib/{ld-linux.so.2,libc.so.6} /floppy_initrd/lib
> cp -a /lib/{libdl.so.2,libncurses.so.5} /floppy_initrd/lib
> cd /floppy_initrd
> ln -sf bin/sh ./linuxrc
> cd /
> umount /floppy_initrd
> umount /floppy
> 
> Je prends ensuite ma disquette ainsi créé, la place dans la machine sur
> laquelle je veux l'utiliser.
> La machine boote directement, grub se charge, me propose le menu avec
> l'entrée "test".
> Tout va bien, je sélectionne "test" et valide.
> 
> Booting 'test'
> kernel /boot/vmlinuz root=/dev/ram0 init=/linuxrc
>    [Linux-bzImage, setup=0x1400, size=0xc27c1]
> initrd /boot/initrd
>    bla bla....
> 
> Puis le kernel boote, et enfin, je reçois la superbe ligne tant de fois
> présente dans les archives des groupes sur initrd :
> 
> [...]
> VFS: Mounted root (ext2 filesystem).
> Freeing unused kernel memory: 248k freed
> Kernel panic: No init found.  Try passing init= option to kernel.
> 
> Gasp.
> 
> J'en perds mon latin.
> 
> Une idée d'où je me suis planté?
> 
> Merci par avance pour votre aide, 8h que je tourne et je vire sur cette
> installation! :-(
> 
> A+,
> 
> Eclice.
> 
> 
> -- 
> Sylvain Briole (a.k.a. Eclice)
> E-Technik Doktorand / München
> EMail : sbriole (à) free.fr
> 
> 
> -- 
> Pensez à lire la FAQ de la liste avant de poser une question :
> http://savannah.nongnu.org/download/debfr-faq/html/
> 
> To UNSUBSCRIBE, email to debian-user-french-request@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact
> listmaster@lists.debian.org
> 



Reply to: