28 votes

Comment changer le nom d'un périphérique MD (mdadm)

Voici la sortie de mdadm -Esv:

ARRAY /dev/md127 niveau=raid0 num-devices=2 UUID=d89d9d45:9a420812:c44c77eb:7ee19756 devices=/dev/sdb8,/dev/sda8

Il s'agit d'un array v0.90. La question est la suivante : comment mdadm attribue-t-il le nom à un périphérique correspondant, où le stocke-t-il et comment peut-on le changer ?

Ce que je veux accomplir est de renommer md127 en quelque chose de différent à mon goût.

36voto

haimg Points 21323

Avertissement: Veuillez faire une sauvegarde avant de suivre les conseils donnés ici :-)

Option #1:

Modifier /etc/mdadm.conf:

ARRAY /dev/md1 level=raid0 num-devices=2 UUID=d89d9d45:9a420812:c44c77eb:7ee19756 devices=/dev/sdb8,/dev/sda8

J'ai simplement saisi votre propre sortie et changé 127 en 1. Redémarrez et cela devrait être md1 maintenant.

Option #2:

Si vous n'avez pas de mdadm.conf et que vous voulez qu'il se monte en md1 de manière automatique, vous pouvez faire ceci:

mdadm a un concept de "minor préféré". Par exemple, une fois qu'un certain numéro mineur est attribué à un tableau, et stocké dans le super-bloc, il sera utilisé à chaque fois que ce tableau est auto-assemblé. Vérifiez ceci:

mdadm --detail /dev/md127

S'il indique "Preferred Minor : 127" ceci est votre problème. Vous devez mettre à jour le minor préféré. Comment faire:

Vous ne pouvez pas simplement changer le minor préféré. Vous devez démarrer en mode de récupération ou en mode utilisateur unique si c'est votre périphérique racine, démonter le système de fichiers, après cela:

mdadm --stop /dev/md127
mdadm --assemble --update=super-minor /dev/md1 /dev/sdb8 /dev/sda8

Ensuite, vous aurez votre md127 assemblé en tant que md1. Et il devrait rester ainsi à l'avenir aussi.

Avec les tableaux 1.x:

Les tableaux plus récents ne stockent pas de numéro de 'Minor préféré' et ne prennent pas en charge "--update=super-minor". Au lieu de cela, ils stockent un nom qui peut être changé avec:

mdadm --stop /dev/md127
mdadm --assemble --update=name --name=2 /dev/md1 /dev/sdb8 /dev/sda8

Ou vous pouvez spécifier 'hostname:2' pour garder tout cohérent avec les autres tableaux (recherchez le nom actuel avec --detail).

14voto

Sparky1 Points 113

Juste pour ajouter à l'excellente réponse de haimg. Il peut arriver que même avec un fichier mdadm.conf, le système (au moins pour Ubuntu) assemble toujours automatiquement les tableaux avant de lire mdadm.conf. Donc, quand il le trouve, il ignore simplement les tableaux qui viennent d'être assemblés de toute façon.

Pour prendre cela en compte, exécutez sudo update-initramfs -u pour régénérer le bon initrd.

Liens pertinents: http://ubuntuforums.org/showthread.php?t=1764861%29%3a

4voto

Areeb Soo Yasir Points 235

Aucune des autres réponses n'a fonctionné pour moi, mais sous Centos j'ai utilisé le guide suivant. Le problème est que /etc/mdadm.conf n'est pas vraiment utilisé au démarrage et ne se met à jour que lorsqu'un nouveau noyau est installé ou lorsqu'un initramfs est recréé manuellement. Donc essentiellement, vous avez juste besoin de:

dracut --force

source: http://realtechtalk.com/mdadm_change_wrong_device_name_md127_fix_and_solution_in_Linux-1783-articles

2voto

Les superblocks de la version 0.9 n'ont pas de nom, ils ont été introduits dans la version 1. /dev/md127 n'est pas le nom du tableau, c'est le nom du fichier de périphérique du tableau, ce qui est une conséquence directe du numéro mineur du périphérique de bloc raid. Ce numéro mineur est choisi de manière plutôt arbitraire lorsque le tableau est assemblé.

L'UUID fournit un identifiant unique pour le tableau, si vous en avez besoin. Si vous préférez un nom lisible par l'homme ou structuré, placez un volume physique LVM dans le tableau.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X