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 !