O mdadm não reconhece partições, o kernel do Linux faz. Um array RAID de software não precisa saber ou se importar com o tipo de partição que o disco usa, porque ele usa apenas os dispositivos de bloco que o kernel fornece para as partições. Estou usando arrays do mdadm em discos GPT em vários computadores e eles funcionam bem.
O layout da partição que você descreveu não faz sentido:
/dev/sda
/dev/sda1 <- GPT type partition
/dev/sda1 <- exists within the GPT part, member of md127
/dev/sda2 <- exists within the GPT part, empty
/dev/sdb
/dev/sdb1 <- GPT type partition
/dev/sdb1 <- exists within the GPT part, member of md127
Em particular, parece que você está dizendo que sda2
está localizado em sda1
. As partições não existem em outras partições e a GPT é uma característica do dispositivo de disco inteiro, não de uma partição. Eu acho que o que você realmente quer dizer é:
/dev/sda <- GPT disk
/dev/sda1 <- member of md127
/dev/sda2 <- empty
/dev/sdb <- GPT disk
/dev/sdb1 <- member of md127
No entanto, sua saída blkid
diz que /dev/sda1
atualmente contém um sistema de arquivos Ext4, não um superbloco RAID - não é membro de md127
. Não está claro como esse sistema de arquivos chegou lá, já que você disse que o estava usando como um componente RAID, mas como sua história é longa e cheia de reviravoltas, suspeito que pode ter havido pontos em que coisas aconteceram e você não percebeu aconteceu. Minha sugestão neste momento é:
- Monte a matriz no modo degradado usando apenas
/dev/sdb1
. Verifique se ele contém seus dados. se não, verifique se/dev/sda1
de alguma forma contém um sistema de arquivos intacto com seus dados, caso contrário, espero que você tenha um backup. - Faça um backup de todos os seus dados, se você não tiver um.
- Limpe completamente
/dev/sda
:dd if=/dev/zero of=/dev/sda bs=1M
. Em seguida, usegdisk
para recriar a (s) partição (ões). - Crie um novo array degradado usando apenas uma partição em
sda
. Crie um sistema de arquivos e copie seus dados para ele. - Desmonte a matriz que está usando
sdb1
e limpe completamente/dev/sdb
:dd if=/dev/zero of=/dev/sdb bs=1M
. Em seguida, usegdisk
para recriar a partição. - Adicione
/dev/sdb1
ao novo array e deixe sincronizar.
Quanto à instalação do GRUB, depende se sua máquina suporta EFI (e se você está usando para inicializar). Se você estiver usando o EFI, precisará criar uma partição do sistema EFI em algum lugar; deve ser aproximadamente 100MB, formatado FAT32. Então você instalaria a versão EFI do GRUB. Eu não vou entrar em muitos detalhes sobre isso; Inicialização EFI é um tópico para uma questão separada.
Se você não usar o EFI para inicializar, será necessário fazer uma partição "BIOS Boot" em algum lugar no disco em que você instalará o GRUB. (Este é o código do tipo de partição ef02
in gdisk
.) A partição pode ser pequena; 1MB é suficiente. O GRUB usará isso para armazenar o código de inicialização que teria escrito nos setores 1 a 62 em um disco MBR. (Em um disco MBR, esses setores normalmente não são alocados, já que a primeira partição geralmente começa no setor 63, mas em um disco GPT, a tabela de partição está localizada nessa área.) O GRUB deve notar automaticamente que o disco está sendo instalado contém uma partição de inicialização do BIOS e coloca seu código de inicialização lá em vez de nos setores 1-62.