Se você ainda tiver um shell de root, poderá ter a chance de reparar seu sistema. Digamos que você moveu todos os diretórios comuns ( /bin , /etc , /lib , /sbin , /usr - esses são os que podem dificultar a recuperação) em /oops .
Você não poderá emitir o comando mv diretamente, mesmo que você especifique o caminho completo /oops/bin/mv . Isso porque mv é dinamicamente vinculado ; porque você moveu o diretório /lib , mv não pode ser executado porque não consegue encontrar as bibliotecas que fazem parte de seu código. Na verdade, é ainda pior do que isso: mv não consegue encontrar o carregador dinâmico /lib/ld-linux.so.2 (o nome pode variar dependendo da sua arquitetura e variante unix, e o diretório pode ser um nome diferente, como /lib32 ou /lib64 ). Portanto, até que você tenha movido o diretório /lib de volta, é necessário chamar o vinculador explicitamente e especificar o caminho para as bibliotecas movidas. Aqui está o comando testado no Debian squeeze i386 (você pode precisar ajustá-lo um pouco para outras distribuições ou arquiteturas).
export LD_LIBRARY_PATH=/oops/lib:/oops/lib/i386-linux-gnu
/oops/lib/ld-linux.so.2 /oops/bin/mv /oops/* /
Quando você errou algo em /lib , ajuda ter uma caixa de ferramentas vinculada estaticamente. Algumas distribuições (não sei sobre o CentOS) fornecem uma cópia vinculada estaticamente da Busybox . Há também sash , um shell autônomo com muitos comandos embutidos. Se você tiver um desses, poderá fazer sua recuperação a partir daí. Se você não instalou antes do fato, é tarde demais.
# mkdir /oops
# mv /lib /bin /oops
# sash
Stand-alone shell (version 3.7)
> -mv /oops/* /
> exit
Se você não tem mais um shell de root, mas ainda tem um daemon SSH escutando e você pode logar diretamente como root sobre ssh, e você tem uma destas toolboxes vinculadas estatisticamente, você pode ser capaz de fazer ssh Isso pode funcionar se você tiver movido /lib e /bin , mas não /etc .
ssh [email protected] /oops/bin/sash
[email protected]'s password:
Stand-alone shell (version 3.7)
> -mv /oops/* /
Alguns administradores configuram uma conta alternativa com um shell vinculado estaticamente ou fazem com que a conta root use um shell vinculado estaticamente, apenas para esse tipo de problema.
Se você não tiver um shell de root e não tiver tomado precauções, precisará inicializar a partir de um live CD / USB do Linux (qualquer um será feito, desde que seja recente o suficiente para poder acessar seus discos e sistemas de arquivos) e mova os arquivos de volta.