Problème boot : mounting /dev/mapper on /rootvol failed

Pour ceux qui suivent mon incroyable parcours, je viens de réinstaller ma Debian par la méthode du “Net install” en utilisant le système LVM pour mes partitions. :slightly_smiling:

Voilà comment est organisé mon DD :

Mon VG se nomme “linux” (vous avez une meilleure idée ?)
et j’ai 5 LV :
linux-0 pour / [2Go]
linux-usr pour /usr [5Go]
linux-root pour /root [5Go]
linux-home pour /home [10 Go]
et swap pour swap [1Go]

Pour pouvoir avoir accès au net, et profiter des derniers avantages du dernier kernel (toujours la même chanson, dsl), je me recompile le dernier noyau stable à savoir le 2.6.20.1.

Il faut savoir que je le compile à la sauce débian :make-kpkg […] mais à la fin, quand je fais dpkg -i kernel-image[…].deb, il me lance une erreur comme quoi impossible de créer initrd et que /dev/mapper/linux-0 n’est pas un bloc périphérique. :frowning:

Je cherche et trouve le fameux lvm2_createinitrd (j’ai eu du mal à le trouver, donc pour ceux qui ne le trouvent pas c’est ICI)

Je crée mon initrd…cool et je modifie mon lilo.conf ainsi :

[code]debian:~# cat /etc/lilo.conf

/etc/lilo.conf

| Don’t forget to run `lilo’ after you make changes to this |

boot=/dev/hda
root=/dev/.static/dev/mapper/linux-0
map=/boot/map
delay=100
prompt
vga=normal

image=/vmlinuz
label=Linux
read-only
initrd=/initrd.img

image=/boot/vmlinuz-2.6.8-3-386
label="Kernel 2.6.8"
initrd=/boot/initrd-lvm2-2.6.8-3-386.gz
append=“root=/dev/ram0 lvm2root=/dev/system/root”

image=/boot/vmlinuz-2.6.20.1
label="Kernel 2.6.20"
initrd=/boot/initrd-lvm2-2.6.20.1.gz
append=“root=/dev/ram0 lvm2root=/dev/.static/dev/mapper/linux-0”[/code]

mais lorsque je reboot en choisissant “Kernel 2.6.20”, j’obtiens :

Freeing unused kernel memory: 248k freed initrd: Remounting / read/write initrd: Mounting /proc initrd: Finding device mapper major and minor numbers (10,) initrd: Activating LVM2 volumes No program "lvm" found for your current version of LVM initrd: Mounting root filesystem /dev/.static/dev/mapper/linux-0 ro mount: Mounting /dev/static/dev/mapper/linux-0 ro on /rootvol failed : No such files or directory \t *FAILED*

et si je boote avec le “Kernel 2.6.8”, le même message apparaît en remplaçant juste “/dev/.static/dev/mapper/linux-0 ro” par “/dev/system/root”. :frowning:

En fait, ça rejoint l’erreur de mkinitrd, il ne sait pas où (dans quel bloc périphérique ?) trouver mes partitions.

C’est bizarre, car mount me dit que / est monté en /dev/mapper/linux-0 (alors que /dev/mapper ne contient que “control”) et avec fdisk il me trouve /dev/.static/dev/mapper/linux-0
comme le montre :

debian:~# mount /dev/mapper/linux-0 on / type ext3 (rw,errors=remount-ro) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw) /dev/mapper/linux-home on /home type ext3 (rw) /dev/mapper/linux-root on /root type ext3 (rw) /dev/mapper/linux-usr on /usr type ext3 (rw) usbfs on /proc/bus/usb type usbfs (rw) tmpfs on /dev type tmpfs (rw,size=10M,mode=0755)

(/ est monté en /dev/mapper/linux-0)

[code]debian:~# fdisk -l /dev/hda

Disk /dev/hda: 300.0 GB, 300090728448 bytes
255 heads, 63 sectors/track, 36483 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hda1 * 1 6079 48829536 8e Linux LVM[/code]

[code]debian:~# fdisk -l /dev/mapper/linux-0

Disk /dev/mapper/linux-0: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/mapper/linux-0 doesn’t contain a valid partition table[/code]

pareil que :

[code]debian:~# fdisk -l /dev/.static/dev/mapper/linux-0

Disk /dev/.static/dev/mapper/linux-0: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/.static/dev/mapper/linux-0 doesn’t contain a valid partition table[/code]

/dev/mapper/linux-0 =? /dev/.static/dev/mapper/linux-0

J’avoue être un peu paumé… :confused:
Comment dois-je modifier mon lilo.conf pour que je puisse démarrer mon nouveau noyau ? :cry:
(j’aurai préféré avoir grub mais chaque chose en son temps…)

Merci à ceux qui tenteront de m’aider :wink:

bon je ne connais pas lvm, mais si je peux aider.

normalement, ton script d’initrd pour lvm aurait dû mettre l’executable lvm dans l’inird. Il faudrait essayer d’ajouter toi même lvm (analyser le script pour voir ce qu’il fait et l’affiner/adapter à ta distrib, peut être, si c’est un script redhat).[quote]initrd: Mounting root filesystem /dev/.static/dev/mapper/linux-0 ro
mount: Mounting /dev/static/dev/mapper/linux-0 ro on /rootvol failed : No such files or directory
\t FAILED[/quote]C’est recopié tel quel le deuxiême /dev/static sans “.”, ou tu as fait une faute en recopiant ?

Mattotop : [quote]normalement, ton script d’initrd pour lvm aurait dû mettre l’executable lvm dans l’inird. Il faudrait essayer d’ajouter toi même lvm (analyser le script pour voir ce qu’il fait et l’affiner/adapter à ta distrib, peut être, si c’est un script redhat).[/quote]

Pour le lvm dans l’initrd, je ne sais pas…
Je pense que le script le fait (une erreur aussi grossière me paraît peu probable) mais peut-être que chez moi…
Quant à l’analyse du script, je veux bien poster quelques bribes du script mais si tu veux le consulter en entier, je t’ai mis le lien complet dans mon post précédent (le fameux ICI)
Enfin, pour ce qui est du script non compatible avec débian, j’ai justement pris le lvm2_createinitrd du répertoire CVS pour qu’il marche avec Debian.
(il se veut universel, non ? Il devrait marcher sur Debian…normalement)

Mattotop :

Honte à moi :blush:, j’ai failli dans mon devoir de recopier ces quelques misérables lignes…
En clair, Oui j’ai oublié le point

Mais qui aurait cru qu’un point aurait pu changer le cours de l’Histoire ... ou de cette phrase. (bon ok, j’arrête)

Passons au script :

[code]echo “$PRE Activating LVM2 volumes”

run a shell if we’re passed lvm2rescue on commandline

grep lvm2rescue /proc/cmdline 1>/dev/null 2>&1
if [ $? -eq 0 ]; then
lvm vgchange --ignorelockingfailure -P -a y
do_shell
else
lvm vgchange --ignorelockingfailure -a y
fi

echo "$PRE Mounting root filesystem $rootvol ro"
mkdir /rootvol
if ! mount -t auto -o ro $rootvol /rootvol; then
echo “\tFAILED”;
do_shell
fi

echo “$PRE Umounting /proc”[/code]

La dernière ligne ne s’affiche pas, le problème se situe dans cette partie là.
Quand j’ouvre une console et si je tappe lvm, j’ai une liste de commandes qui apparaissent dont vgchange.

debian:~# lvm version LVM version: 2.01.04 (2005-02-09) Library version: 1.01.00-ioctl (2005-01-17) Driver version: 4.1.0

Il faut peut-être que je mette à jour quelque chose… :confused:
Tu comprend sûrement mieux ce script que moi…

Ce qui me semble sûr c’est que le $rootvol ou /dev/.static/dev/mapper/linux-0 ne convient pas… pff je suis plus sûr de rien en fait :frowning:

J’ai mis du temps à le comprendre mais je crois que c’était parce que ma partition /boot était sous LVM. :unamused:

Et comme apparemment aucun boot loader ne sait pour l’instant charger une partition boot sur LVM (type 8e si je me souvient bien)… ben ça coinçait. :confused:

Mais lors de l’installation de ma debian par mon CD (netinstall, vieille version qui ne me laissait le choix qu’entre un noyau 2.4.x et 2.6.8-3-386), il a bien fallu que je reboote après avoir partitionné mes disques et donc lilo m’a booté sur du LVM.
En plus, avant de recompiler mon kernel, je bootait dessus sans problème. :slightly_smiling:
Et enfin dernière chose : s’il existe un script pour créer l’initrd avec LVM2, c’est qu’il permet (en principe) de booter sur du LVM, non :question:

Enfin bref, maintenant, j’ai gravé un CD netinstall pour Debian Etch, avec /boot en ext2 (16 Mo) et bien sûr non-LVM.
[quelle galère pour trouver un logiciel qui puisse graver une image ISO sous W$…et freeware]

Donc oui, je suis passé sous Etch; parce que c’est pas si différent, mieux et que la plupart des trucs que je veux sont souvent disponibles en etch et pas en sarge (genre pour ma carte graphique…).

Pour la petite histoire, il est dur d’avoir Debian sans Gnome, juste avec Kde et xorg.
Par contre, avant, j’avais deux petits trucs sympas avec Kde que j’ai plus comme :

  • sur les archives, un petit clic droit et je pouvais faire Extraire ici ou vers… Compresser dans…
  • trois icônes du type Copier / Coller / Couper disponibles près de la barre d’URL

A moins que ça vienne de ma “purge gnoméenne”… :unamused:

Ah et merci encore :wink:

Désolé de t’avoir laché en chemin et heureux que tu aies vu le problême, même si tu as laissé tombé.

[quote]Et enfin dernière chose : s’il existe un script pour créer l’initrd avec LVM2, c’est qu’il permet (en principe) de booter sur du LVM, non[/quote]Non, l’initrd sert à accèder à la racine qui peut être en lvm, mais avant, le bootloader doit charger le noyau depuis /boot (premier blocage si le bootloader ne sait pas accèder au disque), noyau qui doit lui même charger l’initrd (deuxiême blocage puisqu’il n’accède pas encore au lvm sans son initrd). [quote]Pour la petite histoire, il est dur d’avoir Debian sans Gnome, juste avec Kde et xorg.[/quote]Qu’est ce qui t’empêche d’installer gnome ?