Como alterar o nome de um dispositivo MD (mdadm)

17

Aqui está a saída de mdadm -Esv :

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

Este é um array v0.90. A questão é a seguinte: como o mdadm designa o nome para um dispositivo, onde ele é armazenado e como ele é alterado?

O que eu quero realizar é renomear md127 para algo diferente do meu gosto.

    
por XXL 14.10.2011 / 22:49

5 respostas

22

Aviso : Por favor, faça um backup antes de seguir qualquer conselho dado aqui :-)

Opção nº 1:

Edite o /etc/mdadm.conf :

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

Acabei de inserir sua própria saída e alterei 127 para 1. Reinicie e agora deve ser md1.

Opção nº 2:

Se você não tem mdadm.conf , e quer que ele seja montado em md1 automagicamente , você pode fazer isso:

O mdadm tem um conceito de "menor de preferência". Por exemplo. uma vez que um certo número menor seja atribuído a um array e armazenado no superbloco, ele será usado toda vez que esse array for montado automaticamente. Verifique isso:

mdadm --detail /dev/md127

Se disser "Preferred Minor: 127", este é o seu problema. Você precisa atualizar o menor preferido. Como fazer isso:

Você não pode simplesmente alterar o menor preferido. Você precisa inicializar em recuperação ou em modo de usuário único, se este for seu dispositivo raiz, desmonte o sistema de arquivos, depois disso:

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

Então você terá seu md127 montado como md1. E deve continuar assim no futuro também.

com matrizes 1.x:

Matrizes mais recentes não armazenam um número 'Preferred Minor' e não suportam "--update = super-minor". Em vez disso, eles armazenam um nome que pode ser alterado com:

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

Ou você pode especificar 'hostname: 2' para manter tudo consistente com outras matrizes (procure o nome atual com --detail).

    
por 15.10.2011 / 00:27
8

Apenas para adicionar à excelente resposta de haimg. Pode acontecer que, mesmo com um mdadm.conf, o sistema (pelo menos para o Ubuntu) ainda possa montar automaticamente os arrays antes de ler o mdadm.conf. Então, quando ele encontra, simplesmente ignora as matrizes que acabaram de ser montadas.

Para contabilizar isso, execute sudo update-initramfs -u para gerar novamente o initrd adequado.

Links relevantes: link

    
por 22.02.2014 / 20:43
2

Nenhuma das outras respostas funcionou para mim, mas em Centos usei o seguinte guia. O problema é que o /etc/mdadm.conf não é realmente usado no momento da inicialização e só é atualizado quando um novo kernel é instalado ou o initramfs é recriado manualmente. Então, basicamente você só precisa:

dracut --force

fonte: link

    
por 13.12.2016 / 00:51
0

Superblocos da versão 0.9 não têm nome, eles foram introduzidos na versão 1. /dev/md127 não é o nome da matriz, é o nome do arquivo de dispositivo da matriz, que é uma conseqüência direta do dispositivo do bloco de ataque. número menor. Este número menor é escolhido arbitrariamente quando o array é montado.

O UUID fornece um identificador exclusivo para o array, se você precisar de um. Se você preferir um nome legível ou estruturado, coloque um volume físico LVM no array.

    
por 14.10.2011 / 23:27
0

haimg respondeu isso perfeitamente e funcionou para mim também.

A única coisa que gostaria de acrescentar é que no Centos 7 , você tem que executar o dracut -f 'para atualizar o initrd. (alguns outros usuários também apontaram isso, mas eu achei que é sábio compartilhar o comando com vocês.

    
por 19.10.2016 / 20:25