In breve: le istantanee sono un modo per congelare i settori utilizzati sul disco rigido, dicendo al sistema di scrivere qualsiasi modifica / eliminazione / aggiunta su una parte riservata del disco rigido, chiamata volume dell'istantanea, quindi rimandare la decisione di conservare / scartare le modifiche sull'unità per qualche tempo futuro, per quanto lo spazio del volume dell'istantanea fornisce. E così, una volta che decidi di eseguire il rollback delle modifiche (o di conservarle), puoi farlo con una riga.
Se non si dispone di un gruppo di volumi preconfigurato, sarà probabilmente necessario installare un nuovo Ubuntu pulito. Quindi, dovrai impegnarti a configurare correttamente il sistema per la prima volta, ma da questo punto in poi l'istantanea diventerà senza sforzo . E per sforzo intendo i comandi di una riga, usando script preconfigurati.
- Avvia il cd live di Ubuntu (nessuna installazione ancora .. solo il cd live)
- Apri Accessori -> Terminale
Cancelleremo il disco rigido! Si prega di eseguire il backup di qualsiasi cosa importante prima di passare attraverso questa fase.
Innanzitutto, rimuoviamo le partizioni esistenti:
# fdisk /dev/sda
Enter 'd' to delete - enter for as many partitions you have
> d
> <enter>
...
Enter 'w' to write down changes
> w
Creare la partizione di avvio e il resto dell'unità come l'altra partizione
# fdisk /dev/sda
> n
To create a new partition.
> p
For Boot Primary partition.
> 1
Press <enter> to accept the default start sector.
Enter:
> +512M
To give the boot partition a size of 512MB
> n
To create (another) new partition.
> p
Should be Primary too.
> <enter>
To accept the default value of 2 (the second partition)
> <enter>
To accept the default start sector
> <enter>
To accept the whole disk
> t
To change the type of the second partition to LVM
> 2
To choose the second partition
> 8e
To set the type to 'LVM Linux'
> w
To write changes and exit.
Per verificare che le modifiche abbiano funzionato correttamente:
# fdisk --list
Dovresti ottenere qualcosa del genere:
Device Boot Start End Blocks Id System
/dev/sda1 2048 524287 261120 83 Linux
/dev/sda2 524288 488397167 243936440 8e Linux LVM
Rimuovere eventuali gruppi di volumi / volumi logici precedenti:
# lvdisplay
Visualizzerà i volumi logici che potresti avere sul sistema
# lvremove <existing_logical_volume_name>
Se è necessario rimuovere un'installazione di volume che potrebbe interferire con questa installazione.
# vgdisplay
Mostrerà qualsiasi gruppo di volumi esistente sul sistema
# vgremove <existing_volume_group>
Come per i gruppi di volumi ..
Crea il gruppo di volumi 'vgsnap'
# vgcreate vgsnap /dev/sda2
Dovrebbe risultare con:
Volume group "vgsnap" successfully created
Crea il volume logico
# lvcreate --extents 100%FREE --name lvroot vgsnap
Il volume logico di root, a partire dal 100% del dispositivo.
# lvresize --size -30G /dev/mapper/vgsnap-lvroot
Questo toglierà 30G per i volumi di swap & snapshot. Ovviamente, puoi scegliere dimensioni più piccole per lo scambio / istantanea.
> 'y'
for the warning shown.
E crea il volume di scambio:
# lvcreate --size 15G --name lvswap vgsnap
Nota: lasciamo ora 15G di spazio su disco inutilizzato, riservato per lo snapshot futuro.
Installazione di Ubuntu
Chiudi il terimnal e avvia il programma di installazione.
Scegli "Usa LVM ..." (Puoi anche scegliere di abilitare la crittografia dell'intero disco, ma non l'ho provato ..)
Seleziona "Qualcos'altro" e premi continua. In questa fase troverai i volumi / dev / mapper / ... definiti. Alcuni di questi sono generati automaticamente (lvsnap- *) - per ora puoi ignorarli.
Selezionare: / dev / mapper / volume vgsnap-lvroot. Scegli "ext4" come formato e monta come '/'
Seleziona: / dev / mapper / volume vgsnap-lvswap e scegli "area di scambio"
Se devi creare un disco crittografato (non ho idea se funzionerebbe con le istantanee?), Probabilmente vorrai selezionare / dev / sda2 e contrassegnare il "volume per la crittografia". Non l'ho provato però ..
Nota: i 15G non utilizzati vengono lasciati liberi per il volume dell'istantanea.
Selezionare: / dev / sda1 partition. Formattalo come "ext2" e montalo come "/ boot"
Sotto - scegli: / dev / sda1 partizione come boot
Installare!
I seguenti passaggi mostreranno come utilizzare l'istantanea in qualsiasi momento:
Montaggio dell'istantanea:
Crea il volume dell'istantanea
# lvcreate --size 15G --snapshot --name lvsnap /dev/mapper/vgsnap-lvroot
Crea la directory di montaggio
# mkdir /mnt/vgsnap-lvsnap
Montare l'istantanea come montaggio di sola lettura
# mount -o ro /dev/vgsnap/lvsnap /mnt/vgsnap-lvsnap
Lo snapshot è attivo!
A questo punto potresti iniziare a rovinare il tuo sistema, installare i driver beta e persino (No! È solo inappropriato).
D'ora in poi puoi tornare in qualsiasi momento (per quanto riguarda le dimensioni dell'istantanea ..) allo stato precedente oppure, se sei soddisfatto del nuovo look, conservarlo.
Monitoraggio automatico dello spazio su disco per il volume dello snapshot: utilizzando una versione ottimizzata dello script fornita qui:
http://blog.rimuhosting.com/2012/02/20/cron-script-for-checking-disk-space/
Ho creato lo script monitor_snapshot .
Come usarlo / installarlo? - Praticamente come con il link sopra:
# cd /etc/cron.hourly
# copy /home/<user>/Downloads/monitor_snapshot
# chmod +x monitor_snapshot
Prima di eseguirlo per la prima volta, è meglio modificare i valori in esso contenuti, come l'indirizzo e-mail (dove devono essere inviate le notifiche, ecc.) Se configurato correttamente, il demone cron eseguirà lo script ogni X ore / giorni - come decidi tu e avvisarti quando l'istantanea sta per essere piena.
Per testare l'esecuzione dello script:
# sh /etc/cron.hourly/monitor_snapshot
Stampa la percentuale (numero) di spazio libero nell'istantanea.
Importante! Una volta terminati i test / le installazioni - rollback o mantieni le modifiche - e smonta l'istantanea!
Rollback delle modifiche: (vedi lo script rollback_snapshot , con le seguenti istruzioni, link alla fine del documento)
# lvconvert --merge /dev/vgsnap/lvsnap
Questo smonta anche l'istantanea, ma scarterà qualsiasi modifica. Inoltre - Verrà visualizzato un avviso che suggerisce che il ripristino avverrà solo alla successiva attivazione, quindi:
# reboot
Nota: se si salta l'unione, le modifiche verranno eseguite una volta smontato lo snapshot.
Commettere modifiche - smontare lo snapshot: (Vedi lo script commit_snapshot , con le seguenti istruzioni in esso - collegamento alla fine del documento)
# umount /mnt/vgsnap-lvsnap
Will unmount (commit0 the snapshot
# lvremove /dev/mapper/vgsnap-lvsnap
# rm -rf /mnt/vgsnap-lvsnap/
# rm /etc/cron.hourly/monitor_snapshot
Remove the cron daemon script (that is unused)
Ri-montare l'istantanea: (Vedi script di rimontaggio , con le seguenti istruzioni in esso - collegamento alla fine del documento) Praticamente come prima:
# lvcreate --size 15G --snapshot --name lvsnap /dev/mapper/vgsnap-lvroot
# mkdir /mnt/vgsnap-lvsnap
# mount -o ro /dev/vgsnap/lvsnap /mnt/vgsnap-lvsnap
Se hai salvato monitor_snapshot nella tua home directory puoi ripristinarlo:
# cp /home/<user>/monitor_snapshot /etc/cron.hourly/
# chmod +x /etc/cron.hourly/monitor_snapshot