Ripristino completo del sistema linux


20

Conosco rsync per eseguire il backup di vari file dal mio sistema, ma qual è il modo migliore per ripristinare completamente una macchina.

Quello che ho provato in passato è:

  1. Esegui un formato / reinstallazione di base dai dischi di installazione di Fedora
  2. Assicurarsi che la rete sia abilitata
  3. Copia tutto dal backup rsync sulla parte superiore del sistema appena installato

In questo modo funziona, ma non credo che tutti i pacchetti installati funzionino al 100% in seguito.

Voglio essere in grado di ripristinare il mio sistema con il minimo sforzo e tutto funziona allo stesso modo del momento in cui è stato eseguito il backup. Inoltre, se possibile, installare su altre macchine ed essenzialmente avere due macchine con gli stessi pacchetti e dati.


Quando dici di voler installare su altri computer, intendi altri 'identici / macchine o più come un desktop e un laptop?
Ichorus,

l'hardware sarebbe diverso ma su entrambi vogliono gli stessi pacchetti software
Simon Foster

Risposte:


17

Ecco cosa ho fatto (questo presuppone un singolo disco, in / dev / sda)

  • usa dd per eseguire il backup dell'MBR e della tabella delle partizioni: "dd bs = 512 count = 1 if = / dev / sda of = / backups / sda.layout"

  • usa rsync per copiare l'intera cosa con qualcosa del tipo: "rsync -axvPH --numeric-ids ..."

Al ripristino lo faccio:

  • avviare la macchina di destinazione con sysrescuecd , in genere avrò il file 'sda.layout' su una chiavetta USB.

  • ripristinare la tabella delle partizioni / MBR con dd: "dd bs = 512 count = 1 if = / path / to / sda.layout = = dev / sda"

  • Utilizzare partprobe (grazie al commentatore Mark) per far rileggere la tabella delle partizioni al kernel.

  • Montare tutte le varie parti in / restore /. Rendo i punti di montaggio identici in restore, quindi se ho / boot, / var sul mio sorgente, finisco con / restore / boot, / restore / var, ecc.

  • usa rsync per ripristinare l'intera cosa.


3
L'ho fatto diverse volte e ha il vantaggio di utilizzare i comandi CLI standard di Linux. Uso rsnapshot, uno script perl attorno a rsync per fare backup su un server centrale. Quindi risincronizza il tutto dopo aver avviato da sysrescuecd e aver scaricato la tabella delle partizioni. A proposito, "partprobe" rileggerà la tabella delle partizioni
Mark Porter il

OK, questo può essere visto come un vile hack ma dato che puoi far rileggere il kernel alla tabella delle partizioni emettendo un sysctl () come fa fdisk, potresti anche avere fdisk - che a differenza di partprobe è sempre presente nella mia esperienza - do it: fdisk / dev / yourdisk << EOF w EOF
Bernd Haug

Grazie per tutti i suggerimenti, sapevo che ci doveva essere una soluzione migliore là fuori. Proverò questi suggerimenti e vedrà cosa funziona meglio per me.
Simon Foster,

3
Non dimenticare il conteggio con dd! "dd bs = 512 if = / dev / sda of = / backups / sda.layout count = 1" e "dd bs = 512 if = / path / to / sda.layout of = / dev / sda count = 1"
Steven,

@Steven: Merda! Grazie per la cattura. Posso votare un commento?
kbyrd,

6

Non clonerò mai del tutto i sistemi. Non si sa mai cosa potrebbe cambiare e l'immagine clonata del sistema è già obsoleta nel momento in cui si verifica una modifica. Il modo migliore per farlo è stabilire una procedura che consenta di produrre sistemi funzionalmente identici. Una possibilità è qualcosa come Kickstart, AutoYaST o strumenti simili. Conserva buoni backup della tua configurazione e utilizza idealmente un sistema di gestione della configurazione come Bcfg2, Puppet o CFEngine per configurare tutto invece di farlo manualmente. Quindi, quando è necessario creare un nuovo sistema simile a un altro, oppure ricreare un sistema esistente, è una procedura semplice e ben definita.


3

Ci vorrebbe più impegno in anticipo, ma Kickstart e Revisor ti consentono di personalizzare un'installazione e utilizzarla su altre macchine. È possibile includere versioni personalizzate dei file delle impostazioni.

Potresti anche considerare di mantenere la tua home directory su una partizione separata. Puoi lasciare quella partizione da sola mentre esegui un'installazione pulita su un'altra partizione.


2

Prendi una copia del cd di ripristino del sistema e, dopo l'installazione minima iniziale, esegui l'avvio, monta e chroot sul disco, quindi esegui rsync. Al termine potrebbe essere necessario eseguire update-grub per avviarlo dal dispositivo di avvio e dal kernel corretti.


2

Ho sempre pensato che il modo Gentoo di installare un nuovo sistema (dal backup o altro) fosse il migliore per la sua semplicità.

  1. Crea un sistema funzionante e minimale.
  2. Carica il sistema di lavoro come disco rigido in LiveCd.
  3. Tarare il filesystem e salvarlo da qualche parte.
  4. Carica il sistema di destinazione con un livecd.
  5. Preparare il disco rigido di destinazione e montarlo.
  6. Fino al disco fisso montato.
  7. Inserisci chroot.
  8. Imposta bootloader e altre cose dipendenti dal sistema.
  9. Riavvia e vai.
  10. Installa nuovo software / copia le cartelle utente / aggiungi altri file se necessario.

2

Prova clonezilla live cd. È possibile avviare una sessione live e creare un'immagine del computer senza dover installare nulla. È quindi possibile archiviare la copia dell'immagine su una condivisione di rete o su una macchina remota e così via.


0

Se è esattamente la stessa macchina, userei semplicemente ddper creare un'immagine del disco, quindi ri-immaginarla come necessario (eventualmente cambiando alcune configurazioni in seguito, se appropriato).

Se stai cambiando hardware, ho avuto successo nel creare un tarball o completare il backup rsync della radice del file system. Non sono sicuro del motivo per cui prima avresti bisogno di un'installazione completa - fintanto che esegui un backup completo, l'installazione di base di Fedora non dovrebbe essere un prerequisito.


0

La procedura può causare numerosi problemi e deve essere evitata.

Esistono due modi principali consigliati per risolvere questo problema e un terzo se si sta semplicemente cercando di creare un ambiente di sviluppo.

Imaging

Se l'hardware che ripristinerai sarà lo stesso o abbastanza simile, usa uno strumento di imaging del disco per creare una copia dell'intero disco rigido o array. Quando si desidera ripristinare, è sufficiente riesaminare le macchine in questione con questa immagine. Se immagini su più macchine, tieni presente che dovrai aggiornare le impostazioni specifiche della macchina sugli altri dispositivi (nome host, indirizzo IP statico, ecc ...) in modo che non siano in conflitto tra loro.

Per eseguire l'imaging reale, consiglierei qualsiasi strumento o prodotto in grado di clonare dischi rigidi.

Backup di configurazione / home directory

Sul tuo computer principale, esegui regolarmente il backup (con qualunque metodo ti piaccia) qualunque delle seguenti directory (o altre) che richiedi:

/ home - Tutte le impostazioni personali dell'utente, documenti e file
/ etc - configurazioni
/ opt - software speciale non installato tramite il gestore pacchetti
/ usr / local - software speciale non installato tramite il gestore pacchetti
/ var - log e simili

Durante il ripristino, reinstallare il sistema operativo sui computer in questione, quindi copiare ciascuno di questi (o solo i file pertinenti) nella posizione corretta.

Macchine virtuali con istantanee

Crea una macchina virtuale in VMWare (o qualsiasi altra cosa tu preferisca). Quando è configurato come desideri, crea un'istantanea. Questa istantanea può quindi essere facilmente ripristinata su un numero qualsiasi di macchine virtuali nuove o esistenti.

In generale, è necessario eseguire il backup solo di dati e configurazioni (comunque siano definiti). Il sistema operativo e il software possono essere banalmente ricostruiti in qualsiasi momento: solo il tuo contenuto è prezioso. Se questa configurazione è per lo sviluppo e devi garantire un ambiente identico (invece di far semplicemente funzionare di nuovo le cose), allora le istantanee in una macchina virtuale sono davvero la soluzione migliore.

L'imaging è la soluzione della forza bruta. Se puoi, esegui il backup dei dati e non preoccuparti del sistema operativo stesso. Cercare di ripristinarlo completamente richiede problemi.

Se puoi chiarire qual è il tuo intento finale qui, posso fornire una soluzione più dettagliata.


0

Dato che dici "l'hardware sarà diverso", SystemImager può tornare molto utile.

È solo un mucchio di script wrapper per PXE e Rsync. Pertanto, il "backup" che crea è solo una struttura di directory completa del server Linux di cui è stato eseguito il backup. Puoi "cd" in questa directory e cambiare le cose mentre le dai da mangiare. (SystemImager gestisce la modifica delle impostazioni di rete da solo quando si espelle l'immagine.)

È possibile eseguire il chroot nel server di backup ed eseguire yum o apt per installare il software prima di espellere l'immagine.

Modifica: è possibile dare un'occhiata allo script SI che crea partizioni / volumi logici e modificarlo in base alle dimensioni del disco dei computer di destinazione. È inoltre possibile aggiungere / rimuovere i moduli del kernel.


0

Ho avuto molta fortuna con Mondo Rescue. Fondamentalmente esegue il backup di tutti i file e le partizioni su un CD avviabile per un uso successivo. Può gestire i cambiamenti nelle partizioni e nelle unità.

http://www.mondorescue.org/



0
  • Il modo più sicuro è clonare tutti i dischi o almeno le partizioni pertinenti e ripristinarli usando un Live CD.

  • Un altro metodo più efficiente in termini di spazio è utilizzare dump (xfsdump per XFS), ma in questo caso dovrai ricreare (formattare) le partizioni a mano. Non dimenticare di crearli con gli stessi parametri, in particolare UUID e LABEL.

  • È inoltre possibile utilizzare tar con il --xattrs parametro per salvare gli attributi estesi di ciascun file.


1
La rsync moderna su Linux ha -X e -A per attributi estesi e ACL rispettivamente.
kbyrd,

0

partimage e partclone (parti di Clonezilla) sono utili utilità per la creazione di immagini di sistema complete.

Come hai identificato, le immagini di sistema complete non sono necessariamente portabili di sistema: di solito a causa dei nomi dei dispositivi.

Potrebbe essere semplice come reinstallare GRUB (preferibilmente su una partizione separata / avvio) e l'MBR dopo l'imaging (con ad esempio un LiveCD).

Un altro approccio consiste nell'utilizzare gli strumenti di gestione della configurazione per definire le politiche che vengono applicate a un'immagine di base (come le caselle di base di Vagrant); e separare i backup dei dati in blocchi e / o archiviazione oggetti (EBS / S3, Openstack Block Storage / Openstack Object Storage)

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.