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 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.