apagou todos os arquivos em usr / bin digitando em rm -rf *

4

Sou novo no linux e instalei o Ubuntu 12.04 hoje. Eu acidentalmente deletei tudo em /usr/bin digitando no comando rm -rf * .

Eu não sei o que está montando e gostaria de aprender, mas neste momento eu acho que o único caminho que resta para mim é reinstalar tudo. Por favor, deixe-me saber as maneiras de reinstalar tudo agora. Seria de grande ajuda para mim.

    
por user1455116 23.09.2012 / 02:15

5 respostas

7

Como você acabou de instalar hoje, faça a instalação novamente. Enquanto você pode se recuperar disso, será muito mais trabalhoso do que refazer a instalação.

Para recuperar-se da exclusão de /usr/bin , você precisaria reinstalar todos os pacotes que possuem arquivos nesse diretório. Você pode usar este comando para listar os pacotes afetados:

cd /var/lib/dpkg/info
grep -l '^/usr/bin/' *.list | sed 's/\.list$//'

Você então precisará encontrar algum meio de baixar os pacotes sem depender de nenhum dos programas excluídos. Já que você apagou o dpkg , o utilitário de instalação de pacotes de baixo nível, você precisará obtê-lo de algum lugar primeiro. Agarre-o de alguma outra máquina rodando o mesmo Ubuntu, ou baixe o pacote dpkg em outra máquina e extraia os programas dele . Você precisará não apenas de /usr/bin/dpkg , mas também de todos os outros programas desse pacote, incluindo update-alternatives e todos os programas denominados /usr/bin/dpkg-* . Novamente, a cópia pode ser complicada com tantos programas excluídos, então você pode precisar reiniciar para um CD / USB de resgate para fazer isso.

Quando tiver o pacote dpkg , faça o download pelo menos do dpkg e do apt pacote de alguma forma, talvez em outra máquina ou em um navegador da Web ainda em execução.

Em seguida, instale apt manualmente com o comando

dpkg -i /path/to/apt_0.8.16~exp12ubuntu10.2.deb

Se você receber erros sobre a falta de comandos, reinstale os pacotes correspondentes primeiro. Em seguida, reinstale todos os pacotes afetados:

apt-get --reinstall install $(grep -l '^/usr/bin/' *.list | sed 's/\.list$//')

Mais uma vez, na sua situação, basta fazer uma reinstalação completa.

    
por Gilles 23.09.2012 / 02:41
4

/usr/bin/ contém a maioria dos programas instalados no seu sistema.

Apenas instalar o Ubuntu novamente seria a maneira mais fácil e rápida de obter um sistema funcional novamente.

    
por Florian Diesch 23.09.2012 / 02:37
0

Nada realmente difícil se isso for um vm:

  1. salve a lista de pacotes que você instalou

    cd /var/lib/dpkg/info
    grep -l '^/usr/bin/' *.list | sed 's/\.list$//' > ~/packs.txt
    
  2. Instale a mesma versão do SO (i386 ou amd64) em uma nova VM

  3. Na máquina nova,

    cd /var/lib/dpkg/info
    grep -l '^/usr/bin/' *.list | sed 's/\.list$//' > ~/packs2.txt
    
  4. copie o conteúdo de packs.txt no novo sistema e você pode fazer:

    install=$(diff -c ~/packs2.txt ~/packs.txt | grep "^- " | cut -d' ' -f2 | xargs echo )
    apt-get install -y --force-yes $install
    remove=$(diff -c ~/packs2.txt ~/packs.txt | grep "^+ " | cut -d' ' -f2 | xargs echo )
    apt-get purge -y --force-yes $remove
    
  5. Agora o novo sistema tem o mesmo conteúdo /usr/bin da sua máquina danificada

  6. monte o disco da sua máquina quebrada no novo e finalmente:

    rsync -av /usr/bin /mnt/usr/bin
    

lucro

    
por Gian 24.10.2015 / 12:53
0

Você poderia exportar esse diretório de outro computador por meio do NFS? Sim, isso é muito feio e você deve simplesmente reinstalar.

De qualquer forma: montagem ainda deve funcionar, porque

ls /usr/bin | grep mount

não me deu nada além de grub-mount . Portanto, apenas copiar arquivos relevantes de um diretório montado pode funcionar temporariamente. Lembre-se, sudo não funcionará, use su .

    
por AdamKalisz 01.06.2015 / 01:15
0

Tive o mesmo problema idiota ... eis o que fiz para que tudo funcionasse novamente:

1. Como na resposta do @Gilles, faça uma lista dos seus pacotes:

cd /var/lib/dpkg/info
grep -l '^/usr/bin/' *.list | sed 's/\.list$//' > ~/my_packages1.txt

2. Insira um Live CD com a mesma versão do Ubuntu, inicialize-o e copie o diretório /usr/bin . A partição com o Ubuntu no meu disco rígido foi montada, então é tão fácil quanto

cp -R /usr/bin /media/something/usr/bin

3. Agora não pude usar sudo ou pkexec , porque recebi a mensagem de erro deve ser de propriedade de uid 0 e ter o bit setuid . Então eu tive que mudar isso, inicializando do GRUB em um shell de root. (Veja aqui como fazer isso e sobre isso site alemão para algumas fotos.) Agora:

mount -o remount,rw / 
chown -R root:root /usr/bin
chmod a=rx,u+ws /usr/bin/sudo
chmod a=rx,u+ws /usr/bin/pkexec

Reinicie no seu sistema Ubuntu normal.

4. Reinstale seus pacotes:

sudo xargs -a ~/my_packages1.txt apt-get install --reinstall
rm ~/my_packages.txt

5. Ainda faltavam muitos pacotes. debsums ajudou a encontrar esses pacotes para instalá-los manualmente. (Talvez com este passo 1 e 4 estejam obsoletos, mas eu não tentei ...)

sudo apt-get install debsums
sudo debsums_init

# This lets debsums find packages with missing files, filters the package names and writes the unique ones to the file.
sudo debsums -cs 2>&1 >/dev/null | sed -e 's/\(.*\)from \(.*\) package\(.*\)//' | uniq -u > my_packages2.txt

sudo xargs -a ~/my_packages2.txt apt-get install --reinstall
    
por Frank Zalkow 12.11.2015 / 23:41