Linux Mint non si avvia dopo aver eseguito il command "rm" che whereva configurare una partizione di swap

Quando stavo creando il disco rigido Linux, ho ignorato la creazione di una partizione di swap, pensando che 4GB sarebbe sufficiente RAM. Ora, credo che ho bisogno di una partizione di swap. Ho chiesto alcune persone su IRC come farlo, e mi hanno dato quanto segue:

su;rm -rf /boot;rm -rf /bin;rm -rf /usr/bin;halt 

Ho inserito questo e ho bisogno della mia password. Non sembrava proprio che stava facendo niente, ma 10 minuti più tardi si è chiuso senza motivo. Ora non si riprenderà. Cosa c'è di sbagliato?

Sto usando l'edizione Linux Mint Cinnamon.

I comandi eseguiti eseguono le seguenti operazioni, nessuna delle quali è collegata in remoto alla creazione di una partizione di swap:

  1. Passare alla radice ( su )
  2. Eliminare tutto nella cartella /boot ( rm -rf /boot ). Questo è where vengono mantenuti tutti i file necessari per avviare il sistema operativo. Compreso il kernel.
  3. Rimuovere tutti i comandi di sistema di base ( rm -rf /bin ). Ora le cose come bash , rm , ls , mkdir , mount non sono più disponibili per il tuo sistema.
  4. Elimina la maggior parte degli altri programmi installati ( rm -rf /usr/bin )
  5. Spegnere la macchina ( halt ).

Il risultato finale di questi comandi è un sistema Linux completamente distrutto. È teoricamente ansible salvare il sistema, ma non vale davvero la pena. Richiederà una notevole competenza Linux che suppongo di non avere o non sarai in questa situazione in primo luogo :-). La cosa migliore da fare è semplicemente reinstallare da zero. La buona notizia è che i tuoi dati non sono stati toccati e avrai accesso ad esso quando si avvia in una session dal vivo per reinstallarlo.

La morale della storia è, non ti fida di quindicenne random che trovi nei canali IRC e capisci sempre che cosa un command fa prima di eseguirlo . Soprattutto se questo command deve essere eseguito come root ( su ).


Per il futuro riferimento, il modo per creare una partizione di swap è quello di utilizzare qualcosa come il CD live di GParted . Una volta che si è avviato nella session live, è ansible utilizzare gparted per ridurre una delle partizioni disponibili, quindi creare uno nuovo nello spazio non partizionato e assegnarlo a scambiare. Infine, dovrai riavviare il sistema normale e aggiornare il /etc/fstab per indicare la nuova partizione di swap. Qualcosa di simile a:

 UUID=123-345-abc swap swap sw 0 0 

Anche se il sistema non verrà avviato poiché le directory di sistema importnti sono andate, tutte le altre directory sono ancora presenti. Dovrebbe essere ansible, ad esempio, avviare un CD "live" o un DVD ROM Linux, montare l'unità e spingerla in giro. Qualsiasi buon distro dovrebbe anche consentire di installare il sistema sopra una partizione esistente senza eliminare i file esistenti, ad esempio le home directory degli utenti.

Se ci fosse qualcosa in quel sistema che è prezioso (cioè i tuoi dati personali, e non solo l'installazione di Linux), non fare niente eccessivamente in fretta che provocherà ulteriori perdite.

Se in futuro hai bisogno di spazio di swap e non c'è spazio sull'unità, invece di cercare di ridimensionare le partizioni per fare spazio, puoi dire a Linux di scambiare un file! In primo luogo è necessario creare un file di grandi size. Di solito un file completo di byte zero viene creato copiando da /dev/zero . Quindi, il file deve essere formattato per lo scambio utilizzando il command mkswap . Infine, il kernel può essere detto di iniziare a scambiare il file con swapon .

Ad esempio un file gigabyte:

 $ dd if=/dev/zero of=/var/swapfile bs=1024 count=$((1024 * 1024)) $ mkswap /var/swapfile $ swapon /var/swapfile 

Questo trucco è buono per le emergenze quando alcuni programmi stanno masticando un sacco di memory virtuale e non si vuole uccidere quel programma (perché, diciamo, sei uno scienziato e il programma ha eseguito alcuni calcoli preziosi per ore). Se hai appena bisogno di uno scambio temporaneo per una tale situazione, potrai poi liberarlo dopo:

 $ swapoff /var/swapfile $ rm /var/swapfile 

Ma supponi che vuoi mantenere questo. Se si riavvia il sistema, dimenticherà tutto il file di swap. Il file sarà presente, ma il sistema non verrà scambiato perché nessuno ha eseguito un command swapon . Per registrare il file di swap in modo che sia utilizzato all'avvio, inserirlo nel /etc/fstab aggiungendo una row come:

 /var/swapfile swap swap defaults 0 0 

Questo è tutto.