AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 915156
Accepted
Moshe Katz
Moshe Katz
Asked: 2018-06-05 12:36:56 +0800 CST2018-06-05 12:36:56 +0800 CST 2018-06-05 12:36:56 +0800 CST

Aguarde antes da importação do zpool na inicialização do Ubuntu

  • 772

Instalei o Ubuntu 18.04 em um Dell PowerEdge R720xd usando o ZFS. Há duas unidades de inicialização de 1 TB em uma mirrorconfiguração ZFS. Eu segui as instruções no ZFS no Linux Wiki .

(Observação: meu sistema está usando um adaptador de barramento de host (HBA) LSI LSI LSI00244 (9201-16i) em vez da placa RAID integrada, pois o ZFS e esta placa RAID não se dão bem.)

Ao inicializar o Ubuntu, leva cerca de dez segundos para que as unidades sejam enumeradas pelo sistema (existem 14 unidades - duas para o SO e 12 para armazenamento de dados que serão configuradas em outros zpools posteriormente). No entanto, o processo de inicialização tenta importar o pool de inicialização antes que as unidades tenham sido enumeradas.

Uma mensagem de erro do BusyBox pisca na tela e basicamente diz:

O pool falhou ao importar.

Importe manualmente o pool neste shell BusyBox e digite exitpara continuar o processo de inicialização.

Se eu esperar alguns segundos após essa mensagem, vejo que as 14 unidades são listadas.

Eu digito zpool import rpoolno prompt do BusyBox, que funciona (confirmado com zpool list) e, em seguida, exitpara continuar o processo de inicialização. (Isso leva ao meu próximo problema, uma falha do Kernel, mas essa é uma pergunta separada.)

Tentei adicionar rootdelay=15as opções de inicialização, mas isso não parece funcionar, pois parece querer executar esse atraso após a importação do pool ZFS.

Como posso fazer com que o processo de inicialização aguarde a exibição dos dispositivos antes de tentar importar o pool?

ubuntu
  • 2 2 respostas
  • 4710 Views

2 respostas

  • Voted
  1. Best Answer
    Moshe Katz
    2018-06-05T18:03:45+08:002018-06-05T18:03:45+08:00

    Finalmente encontrei isso em /etc/default/zfs:

    # Wait for this many seconds in the initrd mountroot?
    # This delays startup and should be '0' on most systems. This might help on
    # systems which have their ZFS root on a USB disk that takes just a little
    # longer to be available
    # Only applicable for Debian GNU/Linux {dkms,initramfs}.
    ZFS_INITRD_POST_MODPROBE_SLEEP='0'
    

    Veja como configurá-lo.

    1. Inicialize a partir de um Ubuntu Live CD (ou qualquer outra mídia de recuperação)
    2. Importar o pool para /mntusarzpool import rpool -R /mnt
    3. Vincule os sistemas de arquivos necessáriosmount --rbind /dev /mnt/dev; mount --rbind /proc /mnt/proc; mount --rbind /sys /mnt/sys
    4. Chroot em /mnt:chroot /mnt /bin/bash --login
    5. Edite /etc/default/zfspara alterar o valor acima de 0para15
    6. Executar update-initramfseupdate-grub
    7. Saia do ambiente Chroot e reinicie
    • 12
  2. mpb
    2022-05-20T18:41:28+08:002022-05-20T18:41:28+08:00

    Atualização de 27 de maio de 2022:

    Instalei e executei o Ubuntu 22.04 com ZFS-on-root (e uma /bootpartição ext4).

    No entanto, com base nos problemas que encontrei, recomendo não usar o ZFS-on-root com o Linux.

    Especificamente, parece que: Linux + ZFS-on-root + snapshots (possivelmente também em combinação com montagens e/ou contêineres de ligação) podem resultar em problemas. Mais especificamente: problemas com instantâneos.

    É possível que esses problemas sejam mitigados ou evitados com a criação de um pool ZFS para o sistema de arquivos raiz e um pool ZFS separado para todo o resto. Mas eu não tentei isso.

    Se você quiser tentar executar o ZFS-on-root no Linux, recomendo primeiro pesquisar por problemas abertos e fechados (!) no GitHub para se familiarizar com os problemas que você pode encontrar.

    Os problemas que encontrei parecem ser mencionados nos seguintes relatórios de problemas do GitHub: 816 , 4514 , 9461 , 9479 , 9958 , 10348 , e possivelmente mais .

    Devido a conflitos de licença, o OpenZFS (provavelmente) nunca será mesclado com o kernel do Linux. Conseqüentemente, suspeito que o OpenZFS nunca receberá tantos testes quanto um sistema de arquivos raiz no Linux como os sistemas de arquivos licenciados pela GPL que são construídos diretamente no kernel do Linux (por exemplo, ext4, Btrfs, XFS).


    Resposta original de 20 de maio de 2022:

    A partir do Ubuntu 22.04, adicionar ainda resolve o problema ZFS_INITRD_POST_MODPROBE_SLEEP='15'. /etc/default/zfs(Aparte: no meu caso, eu só precisei 1de um segundo de atraso.)

    No entanto, creio que vale a pena salientar que ambos ...

    • ZFS_INITRD_POST_MODPROBE_SLEEP
    • eZFS_INITRD_PRE_MOUNTROOT_SLEEP

    ... agora estão obsoletos e foram removidos de /etc/default/zfs( note1 , note2 , pull request ).

    A justificativa para a descontinuação é descrita aqui .

    Em poucas palavras, parece que agora existe uma opção de linha de comando do kernelrootdelay=n que deve ser usada.

    Se você quiser ver o script real do initramfs do OpenZFS que usa essas variáveis, está aqui:
    https://github.com/openzfs/zfs/blob/master/contrib/initramfs/scripts/zfs

    • 0

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve