O Ubuntu 12.04 trava na inicialização, não monta o array mdadm

2

Eu tenho dois problemas que acredito estarem relacionados. Um vem acontecendo há anos através de múltiplas versões do Ubuntu (pelo menos de 11.10 a 12.04), o outro é novo desde que eu atualizo o kernel.

Primeiro problema primeiro, este é o que está acontecendo há anos. Durante uma inicialização normal, o sistema parecerá travar na tela "roxa", mas na verdade é apenas em um prompt initramfs atrás da tela roxa. Eu normalmente digito "exit" e o boot continua como planejado, carregando no Ubuntu dentro de um segundo ou dois. Eu sempre tive a suspeita de que este jeito era devido a minha configuração novata de uma matriz RAID há alguns anos atrás. Algo deu errado, eu apaguei o array e comecei de novo e na segunda vez tudo estava bem. Mas foi na época em que esse problema começou a acontecer. Eu vivi com isso porque eu só reinicio meu computador algumas vezes por ano. Eu posso viver digitando "exit" algumas vezes por ano ...

Segundo problema, eu atualizei para o Kernel mais recente (algo que eu odeio fazer porque sempre me causa problemas, mas o funileiro em mim insiste que eu recebo as últimas atualizações ...) e agora após o primeiro erro eu digito exit e então o sistema trava mostrando vários avisos, nenhum dos quais eu sinto que tem algo a ver com o problema real, porque nenhum deles é sobre a montagem de / dev / md / 1 (embora tenha começado como / dev / < strong> md1 quando eu criei o array agora é conhecido como / dev / md / 1 ). Se eu alterar meu / etc / fstab para comentar a linha sobre a montagem / dev / md / 1 , tudo será iniciado OK.

Uma vez que o Ubuntu carrega, eu tenho que parar o / dev / md1 (isso é não um erro de digitação) e então mdadm --assemble --scan irá iniciar / dev / md / 1 . Eu então edito meu / etc / fstab para que / dev / md / 1 seja um dispositivo para montar e então execute mount -a

Em nenhum lugar eu posso descobrir porque o / dev / md1 está iniciando, mas / dev / md / 1 não está.

Eu não sei como encontrar os logs das botas anteriores, senão colocaria os avisos que estou vendo durante a inicialização ...

Para inicializar no Ubuntu OK eu vou para um shell de recuperação remontar o sistema de arquivos como leitura / gravação, editar o / etc / fstab para remover a montagem / dev / md / 1 e então continuar com o boot.

    
por jerussell 11.01.2013 / 23:53

1 resposta

1

link Esse link me deu a resposta que eu precisava. Como três das unidades estão em uma placa SAS periférica, as unidades não são carregadas no momento em que o mdadm pesquisa a matriz.

Adicionei sleep 15 da seguinte forma:

degraded_arrays()
  {
       sleep 15
       mdadm --misc --scan --detail --test >/dev/null 2>&1
       return $((! $?))
  }

em /usr/share/initramfs-tools/scripts/mdadm-functions como o link sugere e, em seguida, atualizou o initramfs e agora é inicializado com êxito com o array iniciado e montado corretamente.

    
por jerussell 27.01.2013 / 15:32