rm /*
deve excluir muito pouco. Não há nenhum -r
flag que apague recursivamente qualquer coisa, e sem ele os diretórios não serão excluídos (e mesmo se os diretórios forem excluídos, somente os vazios poderão ser excluídos). Esta resposta é baseada na suposição de que você não executou rm -rf /*
.
Os únicos arquivos no sistema de arquivos raiz de conseqüência podem ser os links simbólicos para o kernel e initrd (embora em um sistema Ubuntu eu esteja olhando, eles não existam) ou um /lib64
symlink em sistemas de 64 bits .
O problema pode ser que o link simbólico /lib64 -> /lib
tenha sido excluído. Isso é bem desagradável, já que quase todos os programas dependem desse link:
$ ldd /bin/bash
...
/lib64/ld-linux-x86-64.so.2 (0x00007f8946ab7000)
Esse ld-linux
é o carregador dinâmico e, se não estiver disponível, você não poderá executar nenhum executável dinâmico. Isso tornará extremamente difícil fazer o login, e você pode não conseguir de forma alguma.
Um salvador pode ser busybox
. Execute isto para verificar:
$ ldd /bin/busybox
not a dynamic executable
Neste caso, o busybox deve ser executado, mas a questão é como você pode executá-lo?
Se você tiver acesso ao prompt do boot loader, você poderá inicializar com init=/bin/static-sh
, onde static-sh é um link simbólico para busybox
(verifique se o /bin/static-sh
existe - ele faz no meu sistema, mas não é o padrão do Ubuntu. Esse bug sugere que ele está disponível.
Quando tiver um shell de raiz, você poderá recriar o link simbólico /lib64
. Você pode precisar primeiro remontar o sistema de arquivos raiz como leitura / gravação. O busybox deve ter essas ferramentas incorporadas, que você pode executar da seguinte forma:
# busybox mount -o remount,rw /
# busybox ln -s /lib /lib64
# /bin/bash
bash#
Se o bash funcionar, o problema deve ser corrigido.