Excluí minha área de trabalho e tudo congelou. O que eu fiz?

Excluí minha área de trabalho e tudo congelou. O que eu fiz?

Então, eu estava brincando com um experimento de disco ativo (usando um HHD externo como disco ativo) e criei um script que criou 9.023 diretórios em minha área de trabalho antes que pudesse interrompê-lo. Sendo o noob que sou, executei este comando para limpar minha bagunça:

rm -rf Desktop 

E então criei uma nova pasta chamada Desktop no meu diretório pessoal. Meu computador funcionou bem por alguns segundos e depois tudo, exceto meu mouse, congelou. Felizmente estava tudo em um disco ativo, então nada foi perdido, mas eu gostaria de saber o que realmente fiz.

Tentei pesquisar no Google "diretório de desktop excluído do Ubuntu" e outras variações, mas tudo que consegui foram pessoas tentando se livrar dele, e não trazê-lo de volta.

EDIT: houve algum interesse na bomba fork que eu executei. Não ria:

while true; do
for i in a; do
declare b=b+1
mkdir "$b" 
done
done

Eu meio que adivinhei o que isso faria, mas estava acostumado a trabalhar com Python, onde poderia eliminá-lo rapidamente antes que ficasse fora de controle.

Para qualquer pessoa que ler isso em algum momento no futuro: não use essa bomba, ela faz uma bagunça.

PS Antes de você dizer o quão estúpido foi para mim fazer isso, observe que eu estava em um disco ativo que foi reservado apenas com o propósito de fazer coisas assim para que eu pudesse aprender.

Responder1

É bom que você tenha feito isso com um Live USB ou você teria perdido alguns dados, quase certamente. Limpar depois disso teria sido uma enorme perda de tempo.

Primeiro, você executou o que é conhecido como bomba fork. Uma fork bomb é um comando simples, muitas vezes ofuscado, que continuará gerando novos processos, pastas ou arquivos até ocupar espaço em disco, consumir ciclos de CPU ou consumir toda a RAM. Isso resulta no congelamento do computador porque ele não tem mais recursos para fornecer.

Em segundo lugar, você excluiu seu DE (ambiente de desktop), que é o que você vê, são os gráficos com os quais você interage, as janelas que você abriu (mais ou menos - há um gerenciador de janelas, mas vamos pular isso por enquanto). Basicamente, você matou tudo em que podia clicar.

É bom aprender. Use seu mecanismo de busca favorito antes de digitar comandos no terminal. Sempre, sempre saiba o que o comando faz antes de pressionar ENTER. Não posso enfatizar isso o suficiente. Existem pessoas que irão enganá-lo intencionalmente. O terminal é uma ferramenta potencialmente poderosa. É a melhor ferramenta da sua caixa de ferramentas, mas, como todas as ferramentas, deve ser manejada com cuidado.

Se você nos contar qual foi o comando para a bomba bifurcada, poderemos digeri-lo e dizer exatamente o que ela fez e por quê. Você parece um tipo curioso, então talvez também queira aprender isso?


Editar:

Agora você incluiu o código da sua bomba fork. Vou incluir isso para a próxima pessoa que vier. Se você olhar para ele e analisar a lógica, poderá ver que está dizendo que, desde que uma condição exista (seja verdadeira), faça algo (crie um diretório enumerado) e, como não há nada dizendo para parar (um loop), ele continuará funcionando até que os recursos sejam consumidos, a RAM seja consumida ou até que haja algum tipo de colisão que faça as coisas congelarem. (Isso pode ser todo tipo de coisa, como vazamento de memória, mas provavelmente não é um fator aqui.)

Pelo que parece, ou pelo que estou lendo, parece que você fez um ótimo trabalho. Este é um aviso claro para outros, para não executarem seu código (você deve adicionar isso à sua postagem com a função de edição ou outra pessoa pode, se desejar). Foi criativo. Acho que nunca vi isso ser feito dessa maneira, mas a teoria é praticamente a mesma com todos eles. Novamente, para outros, isso pode estar oculto em código ofuscado ou em código que você simplesmente pode não entender se não souber como analisar Perl (por exemplo). Este é um belo exemplo do que não fazer.

Ouso dizer que você deveria terminar de instalá-lo e se divertir mais. Basta manter bons backups.

Responder2

Reinicializar, recriar o diretório da área de trabalho a partir de um console virtual e, em seguida, fazer login na área de trabalho novamente deve resolver o problema. Seu computador travou porque você executou uma bomba fork ou porque o diretório da área de trabalho desapareceu enquanto o ambiente da área de trabalho tentava usá-lo, mas em ambos os casos, minha correção sugerida irá repará-lo (embora você tenha perdido tudo o que estava na sua área de trabalho).

Responder3

Não, isso não é um forkbomb, já que um forkbomb executa um programa repetidamente, até que sua CPU acabe, você pode estar interessado em zip bombs, que é um arquivo zip que é compactado para parecer que quase não contém dados, como 42 .zip com seus 42 kbs de dados compactados e extrai o arquivo zip, AH NÃO, você tem Teribytes de dados, o computador não consegue processar essas coisas, seu computador irá travar repetidamente, basicamente uma bomba é um programa que existe para prejudicar sua CPU. mas você excluiu os arquivos principais do sistema, é como excluir sua unidade C: no Windows e criar uma nova, sua unidade C: contém os arquivos importantes no Windows, então se você excluir seu sistema operacional é como, ONDE ESTÁ O C:/Windows/ AUTOEXEC.bat, seu computador não será mais inicializado novamente.

informação relacionada