Pb RAID 1 / mdadm avec Debian Sarge

Pb RAID 1 / mdadm avec Debian Sarge - Installation - Linux et OS Alternatifs

Marsh Posté le 31-01-2007 à 17:23:01    

J'ai acheté 2 disques de 160 Go pour cloner mon système initialement sur 1 dd de 80 Go.
Je voudrais le mettre intégralement en raid1 avec mdadm.
Les dd de 160 Go hda et hdc cont partitionnés à l'identique:
hda1 20 Go /
hda2 138 Go /home
hda3 swap  
 
Je ne m'occupe pas du /home (hda2/hdc2) pour le moment  
 
J'ai branché 3 dd:  
hda et hdc pour les 160 Go en raid1
hdd 80 Go pour la sauvegarde actuelle (fichiers .dump)
 
J'utilise un knoppix en live cd pour la manip, et je me base sur les infos de ce forum:
http://forum.hardware.fr/hfr/OSAlt [...] 1457_1.htm
 
modprobe md  
modprobe raid1  
 
Pas besoin de passer les partitions en type "fd" (Linux RAID) car elles le sont déjà  
 
mdadm --verbose --create --add /dev/md0 --level=1 --raid-devices=2 /dev/hda1 /dev/hdc1
 
mkfs.ext3 /dev/md0
 
Puis restauration du contenu de "root" une fois que /proc/mdstat me confirme que la synchro est terminée.  
 
mkdir /mnt/md0  
cd /mnt/md0  
mount /dev/hdd1 /mnt/hdd1  
restore rf /mnt/hdd1/backup/backup.dump
 
Je vérifie par  
mdadm -D /dev/md0  
que les 2 disques de md0 sont synchros.  
 
Après, si j'ai bien compris, je renseigne mdadm.conf:
mdadm --detail --scan >> /mnt/md0/etc/mdadm/mdadm.conf
 
Puis je modifie /mnt/md0/etc/fstab en remplaçant /hda1 par /md0
 
Reste /mnt/md0/etc/lilo.conf que je ne sais trop comment modifier.
Actuellement:  
root=/dev/hda
boot=/dev/hda1
Je mets  
root=/dev/hda
boot=/dev/md0
Puis cd /mnt/md0
chroot `pwd`
lilo
 
Puis je redémarre sur hda.. et crash !
 
http://img296.imageshack.us/img296/9573/dsc0272pttd1.jpg
 
Si qqu'un peut m'aider !!
 
Merci !

Reply

Marsh Posté le 31-01-2007 à 17:23:01   

Reply

Marsh Posté le 01-02-2007 à 01:16:39    

Peux tu communiquer le résultat de  
# mdadm --detail /dev/md0
et le contenu de
/etc/mdadm/mdadm.conf  

Reply

Marsh Posté le 01-02-2007 à 09:53:31    

Est-ce que je dois refaire toutes les manips pour reconstruire l'array et remettre le système, une fois le knoppix lancé ou bien existe-t-il une option de mdadm pour voir l'état directement ?
 
Merci pour ta réponse !!

Reply

Marsh Posté le 01-02-2007 à 09:56:22    

NB: /etc/mdadm/mdadm.conf  est vide sous knoppix, une fois que g fait la manip; en fait je ne renseigne que /mnt/md0/etc/mdadm/mdadm.conf avec
mdadm --detail --scan >> /mnt/md0/etc/mdadm/mdadm.conf  

Reply

Marsh Posté le 01-02-2007 à 10:49:03    

Tu peux démarrer un array existant sans renseigner mdadm.conf (par ex depuis un Live CD)
mdadm --assemble /dev/md0 /dev/hda1 /dev/hdc1

Reply

Marsh Posté le 01-02-2007 à 10:50:24    

Ensuite donne le résultat de mdadm --detail /dev/md0  et /mnt/md0/etc/mdadm/mdadm.conf

Reply

Marsh Posté le 01-02-2007 à 11:07:11    

Ben déjà le md0 ne se crée pas spontanément:
mdadm: error opening /dev/md0: No such file or directory
Je le crée avec mknod /dev/md0 b 9 0
Puis:
mdadm --assemble /dev/md0 /dev/hda1 /dev/hdc1
mdadm: /dev/md0 has been started with 2 drives.
-------------------------------------------
cat /proc/mdstat :
Personalities : [raid1]
md0 : active raid1 hda1[0] hdc1[1]
      19534912 blocks [2/2] [UU]
 
unused devices: <none>
-------------------------------------------
cat: /etc/mdadm/mdadm.conf: Aucun fichier ou répertoire de ce type
-------------------------------------------
mdadm --detail /dev/md0
/dev/md0:
        Version : 00.90.03
  Creation Time : Tue Jan 30 19:09:54 2007
     Raid Level : raid1
     Array Size : 19534912 (18.63 GiB 20.00 GB)
    Device Size : 19534912 (18.63 GiB 20.00 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 0
    Persistence : Superblock is persistent
 
    Update Time : Tue Jan 30 20:12:30 2007
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0
 
           UUID : 271ba7bc:701b6562:cb941d7b:420fd8be
         Events : 0.4202
 
    Number   Major   Minor   RaidDevice State
       0       3        1        0      active sync   /dev/hda1
       1      22        1        1      active sync   /dev/hdc1
-------------------------------------------
 
Tout a l'air correct non ?
Par contre, le fichier mdadm.conf ne se crée pas spontanément.

Reply

Marsh Posté le 01-02-2007 à 11:15:29    

Je parle du mdadm.conf que tu as créé précédemment par  
mdadm --detail --scan >> /mnt/md0/etc/mdadm/mdadm.conf  
 
Mais il faut remonter /dev/md0 depuis le Live CD pour le voir maintenant.

Reply

Marsh Posté le 01-02-2007 à 11:17:41    

C ce que j'ai fait (redémarré en live cd et réassemblé l'array)
 
mdadm --detail --scan :
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=271ba7bc:701b6562:cb941d7b:420fd8be

Reply

Marsh Posté le 01-02-2007 à 11:18:14    

Sinon au lieu de faire le mknod manuellement normalement un
MAKEDEV md  
doit faire la même chose (après modprobe md;modprobe raid1 évidemment)
mais chez moi ça ne marchait pas forcément et je faisais aussi le mknod.

Reply

Marsh Posté le 01-02-2007 à 11:18:14   

Reply

Marsh Posté le 01-02-2007 à 11:19:13    

oui, le MAKDEDEV ne fonctionne pas, il crée les périphériques md en static dans /dev/.static/ et non dans /dev

Reply

Marsh Posté le 01-02-2007 à 11:22:52    

Mais initialement, mon système sur le dd 80 Go n'était pas en raid.
Or si j'ai bien compris dans ta discussion http://forum.hardware.fr/hfr/OSAlt [...] 1457_1.htm
le fichier initrd doit avoir dedans l'UUID du raid ?
Or dans mon backup, g un inird du système sans raid sur 80 Go, qui logiquement ne doit pas avoir cet UUID non ?

Reply

Marsh Posté le 01-02-2007 à 11:34:05    

Ajoute une ligne  
DEVICE <liste des partitions qui forment les array>
et ajoute l'option "auto=yes" sur chaque ligne ARRAY

auto=  This  option  declares to mdadm that it should try to create
                  the device file of the array if it doesn't already exist, or
                  exists but with the wrong device number.


Inutile de préciser "level=raid1 num-devices=2" dans mdadm.conf, puisque l'array est créé.
 
Ce qui donnerait chez toi pour /mnt/md0/etc/mdadm/mdadm.conf  , avec /dev/md0 monté évidemment :

DEVICE /dev/hda1 /dev/hdc1  
ARRAY /dev/md0 UUID=271ba7bc:701b6562:cb941d7b:420fd8be auto=yes


 
Démonter le FS /mnt/md0, mdadm --stop /dev/md0, et rebooter
 

Reply

Marsh Posté le 01-02-2007 à 11:36:12    

tlep a écrit :

Mais initialement, mon système sur le dd 80 Go n'était pas en raid.
Or si j'ai bien compris dans ta discussion http://forum.hardware.fr/hfr/OSAlt [...] 1457_1.htm
le fichier initrd doit avoir dedans l'UUID du raid ?

Dans mon cas /boot (contenant le kernel) et root ( / ) étaient sur des partitions distinctes.
Si dans ton cas / et /boot sont dans le même FS tu n'auras peut être pas ce pb.

Reply

Marsh Posté le 01-02-2007 à 11:37:54    

alors ca viendrait de lilo ?
J'ai mis :
root=/dev/hda
et boot=/dev/md0
?

Reply

Marsh Posté le 01-02-2007 à 11:47:00    

Normalement il faut pour lilo:
boot=/dev/md0  
root=/dev/md0
raid-extra-boot=/dev/hda,/dev/hdc
 
L'option "raid-extra-boot" permettant d'écrire le boot loader sur les 2 disques.
 

Reply

Marsh Posté le 01-02-2007 à 11:49:27    

Depuis le live CD après avoir monté /dev/md0 il faudra faire un
lilo -r /mnt/md0
C'est l'équivalent d'un "chroot /mnt/md0; lilo"

Reply

Marsh Posté le 01-02-2007 à 11:50:27    

Ah cool j'essaie çà.

Reply

Marsh Posté le 01-02-2007 à 11:52:05    

Je modifie /mnt/mrd0/etc/lilo.conf
Puis  
cd /mnt/md0/ && chroot `pwd` && lilo  
The boot record of  /dev/md0  has been updated.
The boot record of  /dev/hda  has been updated.
Warning: /dev/hdc is not on the first disk
The boot record of  /dev/hdc  has been updated.
 
et je reboote !!!!!!

Reply

Marsh Posté le 01-02-2007 à 11:56:31    

et m........ çà marche toujours po :-(

Reply

Marsh Posté le 01-02-2007 à 11:58:29    

Quels messages tu as ? les mêmes ?

Reply

Marsh Posté le 01-02-2007 à 12:00:14    

oui exactement pareil

Reply

Marsh Posté le 01-02-2007 à 12:15:11    

En fait il semble bien qu'il faille que l'initrd tienne compte du RAID (je n'ai jamais été confronté au pb car j'ai fait une installation RAID en partant de zéro, c'est donc l'installer de la distrib qui se chargeait de tout)
 
D'après ce que je lis sur le net, il faudrait  
- éditer /etc/mkinitrd/modules pour y ajouter les lignes "md" et "raid1"
- mettre à jour /etc/mkinitrd/mkinitrd.conf avec
ROOT=/dev/md0
- recréer le fichier initrd par mkinitrd -o /boot/<nomdufichier>  

Reply

Marsh Posté le 01-02-2007 à 12:16:17    

en éditant tous les fichiers à partir de /mnt/md0 et en faisant un "chroot mkinitrd ..."

Reply

Marsh Posté le 01-02-2007 à 12:19:05    

comment ca éditer tous les fichiers ?

Reply

Marsh Posté le 01-02-2007 à 12:27:16    

mkinitrd.conf et modules

Reply

Marsh Posté le 01-02-2007 à 12:44:34    

ok j'ai trouvé /mnt/md0/etc/mkinird/mkinird.conf.
Pour modules g le choix entre /mnt/md0/etc/mkinird/modules (vide) et
/mnt/md0/etc/modules (la souris, les ide, mon scanner etc..)
 
J'édite lequel et je mets quoi dedans ?

Reply

Marsh Posté le 01-02-2007 à 13:47:36    

C'est le mkinitrd/modules qu'il faut renseigner, ce seront les modules qui seront chargés dans le ramdisk après le boot du noyau.
Dedans il faut mettre (un par ligne) md, raid1, mais aussi peut être ext2, ext3 également.

Reply

Marsh Posté le 01-02-2007 à 14:01:22    

Ok, donc j'édite /mnt/md0/etc/mkinird/modules, j'ajoute
md  
raid1
ext2
ext3  
chroot mkinitrd
sans chrooter /mnt/md0 ?

Reply

Marsh Posté le 01-02-2007 à 14:03:26    

Au fait il faudra aussi mettre à jour le /etc/fstab dans md0, car on peut espérer que le raid démarre un jour après toutes les manips précédentes ...

Reply

Marsh Posté le 01-02-2007 à 14:04:31    

oui ca c fait;
mais je fais chroot mkinitrd
sans chrooter /mnt/md0 ?

Reply

Marsh Posté le 01-02-2007 à 14:17:16    

Il faut faire un "chroot /mnt/md0 mkinitrd ..."

Reply

Marsh Posté le 01-02-2007 à 14:23:20    

Ne pas oublier de sauvegarder l'ancien fichier initrd ;-)

Reply

Marsh Posté le 01-02-2007 à 14:31:41    

Ok je fais:
cp /mnt/md0/boot/initrd.img-2.6.8-2-386 /mnt/md0/boot/initrd.img-2.6.8-2-386.save
Puis chroot /mnt/md0 mkinitrd
 
Usage: /usr/sbin/mkinitrd [OPTION]... <-o outfile> [version]
 
Options:
  -d confdir  Specify an alternative configuration directory.
  -k          Keep temporary directory used to make the image.
  -m command  Set the command to make an initrd image.
  -o outfile  Write to outfile.
  -r root     Override ROOT setting in mkinitrd.conf.
 
Il faut faire chroot /mnt/md0 mkinitrd -o /mnt/md0/boot/initrd.img-2.6.8-2-386 ?

Reply

Marsh Posté le 01-02-2007 à 14:32:34    

oui c'est ce que je ferais en tout cas.

Reply

Marsh Posté le 01-02-2007 à 14:33:14    

Ah non:
cd /mnt/md0
chroot `pwd`
puis mkinitrd -o /mnt/md0/boot/initrd.img-2.6.8-2-386 ?

Reply

Marsh Posté le 01-02-2007 à 14:33:59    

Normalement les 2 sont équivalents je pense.

Reply

Marsh Posté le 01-02-2007 à 14:39:57    

chroot /mnt/md0 mkinitrd -o /mnt/md0/boot/initrd.img-2.6.8-2-386
 
/usr/sbin/mkinitrd: neither /dev/fd or /proc/self/fd exists!
Try mounting the proc filesystem: mount -tproc none /proc
 
mount -tproc  none /proc
chroot /mnt/md0 mkinitrd -o /mnt/md0/boot/initrd.img-2.6.8-2-386
/usr/sbin/mkinitrd: /lib/modules/2.6.17: Not a directory
/usr/sbin/mkinitrd: MODULES needs to be set to none?
 
Ah ben il fait référence au noyau de la knoppix !

Reply

Marsh Posté le 01-02-2007 à 14:47:29    

faut peut etre que je fasse un lien symbolique de /lib/modules/2.6.17 vers /mnt/md0/lib/modules/2.6.8-2-386 ?

Reply

Marsh Posté le 01-02-2007 à 14:49:05    

Essaye
 
chroot /mnt/md0 mkinitrd -o /mnt/md0/boot/initrd.img-2.6.8-2-386 /lib/modules/2.6.8-2-386
 
où /lib/modules/2.6.8-2-386 est le chemin des modules pour la version sur md0


Message édité par ph75 le 01-02-2007 à 17:55:20
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed