Immagine di sistema del sistema Debian in esecuzione?


22

È possibile eseguire il backup di un sistema Debian in esecuzione su un qualche tipo di file immagine, che potrebbe essere semplicemente riscritto su un altro disco rigido usando dd in caso di guasti al sistema Debian originale (di cui è stato eseguito il backup)?

In particolare sto cercando uno strumento direttamente disponibile nei repository, poiché ho Debian Wheezy in esecuzione su un Raspberry Pi e quindi ho bisogno del supporto per l'architettura ARM, che è data abbastanza affidabile per i pacchetti dei repository Debian.


2
Non consiglierei di provare a ottenere una copia blocco per blocco dal filesystem montato su rw. La scrittura più piccola può corromperla e pensi di avere un backup realizzabile. Quindi mount -o remount,rol'unità che si sta copiando se si opta per dd, dumpo simili. Copiare con il filesystem con rsynco qualsiasi altro metodo incluso cpè sicuro per il sistema live.
WhimsicalWombat,

Risposte:


15

ddè utile se non ti dispiace generare un file di immagine esattamente delle dimensioni del tuo disco grezzo. rsyncè utile se si desidera un facile accesso a livello di file. Ma il mezzo standard per il backup di un filesystem è dumpe restore( aptitude install dump).

Per un dispositivo come Raspberry Pi, farei il backup come segue, supponendo una tabella di partizioni MS-DOS e che il disco sia / dev / sda:

  • dd if=/dev/sda of=sda-boot-sectors.img count=2048 per ottenere un'immagine della sezione di avvio del disco.
  • fdisk -lu /dev/sda >sda-partition-table.txt per riferimento umano successivo.
  • dump -0af sda1-root-level0.dump /dev/sda1 e ripetere per ogni partizione di cui si desidera eseguire il backup.

È quindi possibile comprimere il lotto e lasciarlo in un luogo sicuro. Per ripristinare, dovrai utilizzare ddper ripristinare la tabella delle partizioni e i settori di avvio, ricaricare la tabella delle partizioni, creare i nuovi filesystem e utilizzarli cd /mnt/new-filesystem; restore -rf /some-location/sda1-root-level0.dump.

I lati positivi:

  • dump ottiene una copia completa del filesystem, inclusi ACL, attributi estesi, proprietà, file sparsi, attributi speciali del filesystem - tutto viene scaricato così com'è.
  • Copierà solo i blocchi necessari, ignorando quelli inutilizzati.
  • È lo strumento unix standard e leggibile da molti altri strumenti unix.

Gli svantaggi:

  • produrrà istantanee danneggiate se il file system viene scritto durante il dump
  • è più difficile montare l'immagine di backup (cosa che puoi fare con le immagini del disco) o accedere a singoli file (che puoi ottenere con i rsyncbackup).
  • È specifico del tipo di file system. Puoi scaricare un ext3filesystem e ripristinarlo in ext4uno, ma puoi scaricare qualsiasi tipo di filesystem. La maggior parte dei filesystem maturi ha le proprie dumpversioni. Lo standard di Debian dumpfa ext2, ext3e ext4. Se si utilizza un filesystem specifico di Flash, le opzioni potrebbero essere diverse.

Non è indicato nella manpage per dumpcui il filesystem non dovrebbe essere scritto. Voglio dire, sembra una limitazione ragionevole, ma è un peccato che non sia menzionato nella manpage, quindi qualcuno potrebbe commettere questo errore ...
imz - Ivan Zakharyaschev

Grazie al tuo post, ho imparato a conoscere questo strumento (dump / restore). Lo userò per fare una copia di un filesystem con qualcosa del tipo:mkfs.ext4 /dev/sda1; mount /dev/sda1 /mnt/disk; cd /mnt/disk; dump -0af - /dev/sda5 | restore -rf -
imz - Ivan Zakharyaschev

5

Utilizzare ddper il settore di avvio e rsync -aHSper i file. Devi escludere filesystem "virtuali" come / proc / sys e qualsiasi disco RAM (tmpfs).

Se si desidera mantenere anche il partizionamento, è possibile scaricarlo con sfdisko ricrearlo con parted.


Grazie, sembra molto interessante, l'hai già risolto in passato? Come faccio a creare un'immagine completa da queste parti, basta usare un dispositivo loopkack? (Sì, vuoi continuare a partizionare e così via. Vuoi un'immagine pronta per essere scritta su una nuova scheda / disco SD senza ulteriori
problemi

@ stefan.at.wpf Ho appena confuso alcune delle mie soluzioni per la clonazione di macchine virtuali, creando server fisici (autoyast / kistart) creando un raid1-mirror da un sistema non mirrorato e il solito modo di replicare parti (statiche) del filesystem per i nodi del cluster. Non uso questo myselv. Il mio metodo sarebbe di installare automaticamente il nuovo server (incluso un client di backup) e quindi ripristinare tramite backup i contenuti del vecchio server sul nuovo server.
Nils,

4

Per Debian , è sufficiente eseguire il backup dei dati e dei file di configurazione .

Per eseguire il backup dello stato esistente:

  • Eseguire il backup delle selezioni dei pacchetti con dpkg --get-selections > dpkg_selections.
  • Eseguire il backup del database debconf con sudo debconf-get-selections > debconf_selections.

Per applicare questo a un nuovo sistema:

  • Innanzitutto applicare le selezioni debconf con sudo debconf-set-selections < debconf_selections.
  • Applicare le selezioni dei pacchetti con dpkg --set-selections < dpkg_selections.
  • Installa i pacchetti con apt-get dselect-upgrade.

I tuoi dati dovrebbero essere principalmente in /homee /var(ad esempio, /var/lib/mysqlper MySQL, /var/wwwper Apache, ecc.). Dovresti essere in grado di capire quali applicazioni sono importanti per te.

La configurazione sarà principalmente in /etc. Ancora una volta, non dovrebbe essere difficile individuare ciò che è importante per te.


Per debconf-get-selectioncorrereapt-get install debconf-utils
Pandita,

1

Non so, se questo è buono da fare, quando il sistema è in esecuzione, ma questo è quello che faccio.

sudo dd if=/dev/mmcblk0 of=/path/to/backup/directory/backup.img bs=1M

come ho detto, forse esiste una soluzione migliore, in quel caso vorrei saperlo anche io!


1

Ho provato così tanto software di backup e ripristino e non sono mai stato felice. Questo è quello che faccio ora: ho un secondo Debian installato su un computer di riserva (stesso MB, scheda NIC, ecc.). Ogni sera sincronizzo dalla macchina A alla macchina B. Ci sono alcuni file che tengo indietro (/ etc / network / interfaces, / etc / hosts, / etc / hostname) poiché non voglio conflitti tra i due sistemi in esecuzione. In realtà, ne ho copie in un'altra cartella. Inoltre disabilito alcuni servizi che non ho bisogno di eseguire sulla macchina B (postfix, mysql, ecc.). Ho uno script scritto sulla macchina B che lo trasformerà sostanzialmente nella macchina A (sostituisce quei file che ho trattenuto), riavvia la scheda NIC e abilita i servizi che sono stati disabilitati. Naturalmente la macchina A deve essere spenta quando eseguo lo script o ci sarà il caos. Ogni mese collaudo la macchina B spegnendo la macchina A, eseguendo lo script, e fare alcuni test per assicurarsi che sia aggiornato e che funzioni correttamente. Esso funziona magicamente!


0

Dai un'occhiata a Clonezilla. Lo vedo elencato nei repository Debian standard. http://clonezilla.org/

Modifica: probabilmente no, i requisiti dell'elenco Clonezilla sulla loro prima pagina: "Processore X86 o x86-64"


Progetto interessante però, grazie comunque :-)
stefan.at.wpf

0

Per eseguire il backup del mio pi, rimuovo la scheda microSD e la inserisco nel mio laptop. Quindi esegui a ddper produrre un file sul mio laptop dell'intero disco, come sopra:

dd if=/dev/mmcblk0 of=/path/to/backup/directory/backup.img bs=1M

2
Questo sta letteralmente ignorando la parte più importante della domanda. La domanda è chiedersi come realizzare un'immagine live di un sistema e quando si spostano i dischi in giro è meglio aver spento il sistema.
Sirene,

0

Usa systemback. L'ho fatto funzionare anche con debian stretch. Ti dà un bel usb di avvio dal vivo con esattamente il desktop configurato.

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.