Monte o sistema de arquivos raiz a partir do initramfs

11

É um cenário comum. Por alguma razão, o initramfs (OpenSUSE, no caso de ser importante) não conseguiu encontrar o sistema de arquivos raiz, então ele o coloca em um shell de recuperação. Eu sei perfeitamente qual dispositivo precisa ser montado. Minha pergunta:

Qual é o procedimento correto para montar o sistema de arquivos raiz e continuar a seqüência de inicialização?

Presumivelmente, esse é todo o ponto do console de resgate. E, no entanto, ninguém parece ter documentado como você realmente faz isso.

Obviamente eu posso montar o sistema de arquivos raiz em algum lugar. Mas como faço para que a raiz da árvore do sistema de arquivos? E agora continuo o processo de inicialização normal depois disso? (Eu pensei que apenas sair do shell faria isso ... mas isso não acontece.) O que exatamente você precisa para ser montado antes de continuar, e como você continua?

    
por MathematicalOrchid 23.06.2016 / 16:08

4 respostas

3

Basta executar o comando fsck sem opções de initramfs e, em seguida, reinicializar

exemplo: a partição raiz é sda3

fsck /dev/sda3
    
por 07.02.2017 / 09:31
2

procedimento normal é

  1. mount / dev / sdX / mnt
  2. corrigir problema em / mnt
  3. reinicializar

Você pode querer

  1. mount / dev / sdX / mnt
  2. correção / mnt
  3. umount / mnt
  4. mount / dev / sdX /
  5. termine a inicialização manualmente

Isso não é recomendado, você terá que fazer isso em todas as inicializações. Em um ambiente de produção, você não pode ter certeza de que a inicialização manual segue as mesmas etapas que a automática.

No entanto, em uma emergência com dados críticos, a etapa 5 geralmente se resume a:

  • 5.1 configurar rede
  • 5.2 copia arquivo importante para local seguro
por 23.06.2016 / 17:06
2
exec switch_root /mnt/root /sbin/init

link

    
por 21.11.2017 / 09:01
1

Se o parâmetro root= estiver correto e o problema é que o dispositivo necessário não está disponível (por exemplo, porque o initramfs não conseguiu montar um md RAID), basta disponibilizar o dispositivo manualmente, por exemplo:

mdadm --assemble ...

Em seguida, verifique se o dispositivo está lá e se tudo parece bem, pressione ctrl + d ou digite exit para sair do shell initramfs. O initramfs montará o sistema de arquivos raiz e continuará a inicialização como de costume. Depois que o sistema inicializar, você deverá reparar o problema subjacente, por exemplo executando update-initramfs -u .

Ainda não encontrei uma maneira de dizer ao initramfs para inicializar um dispositivo diferente do que o /proc/cmdline diz. Talvez outra pessoa tenha uma ideia?

    
por 24.06.2016 / 13:56