Ubuntu: riportare il sistema alle impostazioni iniziali senza reinstallarlo

Scritto il 03/08/2012 - 17:38 da Jessica Lambiase

Si sa che, soprattutto se un sistema è strausato, dopo qualche mese (dai, se siete fortunati dopo un bel po’ di mesi…) inizierete a notare qualche rallentamento, qualche problemino sparso in giro et similia similarum. Siete tentatissimi dal format, eppure ritenete una gran seccatura fare backup completo di tutti i files personali e via discorrendo. Leggevo un tutorial – e chi l’ha scritto è assolutamente un genio della praticità – che permette, tramite pochi e ben assestati comandi bash, di riportare il sistema operativo Ubuntu 12.04 al suo stato iniziale senza il bisogno di formattarlo: in pratica, saranno eliminati tutti i pacchetti “aggiuntivi” installati da voi nel tempo, e saranno “ripristinati” i pacchetti del sistema che avete accidentalmente (o volontariamente) eliminato. Io devo riportarvi il procedimento perchè ne vale davvero la pena. Attenzione, però: avremo bisogno dell’ISO del sistema operativo (va bene anche se masterizzata o copiata su chiavetta USB)!

Innanzitutto prendete l’ISO di Ubuntu 12.04 (che, vi ricordo, potrete trovare qui) relativa alla vostra architettura, estraetela come fosse un archivio e copiate direttamente sulla scrivania i files

directory_in_cui_avete_estratto/casper/filesystem.manifest

e

directory_in_cui_avete_estratto/casper/filesystem.manifest-remove

In alternativa, se avete l’iso già estratta e/o masterizzata, potrete prendere i files direttamente da lì senza il bisogno di riscaricarla e riestrarla.

Ok, adesso andiamo a combinare insieme i files così da ottenere la lista ordinata dei pacchetti installati (e di quelli non installati) di default nel sistema operativo. Considerando che avete copiato i due precedenti files sulla scrivania, aprite un terminale e digitate

cd ~/Scrivania
comm -3 <(cat filesystem.manifest | awk '{print $1}' | sort) <(cat filesystem.manifest-remove | sort) > default.txt

(in parole umane: compara – senza stampare gli elementi comuni – filesystem.manifest riformattato (awk) e riordinato (sort) con filesystem.manifest-remove riordinato e metti l’output in default.txt).

Abbiamo sul desktop anche il file default.txt che contiene lo stato completo dei pacchetti di un sistema “vergine”. Creiamo, ora, una lista dello stato dei pacchetti sul nostro sistema (quelli preceduti dal segno “+” saranno installati, quelli preceduti dal segno “-” non lo saranno), con il comando

cd ~/Scrivania
dpkg --get-selections | awk '{print $1}' | sort > pacchetti_correnti.txt

 Adesso, andiamo a ragionare di fantasia: se facciamo la differenza tra default.txt e i pacchetti che abbiamo correntemente installato (+).. otterremo tutti i pacchetti installati da noi – e quindi da rimuovere per riportare il sistema allo stato originario. Allo stesso modo, se facciamo la differenza tra default.txt e i pacchetti che correntemente non abbiamo installati (-)… otterremo tutti i pacchetti eliminati da noi rispetto all’installazione di default - e quindi da aggiungere per riportare il sistema allo stato originario. E’ un po’ un casino, ma riflettendoci attentamente il discorso fila!

Traduciamo in comandi quello che abbiamo appena detto iniziando dai pacchetti aggiunti da noi: apriamo un terminale, e digitiamo

diff -u default.txt pacchetti_correnti.txt | grep "^+[^+]" | cut -c 2- > ~/Scrivania/aggiunti.txt

…e continuiamo con i pacchetti rimossi, con il comando

diff -u default.txt pacchetti_correnti.txt | grep "^-[^-]" | cut -c 2- > ~/Scrivania/rimossi.txt

E adesso viene il bello: potremo mandare in pasto entrambi i files ad apt-get per far si che il sistema disinstalli i pacchetti aggiunti da noi, e reinstalli quelli da noi rimossi! Se vogliamo rimuovere i pacchetti eliminando tutte le impostazioni di configurazione di ogni programma, andremo a digitare

sudo apt-get purge $(cat ~/Scrivania/aggiunti.txt)

Se, invece, vogliamo rimuovere i pacchetti senza eliminare le impostazioni di configurazione (ma non sarebbe più un reset totale… :rotfl:) andremo a digitare

sudo apt-get remove $(cat ~/Scrivania/aggiunti.txt)

Per reinstallare, successivamente, i pacchetti di sistema eliminati da noi, andremo a digitare

sudo apt-get install $(cat ~/Scrivania/rimossi.txt)

Riavviate adesso il sistema. L’ultimo step sarà ripristinare le impostazioni di gnome, di metacity e tutto il resto! Sempre da terminale, digitiamo

rm -rf .gnome .gnome2 .gconf .gconfd .metacity

e infine, per ripristinare le impostazioni di Unity, premete la combinazione di tasti ALT+F2 e digitate

unity --reset

Opzionalmente, tramite l’Ubuntu Software Center, potrete anche eliminare tutti i repository aggiunti da voi: spazio alla vostra fantasia!

NB: questo tutorial può andare bene per tutte le distribuzioni Ubuntu-based (eccezion fatta per il reset delle impostazioni di Unity).

Chi sono

Amministratrice e blogger di Chimera Revo fin dagli albori, mi occupo prevalentemente dei settori GNU/Linux e Sicurezza. Nella vita "reale" sono freelancer nel settore della sistemistica informatica, specializzata in networking e sicurezza.

  • http://www.facebook.com/AlexDiste Alessandro Di Stefano

    Le impostazioni utente dei vari programmi nella home rimangono o vengono eliminate?

    • http://www.siliconjey.com Jessica Lambiase

      Se usi purge dovrebbero essere eliminate, se usi apt-get remove invece no

      • http://www.facebook.com/AlexDiste Alessandro Di Stefano

        In sostanza con questo script e la combinazione di purge o remove puoi replicare quello che windows 8 chiama reset o refresh. Buono a sapersi.

        Ora ci vorrebbe semplicemente diventasse più automatico, magari con un tool ufficiale Canonical o un software

  • http://www.facebook.com/FaLuNaAssistenza Faluna PC Assistenza

    Ciao, vale anche per Ubuntu 13.04
    Grazie

    • http://www.siliconjey.com Jessica Lambiase

      Si, va bene anche con Ubuntu 13.04. Saluti

  • Pingback: Ubuntu: 3 script utili per il ripristino completo delle impostazioni | Chimera Revo

  • Leonardo

    Quando ho inserito il comando “sudo apt-get install $(cat ~/Scrivania/rimossi.txt)” mi ha dato “unable to locate package default” (o una cosa del genere), a quel punto ho riavviato e ubuntu è scomparso dal GRUB, cosa posso fare? Grazie

  • franck97

    Io utilizzo Linux Mint e stavo quasi per formattare, per fortuna però ho trovato questo articolo. Grazie mille!

  • fernando

    Ciao.
    Ottima guida. Io avrei un problemino, premetto che uso ubuntu 12.04 64bit, l’altro giorno nei regolari aggiornamenti ho visto che sono state aggiornate le librerie di cups con la versione 1.5.3. Bè da quel momento in poi la mia stampante non ha più funzionato. Ho provato a rimuoverla e reinserirla con i suoi driver presi dal sito della EPSON ma niente da fare. Eppure viene regolarmente riconosciuta e difatti mi stampa anche la pagina di prova ma quando vado a stampare qualsiasi file sembra che parte ma poi si ferma senza neanche lasciare code di stampa. Prima di questo aggiornamento funzionava a meraviglia. Si tratta di una Epson sx130.
    Qualche soluzione?
    Ho già cambiato la webcam non vorrei cambiare anche la stampante. Grazie in anticipo.

    • http://www.siliconjey.com Jessica Lambiase

      Dai non essere drastico! Se la stampante è correttamente riconosciuta e la pagina di prova viene stampata allora scordati il problema di compatibilità :) Sarà qualcosa legata allo spooler, che so, magari i jobs non vengono pianificati come si deve (o non vengono scritti affatto)… mi informo.

      • fernando

        sicuramente è stato dovuto all’aggiornamento di versione di cups, magari qualche baco, che verrà corretto negli aggiornamenti successivi (ma sai comè). comunque grazie dell’interessamento. resto in attesa di eventuale soluzione.

    • Musashi

      ciao, ho avuto anch’io il tuo stesso problema (12.04, 32bit) circa una quindicina di giorni fa, ho risolto retrocedendo i pacchetti; quello che mi stupisce è che all’epoca, l’aggiornamento 1.5.3 di cups era tra i gli aggiornamenti “proposed”, mentre adesso sta tale e quale tra gli aggiornamenti raccomandati, cioè viene raccomandato di installare un aggiornamento bacato :S e il baco è pure grosso visto che la stampante non stampa… ma qualcuno li testa questi aggiornamenti, a parte gli utenti?

      • fernando

        Scusa ma come faccio a retrocedere i pacchetti e quali? Da ubuntu software center noto che sono parecchi. Tu come hai fatto?

  • http://www.facebook.com/alessandro.kurtoni Alessandro Kurtoni

    O bastalà, questa si che è un idea!
    Chi è l’inventore, che gli voglio stringere la mano??
    Le varie distro debian potrebbero creare proprio un tool di questo genere, alla fine bastano dei comandi bash: se proprio non si vogliono sprecare lo potrebbero fare in Zenity (o come si chiama) =D

    • http://www.siliconjey.com Jessica Lambiase

      Eccolo! http://www.twitter.com/kingletas
      E’ uno sviluppatore web… ma ha avuto una trovata geniale! :D
      Magari farlo con Zenity (ma sono troooppe finestre di zenity)… o scriverlo in GTK… beh beh… un’idea malvagia non l’hai avuta eh :D

  • Pingback: Ubuntu 12.04: riportare il sistema alle impostazioni iniziali senza reinstallarlo - Informatica - Tua Notizia

  • Giorgio Loi

    grande!