Tudo bem, se alguém quiser brincar de deus e fazer milagres, eu estou triste.
Então, eu tive a tarefa de criar um script que encontrasse arquivos com mais de 6 meses, os zipasse e os excluísse. No meu caminho para fazer seu script, executei o seguinte:
find / -type f -mtime -400 ! -mtime -180 | xargs gzip blablabla
E isso deu a CADA ÚNICO ARQUIVO uma extensão .gz. Agora eu desfiz isso assim que notei, mas já era tarde demais. Após a conclusão do comando, nenhum dos meus comandos bash funcionaria porque a variável $ PATH se esvaziou. Eu tentei muitas coisas antes de perceber qual era o problema.
Então, descompacte tudo que ainda não consigo inicializar. Consegui fazer o grub rescue, após o qual segui as instruções on-line para:
root (hd0,0)
setup (hd0)
kernel (hd0,0)/boot/vml[...]
initrd (hd0,0)/boot/initrd.im[...]
Depois do qual meu linux inicializa parcialmente, mas me dá os seguintes erros:
Begin : Running /scripts/init-bottom ... mount : mounting /dev on /root/dev failed : No such file or directory
mount: mounting /sys/ on /root/sys failed: No such file or directory
mount: mounting /proc on /root/proc failed : No such file or directory
Target filesystem doesn't have requrested /sbin/init.
No init found. Try passing init= bootarg.
Eu tentei reparar o sistema de arquivos, eu inicializei a partir de 3 diferentes discos LiveCDs / Rescue, executei o reparo de inicialização a partir de 2 diferentes dicsc. Eu forcei fscks ...
Estou realmente sem idéias e PRECISO que esse servidor seja inicializado pelo menos para que eu possa recuperar meus bancos de dados SQL. Estou desesperado por ajuda, vou pagar, se necessário.
Venho espreitando fóruns há 3 dias seguidos o dia todo para encontrar uma solução possível e ainda estou no mesmo ponto ... Ajuda por favor?
because of version differences,
reinstale com a mesma versão exata.we have corruption issues,
seus dados podem estar corrompidos. Reparar o sistema para que ele possa ser inicializado não ajudará se os dados tiverem sido lixeira. Se o seu comando gzip compactou os arquivos do banco de dados enquanto o banco de dados estava sendo usado corrompido, parece inevitável.Respostas:
Isso dependerá se os sistemas de arquivos foram reparados o suficiente para que você possa montar essas partições a partir de um LiveCD. Não se preocupe em tentar inicializar o sistema ainda. Primeiro, monte as partições e descompacte todos os arquivos .gz. Isso fornecerá cópias de trabalho dos binários init e do sistema. Então você pode usar o grub para reparar o setor de inicialização. Em seguida, inicialize no modo de usuário único e fsck o sistema de arquivos novamente. Se isso funcionar, você terá um sistema em execução. Você também terá um monte de arquivos descompactados (como páginas de manual) que realmente devem ser compactados, mas é melhor do que ter um sistema não inicializável.
Se você não pode montar as partições de um LiveCD, infelizmente está sem sorte. Nada recuperará seu sistema nesse momento.
fonte
A primeira coisa que eu tentaria é executar um ambiente LiveCD e apenas tentar descompactar tudo, esperando que retornasse o sistema a um estado inicializável. Nota: Eu ficaria preocupado com a possível corrupção de dados se o processo gzip original fosse interrompido.
Caso contrário, eu tentaria migrar o banco de dados para um novo sistema, conforme sugerido por outros, mas como você encontrou, pode haver problemas de configuração e dependência com muita mão-de-obra que precisam ser resolvidos individualmente.
fonte
O consenso geral aqui, de que você deve apenas montar o disco em um sistema operacional e resgatar seus arquivos, não está errado. É a coisa sensata a se fazer. Mas o outro lado é mais divertido e muito educativo. Aprendi muito enquanto lutava para sair de situações confusas onde outras pessoas simplesmente desistiam e reinstalavam do zero. (Não em um servidor em que outras pessoas estejam dependendo ...)
De qualquer forma, até agora você tem um initramfs (initrd) que é executado. Esse é um bom começo. Mas não pode concluir a transferência para o init porque o init é agora,
init.gz
talvez? Para progredir, ajudaria a saber exatamente qual distribuição do Linux você possui, para que possamos procurar quais ferramentas estão disponíveis em seu initramfs para uso emergencial.As mensagens de erro que você apresentou parecem que poderiam ter vindo do initramfs do Debian. Se for o Debian, você deve ter recebido um
(initramfs)
prompt de shell na próxima linha após o último erro. Se você fez isso, deve analisar o que está acontecendo com essas montagens com falha. está/root/dev
faltando? (/root
é onde o seu root fs normal deve ser montado durante a execução do initramfs)Se você não recebeu o prompt do shell, o que veio depois
No init found. Try passing init= bootarg.
será interessante. Mesmo se não fosse nada além de um cursor piscando, isso é uma pista. Se parecer totalmente congelado, tente obter algumas informações sobre quais processos ainda existem usando magic sysrq ou Ctrl + ScrollLock.O initramfs do Debian também permite que você solicite um shell em alguns marcos especiais adicionando um
break=
parâmetro à linha de comando do kernel. Por exemplo, para obter um shell antes daRunning /scripts/init-bottom
linha, usebreak=bottom
.Além disso: não sei como o
find
comando poderia ter compactado o compactamento de todos os arquivos ... parece correto para mim com o objetivo de selecionar arquivos entre 180 e 400 dias.fonte
break=bottom
?) ... sim, no momento em que ele está tentando montar/root/dev
e/root/proc
e/root/sys
,/root
deve ser o sistema de arquivos raiz real. Deve ter havido uma mensagem de erro anteriormente, sobre a falha em montá-lo. Você incluiu umroot=
parâmetro na linha de comando do kernel? Minha memória está um pouco confusa neste ponto, mas acho que oroot (hd0,0)
just diz ao grub onde encontrar seus arquivos de suporte, e você ainda precisa informar ao kernel separadamente onde está a raiz.(initramfs)
prompt, algo assimmount -r /dev/sda1 /root
?cat /proc/partitions
para ver quais discos estão disponíveis.