Esiste un "punto di ripristino" in Linux (Debian / Ubuntu) come Windows?


17

Sto lavorando direttamente in una macchina virtuale (VM) Ubuntu. Alcuni aggiornamenti (come il kernel) erano disponibili nel gestore aggiornamenti.

Se non stessi usando una macchina virtuale, non la aggiornerei dal momento che rischia di rompere qualcosa. Poiché si tratta di una macchina virtuale, puoi creare un'istantanea o esportare un'appliance e ripristinarla se qualcosa va storto.

Supponiamo che non stia usando una VM con un'installazione Debian / Ubuntu. Esiste un approccio di installazione-ripristino che non dipende da una configurazione VM per ripristinare il sistema esattamente prima di un aggiornamento (come un "Punto di ripristino" in Windows), essendo facile da ripristinare come un dispositivo VM?

(Non sto cercando "immagini fantasma" o qualcosa del genere (Norton Ghost, Clonezilla, ecc.), Sto cercando qualcosa incorporato nel sistema Linux)


3
So che questo è fuori tema, quindi lo sto aggiungendo come commento, ma OpenSolaris può fare un'istantanea dell'intero file system ZFS e ripristinarlo in seguito. Non richiede troppo spazio su disco, a causa della deduplicazione. In effetti, il modo standard per effettuare importanti aggiornamenti è creare una nuova istantanea di FS e installarvi gli aggiornamenti. Se ti funziona, puoi eliminare quello vecchio. Altrimenti, puoi semplicemente tornare a quello che stava funzionando.
AndrejaKo,

3
@AndrejaKo: +1 Tuttavia, è un "clone" (un'istantanea scrivibile; le istantanee normali sono di sola lettura) e il fatto che non abbia bisogno di molto spazio non ha nulla a che fare con la deduplicazione ma con il modo in cui vengono gestite le istantanee e i cloni nei filesystem COW. Vale a dire che si ottiene lo stesso risparmio di spazio su disco anche su pool senza dedup.
Knweiss,

@knweiss Sì, esatto. L'ho appena cercato!
AndrejaKo,

Risposte:


15

Non esiste una funzionalità simile integrata in qualsiasi distribuzione Linux che io conosca. Ci sono diverse ragioni per cui sarebbe molto meno utile che per Windows.

  • In primo luogo, le distribuzioni Linux sono molto più serie di Microsoft in merito al fatto che le versioni stabili vengano aggiornate solo per correggere bug importanti e con modifiche minime. Ad esempio, con Ubuntu e Debian, puoi scegliere di ricevere solo gli aggiornamenti di sicurezza ( -security) o solo gli aggiornamenti di sicurezza e importanti correzioni di bug ( -updates).

  • Gli aggiornamenti del kernel sono i più rischiosi, a causa della possibilità che una modifica apparentemente vantaggiosa causi problemi su una specifica configurazione hardware. Questo è il motivo per cui la maggior parte delle distribuzioni consente di installare più di una versione del kernel contemporaneamente; ad esempio, al momento in cui scrivo, Ubuntu 10.04 ha tre versioni del kernel disponibili: 2.6.32.21.22dalla versione originale, 2.6.32.22.23con aggiornamenti di sicurezza e anche 2.6.32.23.24con aggiornamenti non di sicurezza. Se la versione ... 24 causa un problema sul tuo computer, puoi riavviare in ... 23 (e persino contrassegnare ... 24 come proibito da installare, almeno se stai usando aptitude).

  • Non esiste un registro: tutti i dati di configurazione sono in file (nella /etcgerarchia), che possono essere facilmente ripristinati individualmente se qualcosa va storto. Anche in questo caso, gli aggiornamenti alla versione stabile raramente influiscono sui file in /etc.

  • Se stai installando pacchetti da una fonte diversa da una versione stabile, potresti voler conservare copie delle versioni precedenti dei pacchetti e conservare i backup dei tuoi file di configurazione. Ecco alcuni suggerimenti a riguardo in Debian e Ubuntu.

    • I pacchetti scaricati vengono conservati /var/cache/apt/archives. Se hai lo spazio su disco, non eliminare i vecchi file del pacchetto fino a quando non hai confermato che la versione più recente funziona per te.
    • Molte fonti mantengono versioni precedenti, in modo da poter eseguire il downgrade facilmente (scaricando e installando manualmente una versione precedente o utilizzando le preferenze apt). Per Debian, guarda snapshot.debian.org .
    • Esiste un modo molto semplice per impostare il controllo versione /etc: installare il etckeeperpacchetto e attivarlo con il comando etckeeper init. (Lo faccio, ma non perché sono preoccupato per gli aggiornamenti che rompono qualcosa, piuttosto perché sono preoccupato per le mie modifiche che rompono qualcosa.)

Sì, semplicemente non c'è paragone tra stabilità di Windows e Debian / stable. Anche se qualcosa si rompe (quasi sempre a causa di un evidente errore dell'utente), ci sono molti strumenti per eseguire il debug e risolvere il problema.
liori,

2
"Gli aggiornamenti del kernel sono i più rischiosi" - Ecco perché tengo una copia di Knoppix accanto al mio computer. 5 e non 6.
amphetamachine,

Potresti anche trovare utile [rsnapshot] (rsnapshot.org), un'utilità di istantanea del filesystem basata su rsync .
Pablo A,

5

Non è necessario, poiché il gestore pacchetti si occupa di quale file proviene da quale pacchetto ed è anche in grado di ripristinare l'aggiornamento del pacchetto o l'installazione.


2
ma se il pacchetto ha rotto qualcosa durante il riavvio, fare un rollback potrebbe diventare difficile (soprattutto in relazione alle revisioni del kernel)
warren

1
Ecco perché di solito viene mantenuto il kernel precedente e può essere selezionato per l'avvio in grub.
mbq,

1
Non sono d'accordo. Sarebbe molto utile poter passare dall'aggiornamento del sistema operativo x all'aggiornamento x + 1 (la differenza potrebbe includere molto più di un pacchetto kernel) con un semplice riavvio. Questo è possibile con OpenSolaris.
knweiss,

Tutto è possibile con Solaris, tranne trovare driver stabili ;-)
mbq

5

Potresti provare a usare uno strumento come etckeeper . Questo strumento mantiene semplicemente i file di configurazione a livello di sistema in un repository di controllo versione e semplifica il rollback e applica nuovamente qualsiasi modifica.

Ma, ad essere sincero, non ho mai avuto bisogno di ripristinare qualsiasi cambiamento derivante dagli aggiornamenti sui miei sistemi debian / stable. Lo uso per correggere errori che ho fatto manualmente.


Uso etckeeper, ma in realtà lo trovo più utile per visualizzare una sequenza temporale di modifiche che per il rollback (ovviamente ottieni entrambe le abilità). L'utilizzo del server web integrato nel back-end (ad es. Hg, git, bzr, ecc.) È spesso il più semplice:sudo hg serve -R /etc

3

TMK, la funzione di ripristino di Windows annulla solo le modifiche al registro e ad alcune directory critiche. Linux non ha questo.

Potresti provare l'approccio manuale con i backup. È sufficiente eseguire il backup della directory principale e dell'elenco dei programmi da Synaptic e utilizzarlo come punto di ripristino.


3

Nota che Ubuntu in particolare (ma probabilmente anche Debian) non rimuoverà i vecchi pacchetti del kernel durante l'installazione degli aggiornamenti, e puoi configurare il bootloader in modo da presentare un elenco di kernel da scegliere all'avvio.

Questo crea automaticamente "punti di ripristino" - solo per il kernel - perché puoi scegliere la versione precedente se la più recente causa problemi. Per quanto ne so, Windows non ha nulla del genere per i suoi aggiornamenti del kernel. (E soprattutto per gli utenti domestici, non vorrei capire come aiutare uno a diagnosticare e riparare un sistema non avviabile a causa di un aggiornamento del kernel.)


3

C'è uno strumento chiamato Timeshift. ( http://www.teejeetech.in/p/timeshift.html ) Non l'ho usato, ma sembra promettente e ho sentito cose positive dagli utenti. Le istantanee sono progettate per evitare la duplicazione dei dati. E non avere paura del sito Web dall'aspetto oscuro. :)


2

Se si utilizza Logical Volume Manager per gestire il contenuto dei dischi rigidi, è possibile ottenerlo gratuitamente in una certa misura utilizzando le istantanee. Per citare il grande HOWTO : "Un esempio è quello di creare un'istantanea di un volume, montare l'istantanea e provare un programma sperimentale che cambi i file su quel volume. Se non ti piace quello che ha fatto, puoi smontare l'istantanea, rimuoverla, e montare il filesystem originale al suo posto. "


Mi piacerebbe notare che il partizionamento del disco suggerito su Ubuntu 12.04+ utilizza LVM, quindi questo è davvero il miglior suggerimento.
Kevin Inf

1

A seconda della tecnologia della VM, è possibile arrestare / sospendere / mettere in pausa la VM, scaricare il core e copiare l'immagine della VM. In caso contrario, ripristinare l'originale.

Se si utilizza direttamente un volume logico, è possibile creare uno snapshot LVM basato sul LV originale. Prova un aggiornamento e, se funziona, lo ripeti sulla VM originale (vedi lvcreate (8) -s)

O usando il vecchio catrame d'oro (1). Si crea una tar ball completa dello spazio utente, si ripristinano i file e si rimuovono i file che non erano nella tar ball originale.


Dalla domanda: "Esiste un approccio di installazione-ripristino che non dipende da una configurazione della macchina virtuale"?
Ben Voigt,

1

Al momento Linux non offre davvero tale funzionalità, sebbene sarebbe molto utile.

Tuttavia, l'articolo Unbreakable upgrades, ZFS e Apt descrive la funzionalità apt-clone della distribuzione dello storage Nexenta basata su Linux e suggerisce ...

C'è anche un nuovo filesystem creato in parte come risposta a ZFS, chiamato BTRFS, che avrà molti dei vantaggi di ZFS e potrebbe essere in grado di abilitare "aggiornamenti indistruttibili" per le distribuzioni Linux medie come Ubuntu anche in futuro.

Per prima cosa abbiamo bisogno di un filesystem Copy-On-Write (COW) utilizzabile per Linux prima che una tale funzione possa essere implementata negli installatori / programmi di aggiornamento del sistema in modo sano.

Nota: sebbene Nexenta sia basato su Linux, non usa il kernel Linux. Utilizza il kernel OpenSolaris e ZFS.


Non intendo scegliere i tuoi nerd, ma basato su Linux senza kernel Linux è un po 'un ossimoro.
Seamus Connor,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.