Como dizer ao mdadm para usar uma partição como / em vez de um dispositivo de bloco?

1

Eu tenho quatro discos de 500GB que foram configurados como um volume Linux Software-RAID 5 durante a instalação do Debian (ao lado da unidade do sistema que é um SSD). Uma das unidades (sda) correu mal e agora estou tentando substituí-la e estou tendo alguns problemas.

Depois de remover a unidade defeituosa do array no mdadm, substituí a unidade por outra unidade sobressalente de 500GB que veio com um novo PC comprado. A unidade tinha uma partição NTFS com o Windows (foi imediatamente substituída por um SSD).

A primeira tentativa foi (mais ou menos) errada - o NTFS3G viu a partição e eu pude adicionar o volume NTFS ao array e ele começou a ser reconstruído. Usar o NTFS sob meu RAID definitivamente não era minha intenção, então parei a reconstrução e comecei a reparticionar a unidade.

No começo eu tentei particionar manualmente com fdisk (tamanho máximo, valores padrão, tipo de partição "fd") - não funcionou, mdadm rejeitou sda1. Verificação rápida com fdisk - Start, Blocknumber e End não correspondem - ok, vejo o problema.

A segunda tentativa foi copiar os dados de particionamento de um dos outros discos com "sfdisk -d / dev / sdd | sfdisk / dev / sda". Eu até mesmo zerei o primeiro 512Byte como sfdisk recomendado no final de seus comentários. Comparado os dados de particionamento - início, fim e número de blocos combinados - parece bom.

Mas agora o mdadm me diz que / dev / sda1 não é um dispositivo de bloco e não me permite adicioná-lo. Mas é possível destruir os dados de particionamento em / dev / sda e dar ao mdadm todo o disco e ele será reconstruído, mas isso parece de alguma forma errado agora:

 Number   Major   Minor   RaidDevice State
   4       8        0        0      active sync   /dev/sda
   1       8       17        1      active sync   /dev/sdb1
   2       8       33        2      active sync   /dev/sdc1
   3       8       49        3      active sync   /dev/sdd1

E eu definitivamente não me sinto completamente bem sobre isso, quando o fdisk agora não encontra partições em / dev / sda - No caso de uma falha no sistema, parece ser um pouco mais complicado remontar o array em um sistema diferente quando as unidades inteiras são usadas em vez de partições (veja também: aqui ).

O que eu perdi? Como posso dizer ao mdadm para usar a partição para seu RAID? Ou alguém ainda recomendaria usar as unidades inteiras (e até mesmo converter as outras)? Ou realmente faz mais sentido o que o instalador do Debian fez lá (configurar partições nas unidades completas para criar o RAID fora das partições)?

Espero não ter dado muito texto e muitos detalhes, mas estou um pouco confuso agora que fiz tudo como vários tutoriais recomendados e agora estou me deparando com essas questões básicas ...

Obrigado pela sua ajuda!

    
por Cpt.Bloodner 30.07.2015 / 09:02

2 respostas

0

Primeiro de tudo, eu não acho que haja nada de errado em usar uma unidade completa para o mdadm. Em outras palavras, sua configuração funciona agora, você não terá qualquer vantagem de mexer com isso ainda mais. Da resposta a que você está se referindo:

RAID-on-partition has its uses, but when you're using the drives in a pseudo-storage-pool setup, you're sometimes better off using 'whole drive' instead of 'partition' RAID members.

Agora, se você quiser usar partições de qualquer maneira: O que você fez na primeira vez foi correto, mas parece que o kernel não registrou /dev/sda1 . Ou o kernel não se registrou (apenas reinicie e ele irá resolver a si mesmo) ou você usou o particionamento GPT para as outras unidades (o que o sfdisk não suporta AFAIK - você acabou de copiar o MBR de proteção). Tente novamente com uma ferramenta como gdisk ou gparted.

Você pode remover /dev/sda do ataque (marcar como falho, removê-lo do array), criar um layout de partição sensato (se estiver usando o GPT, use o gdisk ou os favoritos), reinicialize se necessário e adicione /dev/sda1 ao seu array RAID.

    
por 30.07.2015 / 09:29
0

Eu gosto de preencher as unidades usadas com zeros antes de propor novamente o uso do mdadm. Ele torna a fábrica de unidades fresca e evita esses tipos de problemas. Isto irá preencher / dev / sda com zeros ...

dd if=/dev/zero of=/dev/sda bs=1M
    
por 31.07.2015 / 16:58