[gull] partition root en lvm

Félix Hauri felix at f-hauri.ch
Sat Nov 1 10:07:19 CET 2008


Salut Philippe,

Il est probablement nécessaire de rappeler, surtout quand on joue
avec les unites de disques, partitions et kernels!...
*Je me lave les mains de tout ce qui peut arriver en conséquences*
*d'une mise en oeuvre, correcte ou non, de ce qui suit!!!*

On Thu, Oct 30, 2008 at 11:52:01AM +0100, Philippe Strauss wrote:
> Hello,
> 
> j'ai un serveur ou j'ai du complier un noyau a la main pour un patch dont je me 
> passerai bien, et la machine doit imperativement utiliser lvm (dont je me 
> passerai bien).
LVM est pourtant bien pratique...

> avec le noyau debian standard (4.0r5) elle boot bien, avec mon noyau elle fait 
> une kernel-panic (unable to mount root).
> 
> le bootloader est lilo. Ma question, quel est le mecanisme qui traduit la ligne 
> de config lilo suivante:
> 
> root=/dev/mapper/blahblah-root
> 
> en quelque chose de comprehensible par le noyau?
InitRD utilise la chaine tel quel.

> je suspecte que le probleme se situe ici.
> mon kernel n'utilise pas initrd,
Oui, oui, oui.

> mais les modules du driver scsi et de dm (lvm) 
> sont built-in plutot qu'en module externe.
Du coup, cela devient plus délicat.

La choix de la partition ROOT est ``codée'' dans le kernel
sous la forme de deux valeurs: major et minor, qui correspondent
a ta partition.

la commande ``/usr/sbin/rdev'' (rtfm: 8 rdev;) permet de manipuler
cette config.

Le problème, si ton lvm à été créé sous linux 2.4, est que la
version de lvm n'est plus la même...

Je m'en suis tiré en utilisant un cd debian en mode rescue,
pour observer les numéros de major et minor dans /proc/partitions
puis avec rdev. Me souvient avoir observer une modification du numéro
de major MAIS pas du minor. (+/- 1):

  ``One may also specify the device by a comma-separated  pair
      of  decimal integers major,minor''

Peut-être que l'une des trois lignes qui sortiront de la commande:
$ for i in -1 0 1;do
      stat /dev/mapper/blahblah-root -c 0x%t\ 0x%T |
          xargs printf "%d+$i;%d\n" |
          bc |
          xargs printf "rdev /vmlinux %u,%u\n"
    done

(Peut-être faudra-t-il supprimer la ligne root= de lilo.conf)
A moins que l'utilisation du parametre root avec major+minor
peut t'éviter de jouer avec rdev...

As-tu essayé dans lilo.conf, la syntaxe:
  root="LABEL=MyDisk"
(avec ``tune2fs -L "MyDisk" /dev/mapper/blahblah-root'';)

Bonne chance!

-- 
 Félix Hauri  -  <felix at f-hauri.ch>  -  http://www.f-hauri.ch



More information about the gull mailing list