Pb RAID 1 / mdadm avec Debian Sarge - Installation - Linux et OS Alternatifs
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  
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 !!
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  
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 
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
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. 
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.
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 
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.
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
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 ?
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  | 
 
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   | 
 
 
Démonter le FS /mnt/md0, mdadm --stop /dev/md0, et rebooter 
 
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.  | 
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. 
Marsh Posté le 01-02-2007 à 11:37:54
alors ca viendrait de lilo ? 
J'ai mis : 
root=/dev/hda 
et boot=/dev/md0 
?
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. 
 
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"
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 !!!!!!
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>  
Marsh Posté le 01-02-2007 à 12:16:17
en éditant tous les fichiers à partir de /mnt/md0 et en faisant un "chroot mkinitrd ..."
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 ? 
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. 
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 ? 
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 ...
Marsh Posté le 01-02-2007 à 14:04:31
oui ca c fait; 
mais je fais chroot mkinitrd 
sans chrooter /mnt/md0 ?
Marsh Posté le 01-02-2007 à 14:23:20
Ne pas oublier de sauvegarder l'ancien fichier initrd ;-)
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 ?
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 ?
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 ! 
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 ?
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
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 !
Si qqu'un peut m'aider !!
Merci !