Potrebbe essere possibile fare una copia a caldo di un sistema?


10

Vorrei fare il backup del mio sistema senza spegnerlo. Il clone di sistema dovrebbe anche essere in grado di funzionare su un altro computer.

Ho provato a "dd" l'intera partizione di sistema su un altro disco, dopodiché mi sono assicurato che non sono state avviate attività amministrative. Penso di dover dire a grub di avviarsi su quel disco, quindi ho eseguito il comando:

grub-install  /dev/sdc1 

ma ho ricevuto questo errore:

The file /boot/grub/stage1 not read correctly.

So che sto facendo non è molto pulito, quindi hai una buona soluzione per raggiungere i miei obiettivi o un'idea per risolvere il problema di grub?


Se devi mantenerlo attivo, ciò significa che sta effettivamente facendo qualcosa. In tal caso, è quasi certo che il contenuto del sistema cambierà durante il backup. Ciò rende i risultati alquanto imprevedibili: testarli molto prima di utilizzarli in produzione.
Joe,

Risposte:


8

Esistono diverse opzioni ognuna con dei compromessi. Non è possibile utilizzare ddper clonare un filesystem mentre è montato in lettura / scrittura o il clone risulterà danneggiato poiché l'origine viene modificata durante la copia, quindi la destinazione sarà parzialmente obsoleta e in parte no. Se vuoi davvero essere in grado di utilizzare ddper copiare a caldo una partizione, puoi farlo con le istantanee LVM . Ciò richiede che tu abbia installato il sistema usando LVM in primo luogo, ma poi puoi creare un'istantanea in qualsiasi momento e poiché l'istantanea è bloccata e non montata, puoi tranquillamente ddl'istantanea, quindi rimuovere l'istantanea. L'altro lato negativo di usareddè che perde tempo a copiare tutto lo spazio inutilizzato nel volume e richiede che la destinazione sia almeno altrettanto grande, anche se la maggior parte della fonte non è utilizzata.

Anziché utilizzare dd, è possibile semplicemente utilizzare strumenti di backup tradizionali come taro dumpper eseguire il backup dell'istantanea. Questo ha il vantaggio di non perdere tempo a copiare spazio libero e può essere ripristinato su una partizione più piccola purché abbia spazio per i file. È inoltre possibile estrarre solo alcuni dei file per eseguire un ripristino parziale. Inoltre, non è necessario utilizzare LVM con questo metodo: fintanto che si è ragionevolmente sicuri che nessun file venga modificato quando si esegue il backup, è sicuro farlo su un filesystem montato. La cosa peggiore che può succedere è che un singolo file che viene modificato durante il backup sia corrotto, piuttosto che l'intero backup venga corrotto, come può succedere dd.

Come sembra aver capito, dopo aver ripristinato il filesystem, è ancora necessario reinstallare grub per avviare il sistema. Non sono sicuro del motivo per cui hai riscontrato questo errore quando hai provato, ma sembra che stavi usando grub-legacy, poiché grub2 non ha uno stage1.


Non ho usato LVM, ma potrei, sto cercando una soluzione duratura. è sufficiente copiare tutto l'albero del sistema (escluso proc) e quindi modificare grub?
Gael

@Gael, è sufficiente copiare tutti i file e reinstallare grub, sì. Potrebbe anche essere necessario aggiornare gli UUID in / etc / fstab. Si noti che se si sta utilizzando tarsi desidera escludere non solo / proc, ma anche / dev, / sys e / run, oppure utilizzare l' --one-file-systemopzione per impedire che scenda in altri filesystem.
psusi

grazie, proverò con tar. Questa soluzione può consentire il pieno controllo del backup.
Gael

3

Usare qualcosa di simile rsynco tarcopiare la partizione potrebbe essere più semplice. Monterei la partizione su un secondo punto di montaggio come /mntprima della copia. Queste opzioni consentono anche di modificare le dimensioni o il tipo di partizione. Potresti avere strutture anche su partizioni aggiuntive. Ho spesso partizioni separate per /vare /usr. Anche questi dovranno essere considerati.

Potrebbe essere necessario scavare nella grubdocumentazione per determinare come indirizzare correttamente il disco e la partizione. install-grubpotrebbe fare ipotesi errate che non fanno ciò che desideri.

Esistono strumenti come quelli mondoche consentono di creare un CD di ripristino di avvio con il sistema operativo installato su di esso.


Stavo usando dd perché mi dicevo che altri strumenti di copia dei file copieranno solo i file, non mbr e la tabella delle partizioni. Ho gettato uno sguardo sul mondo e potrebbe essere la soluzione più semplice. Grazie
Gael

@Gael Se stai solo clonando SD1, non otterrai l'MBR. Esistono numerosi strumenti che aggiorneranno l'MBR se necessario. Normalmente ha già il codice per cercare un record di avvio.
BillThor

1

Penso che non ci sia una vera opzione per fare un backup affidabile di un sistema in esecuzione a livello di dispositivo: il tuo file system verrebbe troppo danneggiato in quanto non puoi congelare lo stato corrente e l'operazione di backup impiega molto tempo.

Tuttavia potresti provare le seguenti opzioni:

  1. Esegui il sistema in una macchina virtuale. È possibile creare un'istantanea del sistema e quindi eseguire un backup di questa istantanea. Al termine del backup, l'istantanea può essere facilmente scartata. Questo risolve i problemi sopra menzionati.
  2. Eseguire il backup a livello di file system, non a livello di dispositivo. Posso consigliare rsnapshot per questo.

Sto cercando una soluzione che consenta di eseguire il backup di un sistema senza spegnerlo. Pertanto, indipendentemente dal metodo utilizzato, il sistema deve essere in esecuzione. Se è sufficiente copiare solo il filesystem per copiare il sistema, rsync farà il lavoro, cosa porta rsnapshot?
Gael,

rsnapshot ti fornisce tutti i backup multipli incrementali di cui hai bisogno (orario, giornaliero, settimanale, mensile) e i backup sono disponibili in una struttura di directory completa, nonostante siano incrementali.
Vilmantas Baranauskas,
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.