2
2

Salve amici, la domanda che mi rode da un po' è la seguente: esiste in Ubuntu una procedura simile a Crea punto di ripristino come in Windows, così che se qualcosa va storto (driver, programmi) è possibile, senza reinstallare, tornare al punto precedente ripristinando i files di sistema?
Grazie di cuore e ciao.

chiesto 09 Ago '13, 12:17

agric's gravatar image

agric
1.5k111529

modificato 14 Ago '13, 23:16

enzotib's gravatar image

enzotib ♦♦
14.0k112186


Un modo interessante di gestire un sistema, con la possibilità di impostare qualcosa di molto simile ai punti di ripristino, è quello di usare uno dei sistemi che consentono di realizzare degli snapshot del filesystem, come per esempio Logical Volume Manager o il tipo di filesystem btrfs.

Vorrei espandere un po' il discorso su quest'ultimo, precisando però che btrfs è ancora in fase di pesante sviluppo e non andrebbe utilizzato per applicazioni critiche. Inoltre declino ogni responsabilità per possibili perdite di dati che possano derivare dall'applicazione delle seguenti istruzioni, che sono state tutte concretamente verificate su una macchina virtuale con Xubuntu 13.04.

Installazione

Supponiamo di avere un solo disco /dev/sda. Durante l'installazione scegliamo di partizionare manualmente, scegliendo Tipo di Installazione: Altro e facciamo due partizioni:

  • /dev/sda1 di tipo btrfs con journaling, formattato e montato su /
  • /dev/sda2 di tipo swap


Alla fine dell'installazione, quando riavviamo il sistema, ci troveremo con un volume btrfs corrispondente al device /dev/sda1, e due sottovolumi, uno per la radice e una per la home, come si vede dall'output del seguente comando:

$ sudo btrfs subvolume list -ap /
    ID 256 gen 88 parent 5 top level 5 path <FS_TREE>/@
    ID 258 gen 88 parent 5 top level 5 path <FS_TREE>/@home

Creazione di un punto di ripristino

Se in qualsiasi momento vogliamo salvare lo stato del sistema, per esempio prima di fare un aggiornamento importante, possiamo fare uno snapshot dei sottovolumi @ e @home (o solo di @, se preferiamo) con i seguenti comandi, dove i nomi scelti per i nuovi sottovolumi sono del tutto arbitrari:

$ sudo mount /dev/sda1 /mnt
$ cd /mnt
$ ls -l
    totale 0
    drwxr-xr-x 1 root root 218 ago 10 23:25 @
    drwxr-xr-x 1 root root  14 ago 10 23:21 @home
$ sudo btrfs subvolume snapshot @ @_2013_08_11
    Create a snapshot of '@' in './@_2013_08_11'
$ sudo btrfs subvolume snapshot @home @home_2013_08_11
    Create a snapshot of '@home' in './@home_2013_08_11'
$ ls -l
    totale 0
    drwxr-xr-x 1 root root 218 ago 10 23:25 @
    drwxr-xr-x 1 root root 218 ago 10 23:25 @_2013_08_11
    drwxr-xr-x 1 root root  14 ago 10 23:21 @home
    drwxr-xr-x 1 root root  14 ago 10 23:21 @home_2013_08_11
$ cd 
$ sudo umount /mnt

Cancellazione di un punto di ripristino

Se poi in seguito tutto è andato bene è vogliamo cancellare gli snapshot creati:

$ sudo mount /dev/sda1 /mnt
$ cd /mnt
$ sudo btrfs subvolume delete @_2013_08_11
    Delete subvolume '/mnt/@_2013_08_11'
$ sudo btrfs subvolume delete @home_2013_08_11
    Delete subvolume '/mnt/@home_2013_08_11'
$ ls -l
    totale 0
    drwxr-xr-x 1 root root 218 ago 10 23:25 @
    drwxr-xr-x 1 root root  14 ago 10 23:21 @home
$ cd
$ sudo umount /mnt

Ritorno allo stato di un punto di ripristino

Altrimenti, se vogliamo tornare allo stato iniziale ed annullare le modifiche, è necessario avviare con un LiveCD ed eseguire i seguenti comandi:

live$ sudo mount /dev/sda1 /mnt
live$ cd /mnt
live$ sudo btrfs subvolume delete @
    Delete subvolume '/mnt/@'
live$ sudo mv @_2013_08_11 @
live$ sudo btrfs subvolume delete @home
    Delete subvolume '/mnt/@home'
live$ sudo mv @home_2013_08_11 @home
live$ cd
live$ sudo umount /mnt

Note

  • Esiste un pacchetto, apt-btrfs-snapshot, che "Automatically create snapshot on apt operations"
  • Btrfs non supporta (ancora) la swap, che dev'essere su una partizione separata
  • All'atto della creazione, uno snapshot occupa pochissimo spazio, poiché i dati sono in comune con il sottovolume da cui è generato. Col tempo e con le modifiche del sottovolume originario, e con il meccanismo del copy-on-write, lo spazio occupato dallo snapshot tende ad aumentare, quindi è bene non mantenere troppi snapshot.
  • È possibile convertire un filesystem ext3/4 in btrfs.
  • I sottocomandi del comando btrfs possono essere abbreviati fintanto che sono non ambigui, per esempio subvolume può essere abbreviato sub, snapshotsnap, ecc.
  • La creazione di uno snapshot è utile anche per fare un backup del filesystem di root senza dover fermare il sistema e senza il rischio di avere un backup inconsistente a causa del fatto che alcuni file potrebbero essere modificati durante il backup.


Riferimenti

Qualche link interessante da leggere:


coll. permanente
Questa risposta è segnata come "wiki".

ha risposto 11 Ago '13, 09:28

enzotib's gravatar image

enzotib ♦♦
14.0k112186

reso wiki 13 Ago '13, 10:20

pietroalbini's gravatar image

pietroalbini ♦♦
3.1k2947

Ottima risposta, molto completa e ben articolata, i miei complimenti, bravo

(11 Ago '13, 12:04) agric agric's gravatar image

Fantastico, non ero a conoscenza di questa potenzialità di btrfs, anche perché essendo ancora in sviluppo non me ne sono ancora interessato affatto :)

(12 Ago '13, 21:30) dadexix86 ♦♦ dadexix86's gravatar image

Segnata come Wiki, in quanto molto completa. Grazie :)

(13 Ago '13, 10:21) pietroalbini ♦♦ pietroalbini's gravatar image

Sì, si chiama Backup e si può fare in tanti modi :)

Ti consiglio di iniziare dalle ottime pagine wiki che ne parlano.

coll. permanente

ha risposto 09 Ago '13, 14:04

dadexix86's gravatar image

dadexix86 ♦♦
16.9k816161

ok grazie ,un voto per l'aiuto.

(09 Ago '13, 14:12) agric agric's gravatar image

Se questa risposta ti soddisfa per favore accettala, così manteniamo pulito questo servizio :)

(10 Ago '13, 14:00) dadexix86 ♦♦ dadexix86's gravatar image
La tua risposta
abilita/disabilita anteprima

Segui questa domanda

Via email:

Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui

Via RSS:

Risposte

Risposte e commenti

Basi di markdown

  • *corsivo* o __corsivo__
  • **grassetto** o __grassetto__
  • collegamento:[testo](http://url.com/ "titolo")
  • immagine?![alt testo](/path/img.jpg "titolo")
  • elenco numerato: 1. Foo 2. Bar
  • per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
  • è supportato anche semplice HTML

Tag:

×41

domanda posta: 09 Ago '13, 12:17

domanda visualizzata: 5,070 volte

ultimo aggiornamento: 19 Set '13, 14:14

Chiedi è un servizio di supporto gestito da Ubuntu-it. Contattaci!

powered by OSQAPostgreSQL database
Ubuntu e Canonical sono marchi registrati da Canonical Ltd.