Basta executar o comando fsck
sem opções de initramfs
e, em seguida, reinicializar
exemplo: a partição raiz é sda3
fsck /dev/sda3
É 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?
Basta executar o comando fsck
sem opções de initramfs
e, em seguida, reinicializar
exemplo: a partição raiz é sda3
fsck /dev/sda3
procedimento normal é
Você pode querer
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:
exec switch_root /mnt/root /sbin/init
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?