Atualizando para as versões atuais do software (Ubuntu 14.10):
Grub2 2.02 ~ beta2-15
Eu configurei minhas partições e criei dispositivos md nelas, depois executei o mkfs nelas. Então eu comecei o instalador do Ubuntu (onipresença). (Se você não faz mkfs primeiro, a ubiquity insiste em particionar seus dispositivos md. IDK se o grub manipular uma tabela de partição dentro de um MD em uma partição.)
Com /
(incluindo /boot
) no XFS em um RAID10, f2 de 2 discos, o GRUB não tem problemas para inicializar, mesmo quando o disco está ausente. (Existe atualmente, ou foi, um bug onde o GRUB acha que um RAID10 é inutilizável se estiver faltando dois dispositivos, sem verificar QUEM dois dispositivos estão faltando. Portanto, há casos em que o Linux não teria problemas usando um RAID10 degradado, mas a verificação simples do GRUB falhar.)
(Notas do XFS: O grub2 2.02 beta2 NÃO suporta o novo formato de metadados mkfs.xfs -m crc=1
do XFS. Não use isso no sistema de arquivos que inclui /boot
até obter um GRUB com patches.)
Eu testei com um chunksize de 32kiB para meu RAID10, f2 para garantir que vmlinuz e meu initrd não fossem contíguos no disco. Eu não testei com uma configuração que exigiria que o GRUB lesse vários discos para obter um arquivo completo, por isso ainda não sei se isso é suportado. (Eu acho que não embora: eu testei a partir da linha de comando GRUB (depois normal.mod foi carregado, não de um console de recuperação grub).
ls (md/0)
blah blah holds an XFS filesystem
ls (md/1)
<machine reboots instantly>
or booting with only one disk connected:
error: failure reading sector 0xb30 from 'fd0'.
error: disk 'md/1' not found.
(Intel DZ68DB mobo, discos no controlador SATA da mobo (configurado para RAID, não AHCI, caso isso seja importante)) Então eu acho que está procurando uma partição com o UUID correto para completar o RAID0.
Meu RAID10, f2 usou o formato padrão de metadados 1.2 (localizado em 4kiB desde o início da partição). Como o grub entende os dispositivos md atualmente, você não precisa da antiga prática de esconder seu superbloco md no final da partição (o que você poderia obter com o formato 1.0, assim como 0.9 eu acho). O grub também suporta o ddf
ou imsm
(formatos de metadados de ataque do BIOS usados por alguns controladores mobo).
Meus discos tinham tabelas de partição GPT, com uma EF02
partição de inicialização do Bios antes da primeira partição "regular" . (do setor 40 a 2047). O Grub o usa para colocar as coisas necessárias para ler RAID e XFS, mas isso não se encaixa no setor de boot do 512B.
Não RAID suas partições de inicialização bios. Você precisa grub-install
each /dev/sdX
independentemente, assim você pode inicializar qualquer um dos seus discos. Fazer isso também grava o que o grub precisa na partição de inicialização do BIOS nesse disco. update-grub
não toca na partição de inicialização do bios, apenas reconstrói o menu e o initrd a partir dos arquivos de configuração. Apenas grub-install
toca na partição de inicialização e, como eu disse, precisa ser executado em cada disco de qualquer maneira.
Teste realmente inicializando com um HD removido:
O Ubuntu oferece uma opção interativa para pular os sistemas de arquivos de montagem que não estão disponíveis. (Eu tinha /var/cache
no RAID0). Mas depois de dizer para pular, tudo bem.