Não consigo inicializar o raid de software mdadm recém-criado no Debian linux squeeze

2

Olá, eu tenho um problema muito estranho ao criar o swraid no Debian Squeeze Linux. Eu comecei a criar o RAID1 a partir da instalação padrão do Debian em uma única unidade. Então eu comprei o novo disco e comecei a seguir este tutorial: link

Tudo correu bem, eu criei raid inicial a partir do novo drive. Então, eu inicializei com êxito essa nova unidade e adicionei minha unidade antiga a essa matriz. Unidade antiga sincronizada com sucesso em raid. E depois de toda a configuração eu estava pronto para a última reinicialização para o meu novo array Raid1. Mas, de repente, a matriz de unidades deseja inicializar. O Grub demora muito para iniciar (imprimindo algumas mensagens de erro sobre o erro de leitura fd0). Quando escolho do menu, o debian começa a carregar muito devagar e pára com a mensagem de que o md0 não foi encontrado. No shell do grub, descobri que existe apenas / dev / md, não / dev / md0 ou / dev / md1.

Depois de muitas horas de testes, finalmente consegui que Raid trabalhasse. Usando o hack grosso.

Eu tive que adicionar:

mdadm -A --auto=md /dev/md0

No lugar certo em:

/usr/share/initramfs-tools/init

e reconstrua o initrd.img do meu kernel

Este comando inicia meu Raid e cria / dev / md0 e / dev / md1.

Mas o seu hack feio e silencioso, e eu não acho que é muito estável. Também pode quebrar no futuro com alguma atualização. Então, minha pergunta é por que eu preciso dessa mudança no script de inicialização? Há algo de ruim com minha matriz? Como consertar isso?

Obrigado por todas as sugestões. Estou quieto desesperado agora demorou a minha noite toda (12 horas). para

    
por Infragile 25.03.2012 / 08:16

2 respostas

3

Ok, então eu encontrei a solução do meu problema inicializando do mdadm Raid1. Estou bastante envergonhado por ter demorado tanto tempo para descobrir isso, porque é um erro bem simples.

Em /etc/default/mdadm , havia seção:

# INITRDSTART:
#   list of arrays (or 'all') to start automatically when the initial ramdisk
#   loads. This list *must* include the array holding your root filesystem. Use
#   'none' to prevent any array from being started from the initial ramdisk.
INITRDSTART='none'

Eu tive que chage para:

INITRDSTART='all'

E então eu poderia remover meu comando personalizado de / usr / share / initramfs-tools / boot do init e do linux sem problemas no meu RAID 1.

    
por 26.03.2012 / 10:08
0

Não há nada errado com sua matriz e é comum alterar uma imagem initrd para ter drivers extras ou outras adaptações para acomodar o processo de inicialização.

O outro truque que você pode usar é que quando você inicia, a maioria dos processos init monta a partição raiz como somente leitura, então você pode apontar para / dev / sda1 ou qualquer designador ligado a uma das partições apropriadas para inicializar, mas quando você gira sua raiz, aponte-a para o dispositivo mdadm. Foi assim que voltei quando tinha um conjunto de drives invadidos por software.

    
por 25.03.2012 / 09:31