[Résolu] initrd et root sous lvm
Le 01.12.2004 22:06:33, Marc Bobillier a écrit : * Jean-Luc Coulon (f5ibh) [2004-12-01 20:55:37 +]: Oui, xfs est en module, en fait, je n'ai rien changé à ma config noyau qui fonctionne avec le script lvm2create_initrd. Quelles sont les différences entre l'initrd qui fonctionne (celui créé par lvm2create_initrd) et celui qui ne fonctionne pas (celui créé par dpkg -i) ? Autre possibilité : mettre DELAY=10 (par exemple) dans /etc/mkinitrd/mkinitrd.conf J'ai finalement résolu ce problème. Il m'étati dfifficile de comparer l'initrd qui fonctionne et celui proposé par une solution Debian car les structures sont complètement différentes. Après mes essais de l'installeur de cet après-midi, j'ai réussi sans problème à avoir une Sarge qui boote avec l'initrd fourni par la distribution. J'ai donc monté les deux initrd dans le loopback et, avec un peu d'esprit critique, j'ai fait un diff des deux. Je me suis aperçu que dans l'initrd qui ne marchait pas il y avait une ligne comme suit dans /etc/lvm/lvm.conf : library_dir = /lib/lvm2 Ce chemin n'existe ni sur mon système si sur le lvm. En revanche, cette ligne est bien présente dans le :etc/lvm/lvm.conf de mon système. Après l'avoir commentée, le nouvel initrd construit fonctionne parfaitement. Cette valeur fait partie du lvm.conf livré avec le paquet lvm2. Je vais signaler un bogue sur ce problème. -- marc Encore merci Marc pour ton aide Bonnes fêtes à tous Jean-Luc pgpNd22yyX6Fl.pgp Description: PGP signature
Re: initrd et root sous lvm
Le 02.12.2004 21:56:32, Jean-Luc Coulon a écrit : On Thu, Dec 02, 2004 at 09:27:07PM +0100, Marc Bobillier wrote: * Jean-Luc Coulon (f5ibh) [2004-12-02 19:53:29 +]: [ ... ] Et là, je suis pris d'un doute : le support pour devfs est-il nécessaire pour la création d'un initrd à la debian ? Pour le savoir, recompiler avec le support devfs... ;-) Ben oui, c'est ce que je fais. Mais mon bon vieux K6-2 500 est vraiment à la ramasse pour ça (vivement Noël ;-) ) Ainsi ai-je donc fait et là, tous les messages concernant devfs disparaissent mais les autres demeurent. En particulier, il dit : /sbin/init: 358: cannot open bin/root: No such file J'ai ce message lorsque je mets root=/dev/ram0 mais je ne sais pas trop ce que contient ou doit contenir /bin/root à ce moment-là. La ligne 358 de init est read root /bin/root Jean-Luc pgprw5C14boDx.pgp Description: PGP signature
Re: initrd et root sous lvm
Le 01.12.2004 22:06:33, Marc Bobillier a écrit : * Jean-Luc Coulon (f5ibh) [2004-12-01 20:55:37 +]: Oui, xfs est en module, en fait, je n'ai rien changé à ma config noyau qui fonctionne avec le script lvm2create_initrd. Quelles sont les différences entre l'initrd qui fonctionne (celui créé par lvm2create_initrd) et celui qui ne fonctionne pas (celui créé par dpkg -i) ? Une différence essentielle que je n'avais pas remarquée : lvm2create-initrd créé un initrd de type ext2 mkinitrd créé un initrd de type cramfs J'avais bien cramfs dans monn noyau mais en module. Je refais une compilation (long) pour l'insérer en dur. J'ai tenté de créé un initrd ext2 avec mkinitrd (parce qu'il est plus rapide de faire un initrd que de refaire un noyau complet...) mais il échoue avec le message suivant : [EMAIL PROTECTED] # mkinitrd -o initrd.img-2.6.9-k6-6 2.6.9-k6-6 mkfs.ext2: décompte de blocs corrompus - /dev/fd/3 Autre possibilité : mettre DELAY=10 (par exemple) dans /etc/mkinitrd/mkinitrd.conf Ca n'a servi à rien : je n'arrive pas jusque là (apparament) dans ma procédure de boot. -- marc Jean-Luc pgp1wagj1RxIr.pgp Description: PGP signature
Re: initrd et root sous lvm
Le 02.12.2004 13:38:27, Jean-Luc Coulon (f5ibh) a écrit : Le 01.12.2004 22:06:33, Marc Bobillier a écrit : * Jean-Luc Coulon (f5ibh) [2004-12-01 20:55:37 +]: [ ... ] Une différence essentielle que je n'avais pas remarquée : lvm2create-initrd créé un initrd de type ext2 mkinitrd créé un initrd de type cramfs J'avais bien cramfs dans monn noyau mais en module. Je refais une compilation (long) pour l'insérer en dur. Bon, ça ne marche pas mieux. J'ai les mêmes messages d'erreur sauf si je mets root=/dev/ram0. Là le cramfs se charge et le /sbin/init commence à s'exécuter mais il plante rapidement avec des messages comme : initrd-tools: 0.1.74 /sbin/init: 358: cannot open bin/root: No such file umount: Cannot open /proc/mount umount: bin: Invalid argument /sbin§init: 350 cannot create proc/sys/kernel/real-root-dev: Directory nonexistant cat: proc/cmdline: No such file or directory mount: Mounting /devfs on /devfs failed: no such device ... etc .. Et là, je suis pris d'un doute : le support pour devfs est-il nécessaire pour la création d'un initrd à la debian ? J'ai tenté de créé un initrd ext2 avec mkinitrd (parce qu'il est plus rapide de faire un initrd que de refaire un noyau complet...) mais il échoue avec le message suivant : [EMAIL PROTECTED] # mkinitrd -o initrd.img-2.6.9-k6-6 2.6.9-k6-6 mkfs.ext2: décompte de blocs corrompus - /dev/fd/3 Autre possibilité : mettre DELAY=10 (par exemple) dans /etc/mkinitrd/mkinitrd.conf Ca n'a servi à rien : je n'arrive pas jusque là (apparament) dans ma procédure de boot. -- marc Jean-Luc pgpTlcVNsQE1Z.pgp Description: PGP signature
Re: initrd et root sous lvm
* Jean-Luc Coulon (f5ibh) [2004-12-02 19:53:29 +]: Le 02.12.2004 13:38:27, Jean-Luc Coulon (f5ibh) a écrit : J'avais bien cramfs dans monn noyau mais en module. Je refais une compilation (long) pour l'insérer en dur. Bon, ça ne marche pas mieux. J'ai les mêmes messages d'erreur sauf si je mets root=/dev/ram0. Là le cramfs se charge et le /sbin/init commence à s'exécuter mais il plante rapidement avec des messages comme : initrd-tools: 0.1.74 /sbin/init: 358: cannot open bin/root: No such file umount: Cannot open /proc/mount umount: bin: Invalid argument /sbin§init: 350 cannot create proc/sys/kernel/real-root-dev: Directory nonexistant cat: proc/cmdline: No such file or directory mount: Mounting /devfs on /devfs failed: no such device ... etc .. Et là, je suis pris d'un doute : le support pour devfs est-il nécessaire pour la création d'un initrd à la debian ? Pour le savoir, recompiler avec le support devfs... ;-) Sinon, je me demandais aussi si dans le initrd créé il ne manquait pas des libs spécifiques à xfs, vu qu'il y en a pour ext2/ext3. -- marc
Re: initrd et root sous lvm
On Thu, Dec 02, 2004 at 09:27:07PM +0100, Marc Bobillier wrote: * Jean-Luc Coulon (f5ibh) [2004-12-02 19:53:29 +]: Le 02.12.2004 13:38:27, Jean-Luc Coulon (f5ibh) a écrit : J'avais bien cramfs dans monn noyau mais en module. Je refais une compilation (long) pour l'insérer en dur. Bon, ça ne marche pas mieux. J'ai les mêmes messages d'erreur sauf si je mets root=/dev/ram0. Là le cramfs se charge et le /sbin/init commence à s'exécuter mais il plante rapidement avec des messages comme : initrd-tools: 0.1.74 /sbin/init: 358: cannot open bin/root: No such file umount: Cannot open /proc/mount umount: bin: Invalid argument /sbin§init: 350 cannot create proc/sys/kernel/real-root-dev: Directory nonexistant cat: proc/cmdline: No such file or directory mount: Mounting /devfs on /devfs failed: no such device ... etc .. Et là, je suis pris d'un doute : le support pour devfs est-il nécessaire pour la création d'un initrd à la debian ? Pour le savoir, recompiler avec le support devfs... ;-) Ben oui, c'est ce que je fais. Mais mon bon vieux K6-2 500 est vraiment à la ramasse pour ça (vivement Noël ;-) ) Sinon, je me demandais aussi si dans le initrd créé il ne manquait pas des libs spécifiques à xfs, vu qu'il y en a pour ext2/ext3. Je ne pense pas qu'il soit allé jusque là ... -- marc Jean-Luc
Re: initrd et root sous lvm
* Jean-Luc Coulon [2004-11-30 21:09:09 +0100]: Bon, recompile et essais, il ne veut rien savoir J'ai une ligne grub comme ça : root=/dev/mapper/cg00-root_lv rootfs=xfs(mon filesystem est xfs) ^^ Plutôt : rootfstype (mais j'imagine que c'est une coquille) j'obtiens : VFS: cannot open root device mapper/vg00-root_lv or unknown-block(0,0) please append .. etc. il ne tient pas compte du /dev .. est-ce normal ? Etrange en effet... Si je tente de mettre root=/dev/mapper/vg00-root_lv .. (entre ) Alors, il me donne le message : VFS: cannot open root device /dev/mapper/vg00-root_lv or unknown-block(0,0) Il me met une double double quote () .. est-ce normal ? Si je ne mets pas le rootfstype, il ne trouve pas le fs... Est-ce que le support de xfs est en dur dans le noyau ou en module ? Si il est en module, vérifier que l'initrd créé charge ce module : $ mount -o loop /boot/initrd.img-2.6.x /mnt/ $ cat /mnt/loadmodules -- marc
Re: initrd et root sous lvm
Le 01.12.2004 21:32:22, Marc Bobillier a écrit : * Jean-Luc Coulon [2004-11-30 21:09:09 +0100]: Bon, recompile et essais, il ne veut rien savoir J'ai une ligne grub comme ça : root=/dev/mapper/cg00-root_lv rootfs=xfs(mon filesystem est xfs) ^^ Plutôt : rootfstype (mais j'imagine que c'est une coquille) Oui, c'est une coquille : on ne peut pas faire de copier/coller à cette étape du boot ;-) (c'est d'ailleurs dommage) j'obtiens : VFS: cannot open root device mapper/vg00-root_lv or unknown-block(0,0) please append .. etc. il ne tient pas compte du /dev .. est-ce normal ? Etrange en effet... Si je tente de mettre root=/dev/mapper/vg00-root_lv .. (entre ) Alors, il me donne le message : VFS: cannot open root device /dev/mapper/vg00-root_lv or unknown-block(0,0) Il me met une double double quote () .. est-ce normal ? Si je ne mets pas le rootfstype, il ne trouve pas le fs... Est-ce que le support de xfs est en dur dans le noyau ou en module ? Si il est en module, vérifier que l'initrd créé charge ce module : Oui, xfs est en module, en fait, je n'ai rien changé à ma config noyau qui fonctionne avec le script lvm2create_initrd. $ mount -o loop /boot/initrd.img-2.6.x /mnt/ $ cat /mnt/loadmodules [EMAIL PROTECTED] /tmp/initrd # cat loadmodules modprobe -k dm-mod modprobe -k xfs modprobe -k unix 2 /dev/null -- marc pgp5X12ltu6bT.pgp Description: PGP signature
Re: initrd et root sous lvm
* Jean-Luc Coulon (f5ibh) [2004-12-01 20:55:37 +]: Oui, xfs est en module, en fait, je n'ai rien changé à ma config noyau qui fonctionne avec le script lvm2create_initrd. Quelles sont les différences entre l'initrd qui fonctionne (celui créé par lvm2create_initrd) et celui qui ne fonctionne pas (celui créé par dpkg -i) ? Autre possibilité : mettre DELAY=10 (par exemple) dans /etc/mkinitrd/mkinitrd.conf -- marc
Re: initrd et root sous lvm
On Wed, Dec 01, 2004 at 10:06:33PM +0100, Marc Bobillier wrote: * Jean-Luc Coulon (f5ibh) [2004-12-01 20:55:37 +]: Oui, xfs est en module, en fait, je n'ai rien changé à ma config noyau qui fonctionne avec le script lvm2create_initrd. Quelles sont les différences entre l'initrd qui fonctionne (celui créé par lvm2create_initrd) et celui qui ne fonctionne pas (celui créé par dpkg -i) ? C'est construit de manière totalement différente. Par exemple, il n'utilise pas de linuxrc. dans grub, on écrit : root=/dev/ram0 lvm2root=/dev/vg00/root_lv L'arborescence est comme suit : [EMAIL PROTECTED] /tmp/initrd # ls bin/ dev/ etc/ lib/ proc/ sbin/ var/ /bin contient tout busybox /dev .. les devices, directement (pas mapper) /etc comme suit etc |-- lvm | `-- lvm.conf `-- modules avec modules contenant xfs et dm-mod lvm.conf contient un filtre pour le CDROM / graveur lib : tout classique, ne contient dans modules que xfs et dm-mod sbin : init* insmod* modprobe* pivot_root* rmmod* C'est tout Autre possibilité : mettre DELAY=10 (par exemple) dans /etc/mkinitrd/mkinitrd.conf je vais essayer ça, merci -- marc Jean-Luc
Re: initrd et root sous lvm
Le 29.11.2004 23:41:01, Marc Bobillier a écrit : * Jean-Luc Coulon (f5ibh) [2004-11-29 15:01:45 +]: Le 28.11.2004 23:59:16, Leopold BAILLY a écrit : Jean-Luc Coulon (f5ibh) [EMAIL PROTECTED] writes: ... Ca fonctione parfaitement mais c'est dommade d'utiliser les outils Debian et de faire tourner ce script à la main en fin d'installation du noyau. Est-ce quelqu'un a l'expérience de la création de l'initrd pour un fichier racice sous lvm avec les outils Debian ? ... Ce qui est plus difficile à gérer en 2.6 et lvm2, c'est le device qui contient root. ... Dans le cas de lvm2, les devices étant alloués dynamiquement, ce genre de chose n'est plus possible. Le script que je citais travaillais en 2 passe une dans le ram disk et une dan sle monde réel. Ce qui donne, sous grub, quelque chose comme : root=/dev/ram0 lvm2root=/dev/vg00/root_lv Ca fonctionne très bien, mais je n'ai pas trouvé le moyen de faire la même chose avec mkinitrd J'ai un noyau 2.6 compilé avec 'make-kpkg --initrd ...' et la partition root sous LVM2. Le mkinitrd est exécuté automatiquement par dpkg à l'installation du paquet du noyau. Dans le menu.lst de grub : root=/dev/mapper/vg00-root_lv (root=/dev/vg00/root_lv devrait aussi fonctionner, je n'ai pas testé). -- marc Merci pour cette information. Mais il doit encore me manquer quelque chose car j'ai un kernel panic après l'ouverture de l'initrd. Quel est le contenu de votre /etc/mkinitrd/mkinitrd.conf ? Principalement la directive root ? Quels modules avez-vous inclus ? Jean-Luc pgp4onUavQxSr.pgp Description: PGP signature
Re: initrd et root sous lvm
* Jean-Luc Coulon (f5ibh) [2004-11-30 12:06:19 +]: Merci pour cette information. Mais il doit encore me manquer quelque chose car j'ai un kernel panic après l'ouverture de l'initrd. Quel est le contenu de votre /etc/mkinitrd/mkinitrd.conf ? Principalement la directive root ? MODULES=most DELAY=0 ROOT=probe UMASK=022 MKIMAGE='mkcramfs %s %s /dev/null' BUSYBOX=yes PKGSCRIPTS=yes INITRD_LD_LIBRARY_PATH=$LD_LIBRARY_PATH Quels modules avez-vous inclus ? /etc/mkinitrd/modules : fbcon ehci-hcd Le module ehci-hcd doit être chargé sur mon système car il est sur disque dur USB. J'ai aussi pour cette raison dû modifier /usr/sbin/mkinitrd pour rajouter un délai entre le chargement des modules sd_mod et dm-mod car le disque USB met plusieurs secondes a être disponible. (le BUSYBOX=yes c'est pour utiliser sleep dans l'initrd). -- marc
Re: initrd et root sous lvm
On Tue, Nov 30, 2004 at 02:28:26PM +0100, Marc Bobillier wrote: * Jean-Luc Coulon (f5ibh) [2004-11-30 12:06:19 +]: Merci pour cette information. Mais il doit encore me manquer quelque chose car j'ai un kernel panic après l'ouverture de l'initrd. Quel est le contenu de votre /etc/mkinitrd/mkinitrd.conf ? Principalement la directive root ? MODULES=most DELAY=0 ROOT=probe UMASK=022 MKIMAGE='mkcramfs %s %s /dev/null' BUSYBOX=yes PKGSCRIPTS=yes INITRD_LD_LIBRARY_PATH=$LD_LIBRARY_PATH Quels modules avez-vous inclus ? /etc/mkinitrd/modules : fbcon ehci-hcd Le module ehci-hcd doit être chargé sur mon système car il est sur disque dur USB. J'ai aussi pour cette raison dû modifier /usr/sbin/mkinitrd pour rajouter un délai entre le chargement des modules sd_mod et dm-mod car le disque USB met plusieurs secondes a être disponible. (le BUSYBOX=yes c'est pour utiliser sleep dans l'initrd). Bon, recompile et essais, il ne veut rien savoir J'ai une ligne grub comme ça : root=/dev/mapper/cg00-root_lv rootfs=xfs(mon filesystem est xfs) j'obtiens : VFS: cannot open root device mapper/vg00-root_lv or unknown-block(0,0) please append .. etc. il ne tient pas compte du /dev .. est-ce normal ? Si je tente de mettre root=/dev/mapper/vg00-root_lv .. (entre ) Alors, il me donne le message : VFS: cannot open root device /dev/mapper/vg00-root_lv or unknown-block(0,0) Il me met une double double quote () .. est-ce normal ? Si je ne mets pas le rootfstype, il ne trouve pas le fs... Jean-Luc -- marc
Re: initrd et root sous lvm
Le 28.11.2004 23:59:16, Leopold BAILLY a écrit : Jean-Luc Coulon (f5ibh) [EMAIL PROTECTED] writes: Bonjour, J'utilise lvm et mon système de ficheirs racine est sous lvm (de même que le reste, sanuf /boot). Pour créer l'initrd, j'utilise un script que j'ai obtenu sur la liste de diffusion de lvm : lvm2create_initrd de Jeff Layton [EMAIL PROTECTED] http://poochiereds.net/svn/lvm2 Ca fonctione parfaitement mais c'est dommade d'utiliser les outils Debian et de faire tourner ce script à la main en fin d'installation du noyau. Est-ce quelqu'un a l'expérience de la création de l'initrd pour un fichier racice sous lvm avec les outils Debian ? Merci de vos suggestions. J'effectue une sauvegarde complète de ma machine sur un système de fichier unique en LVM+reiserfs sur un disque séparé. J'essaie, quand j'ai le temps, de créer une disquette pour démarrer dessus en cas de pépin. Je pense qu'on peut paramétrer mkinitrd de façon assez fine pour pouvoir créer l'initrd qui va bien, mais je n'ai pas encore réussi. Dans /etc/mkinitrd/, on peut spécifier des modules à inclure et rajouter éventuellement ses propres scripts. pas de roblème pour les modules. Ce qui est plus difficile à gérer en 2.6 et lvm2, c'est le device qui contient root. En 2.4 et lvm1, c'était assez facile, il suffisait de lui donner le major/minor du device root. Par exemple : [EMAIL PROTECTED] ls -l /dev/vg00/ crw-r-1 root disk 109, 0 2004-02-16 13:03 group brw-rw1 root disk 58, 1 2004-02-16 13:03 home_lv brw-rw1 root disk 58, 5 2004-02-16 13:03 opt_lv brw-rw1 root disk 58, 2 2004-02-16 13:03 root_lv brw-rw1 root disk 58, 4 2004-02-16 13:03 usr_lv brw-rw1 root disk 58, 3 2004-02-16 13:03 var_lv donc root se trouve en 58 02, ce qui, traduit en hexa donne 3a02 et donc la ligne root=3a02 permet au système de se débrouiller avec lvm. Dans le cas de lvm2, les devices étant alloués dynamiquement, ce genre de chose n'est plus possible. Le script que je citais travaillais en 2 passe une dans le ram disk et une dan sle monde réel. Ce qui donne, sous grub, quelque chose comme : root=/dev/ram0 lvm2root=/dev/vg00/root_lv Ca fonctionne très bien, mais je n'ai pas trouvé le moyen de faire la même chose avec mkinitrd Léo. Jean-Luc pgpsl12D5YD1H.pgp Description: PGP signature
Re: initrd et root sous lvm
* Jean-Luc Coulon (f5ibh) [2004-11-29 15:01:45 +]: Le 28.11.2004 23:59:16, Leopold BAILLY a écrit : Jean-Luc Coulon (f5ibh) [EMAIL PROTECTED] writes: ... Ca fonctione parfaitement mais c'est dommade d'utiliser les outils Debian et de faire tourner ce script à la main en fin d'installation du noyau. Est-ce quelqu'un a l'expérience de la création de l'initrd pour un fichier racice sous lvm avec les outils Debian ? ... Ce qui est plus difficile à gérer en 2.6 et lvm2, c'est le device qui contient root. ... Dans le cas de lvm2, les devices étant alloués dynamiquement, ce genre de chose n'est plus possible. Le script que je citais travaillais en 2 passe une dans le ram disk et une dan sle monde réel. Ce qui donne, sous grub, quelque chose comme : root=/dev/ram0 lvm2root=/dev/vg00/root_lv Ca fonctionne très bien, mais je n'ai pas trouvé le moyen de faire la même chose avec mkinitrd J'ai un noyau 2.6 compilé avec 'make-kpkg --initrd ...' et la partition root sous LVM2. Le mkinitrd est exécuté automatiquement par dpkg à l'installation du paquet du noyau. Dans le menu.lst de grub : root=/dev/mapper/vg00-root_lv (root=/dev/vg00/root_lv devrait aussi fonctionner, je n'ai pas testé). -- marc
Re: initrd et root sous lvm
Jean-Luc Coulon (f5ibh) [EMAIL PROTECTED] writes: Bonjour, J'utilise lvm et mon système de ficheirs racine est sous lvm (de même que le reste, sanuf /boot). Pour créer l'initrd, j'utilise un script que j'ai obtenu sur la liste de diffusion de lvm : lvm2create_initrd de Jeff Layton [EMAIL PROTECTED] http://poochiereds.net/svn/lvm2 Ca fonctione parfaitement mais c'est dommade d'utiliser les outils Debian et de faire tourner ce script à la main en fin d'installation du noyau. Est-ce quelqu'un a l'expérience de la création de l'initrd pour un fichier racice sous lvm avec les outils Debian ? Merci de vos suggestions. J'effectue une sauvegarde complète de ma machine sur un système de fichier unique en LVM+reiserfs sur un disque séparé. J'essaie, quand j'ai le temps, de créer une disquette pour démarrer dessus en cas de pépin. Je pense qu'on peut paramétrer mkinitrd de façon assez fine pour pouvoir créer l'initrd qui va bien, mais je n'ai pas encore réussi. Dans /etc/mkinitrd/, on peut spécifier des modules à inclure et rajouter éventuellement ses propres scripts. Léo.
initrd et root sous lvm
Bonjour, J'utilise lvm et mon système de ficheirs racine est sous lvm (de même que le reste, sanuf /boot). Pour créer l'initrd, j'utilise un script que j'ai obtenu sur la liste de diffusion de lvm : lvm2create_initrd de Jeff Layton [EMAIL PROTECTED] http://poochiereds.net/svn/lvm2 Ca fonctione parfaitement mais c'est dommade d'utiliser les outils Debian et de faire tourner ce script à la main en fin d'installation du noyau. Est-ce quelqu'un a l'expérience de la création de l'initrd pour un fichier racice sous lvm avec les outils Debian ? Merci de vos suggestions. Jean-Luc pgpg18Hu41Sp6.pgp Description: PGP signature