web-dev-qa-db-fra.com

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

Voici le résultat de mdadm -Esv :

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

Ceci est un tableau v0.90. La question qui se pose est la suivante: comment mdadm attribue-t-il le nom d'un périphérique en fonction, où le stocke-t-il et comment le change-t-il?

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

22
XXL

Attention : Faites une sauvegarde avant de suivre un conseil donné ici :-)

Option 1:

Éditer /etc/mdadm.conf:

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

Je viens d'entrer votre propre sortie et j'ai changé 127 en 1. Redémarrez et il devrait être maintenant md1.

Option 2:

Si vous n'avez pas mdadm.conf et que vous voulez l'assembler à md1 automatiquement , vous pouvez procéder comme suit:

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

mdadm --detail/dev/md127

Si le message "Preferred Minor: 127" apparaît, c’est votre problème. Vous devez mettre à jour le mineur préféré. Comment faire ceci:

Vous ne pouvez pas simplement changer le mineur préféré. Vous devez démarrer en mode de récupération ou en mode utilisateur unique s'il s'agit de votre périphérique racine, démontez le système de fichiers, puis procédez comme suit:

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

Ensuite, votre md127 sera assemblé en tant que md1. Et cela devrait rester ainsi à l'avenir.

Avec les tableaux 1.x:

Les tableaux les plus récents ne stockent pas de numéro 'Preferred Minor' 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 que tout soit cohérent avec les autres tableaux (recherchez le nom actuel avec --detail).

28
haimg

Juste pour ajouter à l'excellente réponse de haimg. Il peut arriver que même avec un fichier mdadm.conf, le système (du moins pour Ubuntu) puisse toujours assembler automatiquement les tableaux avant de lire le fichier mdadm.conf. Ainsi, lorsqu'il le détecte, il ignore simplement les tableaux qui viennent d'être assemblés.

Pour en tenir 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

11
Wtower

Aucune des autres réponses n'a fonctionné pour moi, mais dans Centos, j'ai utilisé le guide suivant. Le problème est que /etc/mdadm.conf n’est pas vraiment utilisé au démarrage et n’est mis à jour que lorsqu’un nouveau noyau est installé ou lorsque 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

3
Areeb Soo Yasir

Les superblocs 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, mais le nom du fichier de périphérique du tableau, qui est une conséquence directe du numéro mineur du périphérique de bloc raid. Ce nombre mineur est choisi assez arbitrairement lorsque la matrice est assemblée.

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é, insérez un volume physique LVM dans le tableau.

2
Gilles

haimg a parfaitement répondu à cette question et cela a également fonctionné pour moi.

La seule chose que je voudrais ajouter est que sur Centos 7 , vous devez exécuter ' dracut -f 'pour mettre à jour l'initrd. (Certains autres utilisateurs l'ont également souligné, mais je me suis dit qu'il était sage de partager la commande avec vous.

1
Karan Bhalla