FreeBSD 10 não inicializa a raiz ZFS após falha de energia

3

Durante a instalação de novo hardware hoje, desconectei involuntariamente a energia de um de nossos servidores. Este servidor está executando o FreeBSD 10 com Root-on-ZFS como oferecido pelo instalador. Ele tem um total de 36 discos, distribuídos em dois RAID-Z2 que pertencem ao mesmo pool (chamado zroot ).

Depois de ligar o servidor novamente, ele não será mais inicializado. Antes do menu de inicialização aparecer, as seguintes mensagens são impressas:

Loading /boot/defaults/loader.conf ZFS: i/o error - all block copies unavailable Warning: error reading file /boot/loader.conf

Apesar dessas mensagens, o sistema continua a inicializar o kernel até que ele pare em um prompt mountfrom> e não consigo fazer isso continuar. Se eu inserir zfs:zroot/ROOT/default , ele diz apenas unknown filesystem .

No entanto, posso inicializar a partir de um pendrive USB, importar o zpool e posso ler os dois /boot/defaults/loader.conf e /boot/loader.conf . Na verdade, parece que o zpool está perfeitamente bem.

Eu tentei reinstalar o código de inicialização:

gpart bootcode -b /tmp/zroot/boot/pmbr -p /boot/gptzfsboot -i 1 da0

Eu tentei recriar o arquivo de cache zpool:

zpool set cachefile=/tmp/zroot/boot/zfs/zpool.cache zroot

Eu tentei dizer manualmente ao bootloader para carregar o módulo ZFS.

Todas essas tentativas ainda resultaram no mesmo comportamento e agora estou completamente presa no que eu poderia fazer para fazer o sistema reinicializar novamente.

Editar:

Saída de zpool list :

$ zpool list
NAME    SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
zroot  97.8T  28.0T  69.7T    28%  1.33x  ONLINE  /tmp/zfs

Atualmente, o sistema é inicializado a partir de um pen drive USB, portanto, não consegui importar o pool para /

Conteúdo de /boot/loader.conf :

$ cat /boot/loader.conf
zfs_load="YES"
ipmi_load="YES"

Editar 2:

$ zpool status
  pool: zroot
 state: ONLINE
  scan:
config:

    NAME                                            STATE     READ WRITE CKSUM
    zroot                                           ONLINE       0     0     0
      raidz2-0                                      ONLINE       0     0     0
        gptid/f8c57b3a-083e-11e4-b11b-002590e745f4  ONLINE       0     0     0
        gptid/f97b7e8b-083e-11e4-b11b-002590e745f4  ONLINE       0     0     0
        gptid/fa3c41d9-083e-11e4-b11b-002590e745f4  ONLINE       0     0     0
        gptid/faf62101-083e-11e4-b11b-002590e745f4  ONLINE       0     0     0
        gptid/fbb19e1b-083e-11e4-b11b-002590e745f4  ONLINE       0     0     0
        gptid/fc6b75db-083e-11e4-b11b-002590e745f4  ONLINE       0     0     0
        gptid/fd26cd36-083e-11e4-b11b-002590e745f4  ONLINE       0     0     0
        gptid/fddb4b8e-083e-11e4-b11b-002590e745f4  ONLINE       0     0     0
        gptid/fe9a55f6-083e-11e4-b11b-002590e745f4  ONLINE       0     0     0
        gptid/ff582110-083e-11e4-b11b-002590e745f4  ONLINE       0     0     0
        gptid/001713d1-083f-11e4-b11b-002590e745f4  ONLINE       0     0     0
        gptid/00d90b6c-083f-11e4-b11b-002590e745f4  ONLINE       0     0     0
        gptid/0192be91-083f-11e4-b11b-002590e745f4  ONLINE       0     0     0
        gptid/023ea058-083f-11e4-b11b-002590e745f4  ONLINE       0     0     0
        gptid/02fb8ee4-083f-11e4-b11b-002590e745f4  ONLINE       0     0     0
        gptid/03ab78ec-083f-11e4-b11b-002590e745f4  ONLINE       0     0     0
        gptid/04632542-083f-11e4-b11b-002590e745f4  ONLINE       0     0     0
        gptid/052144fd-083f-11e4-b11b-002590e745f4  ONLINE       0     0     0
      raidz2-1                                      ONLINE       0     0     0
        da18                                        ONLINE       0     0     0
        da19                                        ONLINE       0     0     0
        da20                                        ONLINE       0     0     0
        da21                                        ONLINE       0     0     0
        da22                                        ONLINE       0     0     0
        da23                                        ONLINE       0     0     0
        da24                                        ONLINE       0     0     0
        da25                                        ONLINE       0     0     0
        da26                                        ONLINE       0     0     0
        da27                                        ONLINE       0     0     0
        da28                                        ONLINE       0     0     0
        da29                                        ONLINE       0     0     0
        da30                                        ONLINE       0     0     0
        da31                                        ONLINE       0     0     0
        da32                                        ONLINE       0     0     0
        da33                                        ONLINE       0     0     0
        da34                                        ONLINE       0     0     0
        da35                                        ONLINE       0     0     0

errors: No known data errors
    
por Sarek 31.07.2014 / 19:05

2 respostas

3

Ok, não importa o que eu disse na minha outra resposta. Você não poderá inicializar no modo de usuário único se estiver tendo problemas com as partições do ZFS de qualquer maneira. O que é engraçado é depois que eu postei minha resposta, eu tive um problema com a energia novamente e não consegui inicializar no meu sistema, assim como o seu problema.

Então aqui está o que eu fiz para voltar.

Eu usei um CD FreeBSD 10.0-RELEASE ao vivo (eu acho que bootonly - para minimizar o download)

  1. Inicialize no CD e escolha "Live CD" nas opções. (faça o login como root )
  2. Execute os seguintes comandos para anexar partições usando geli ; você teria que digitar sua frase secreta se tiver uma configuração de criptografia de disco rígido root-on-ZFS

     mkdir /tmp/bootpool
     zpool import -f bootpool
     zfs set mountpoint=/tmp/bootpool bootpool
     zfs mount -a
     cp /tmp/bootpool/boot/encryption.key /tmp/
     zfs umount -a
     zfs set mountpoint=/bootpool bootpool
     zpool export bootpool
     geli attach -k /tmp/encryption.key /dev/ada0p4
     zpool import -f -R /mnt zroot
    

Eu tive que zpool import com -f sinalizador porque o problema de desligamento não foi export da partição no caminho certo.

Depois de executar esses comandos, eu reiniciei e o sistema ficou online novamente.

No entanto, tive outro problema com bootpool não carregando corretamente após a inicialização.

A pasta /boot estava vazia, também era um link simbólico para o diretório /bootpool/boot . Eu também descobri que ao importar a partição zfs bootpool, ela criava /bootpool/boot/boot , então o problema era as pastas 2 boot sob /bootpool .

Então eu fiz isso depois de reboot para carregar o bootpool manualmente.

      zpool export bootpool
      zpool import -f bootpool
      (cd to root and remove the old symbolic link 'boot')
      cd /
      rm boot
      (notice the double 'boot' directory issue)
      ln -sf bootpool/boot/boot/

É isso e o link simbólico / boot funcionou de novo e eu pude carregar os módulos do kernel que estão faltando, por exemplo, kldload linux ou qualquer outra coisa.

Espero que ajude, e se alguém souber uma solução limpa para o problema do bootpool acima, por favor, compartilhe comigo.

Obrigado,

Draco

Referências:

por 18.09.2014 / 12:31
1

Já tentou inicializar no modo de usuário único e forçar a montagem de partições ZFS?

# zfs mount -a

Eu experimentei uma falha de energia no meu FreeBSD 10 (que também é Root-on-ZFS) e consegui fazer com que ele inicializasse usando o comando acima.

Deixe-me saber como é isso.

    
por 16.09.2014 / 06:28