Il modo migliore per clonare un'installazione (copia su hardware identico)


53

Un po 'come questa domanda, ma leggermente diversa (penso), in quanto ho 6 macchine identiche Acer Aspire Revo R3610. Uno è (quasi) configurato per le mie esigenze - quando avrò finito di prepararmi vorrei rendere le altre 5 macchine assolutamente uguali. Sono molto nuovo su Ubuntu, qual è il modo più semplice (più semplice) per farlo?

Le macchine vivranno su reti diverse se ciò potrebbe altrimenti rappresentare un problema (ad es. Con Windows è possibile clonare i dischi ma in seguito è necessario apportare modifiche al registro se verranno eseguite sulla stessa rete, ecc.). L'hardware di tutte e 6 le macchine è, lo sottolineo, lo stesso!

Come posso clonare efficacemente un'immagine sorgente su queste macchine identiche?

Limitare un software / soluzione per risposta

Risposte:


31

Clonezilla suona come si adatta alle tue esigenze


1
Totalmente lo strumento giusto per il lavoro. Mia mamma esegue "Mumbuntu" e prendo periodicamente un'istantanea del suo Acer Revo usando clonezilla e lo porto a casa per ripristinarlo su un Revo che possiedo come backup. Funziona a meraviglia.
popey,

7
Uno dei vantaggi dell'uso di strumenti come partimage e ntfsclone (che è ciò che Clonezilla usa per creare l'immagine del disco) è che comprendono il filesystem sottostante su ciascuna partizione, che consente loro di copiare solo i blocchi usati. Poiché dd non dispone di questa funzionalità, deve copiare ogni byte della partizione, indipendentemente dal fatto che sia utilizzato o meno.
Evan,

1
Fa schifo Impossibile clonare dopo due giorni di lavoro. Si blocca sull'alculazione di bitmap ... Usa Windows e Acronis Trueimage
Olcay Ertaş,

DD non renderà il CD di backup avviabile? È questo il motivo per usare CloneZilla?

@YumYumYum: ddcrea copie di un file / partizione / unità. Quindi, se cloni un CD avviabile ( .isoimmagine o CDFSpartizione), anche il risultato sarà avviabile. Ma ddsarà non "convertito" un dato insieme di cartelle / file ad un'immagine avviabile.
MestreLion

17

dd

Una copia di basso livello usando dd farebbe il trucco!

Fai attenzione agli indirizzi IP e ai nomi host in conflitto.

Fondamentalmente inserire l'unità di origine e l'unità di destinazione nella stessa macchina, avviare in un cd live. Ed esegui qualcosa di simile al seguente dove si /dev/sdatrova l'origine e /dev/sdbla destinazione:

dd if=/dev/sda of=/dev/sdb bs=4096

Ricordo gli operandi di:

if -> file di input

of -> file di output

bs -> dimensione del blocco (quanti byte leggere alla volta)


3
Certo, perché no? = / Ho visto persone farlo e ho visto persone non farlo. Esiste una guida di stile da qualche parte alle risposte?
Derek,

se hai l'IP dinamico abilitato, temporaneamente prima di creare quel CD / USB di avvio / backup. Non ci dovrebbe essere alcun problema che credo per IP in conflitto. Finché è un backup dalla A alla Z che conta davvero per me, a causa di molti driver che ho avuto.

2
Quanto è sicuro, considerando qualsiasi chiave pubblica / privata utilizzata ad esempio da OpenSSH sarebbe identica? Cosa dovremmo cambiare per mantenere il sistema sicuro (diverso dove non lo vogliamo essere diverso)?
jos

Che cosa intendi per "qualcosa del genere? Sono positivo per sda e sdb ma non capisco perché hai scelto quella bs.
SDsolar,

3

Creare un'immagine utilizzando Remastersys , trasferirla su una pen drive utilizzando l' utilità Startup Disk Creator e installarla su un altro sistema.


3

Il modo più semplice per farlo è eseguire un'installazione Ubuntu senza limiti sul disco rigido, installare VirtualBox e configurare una macchina Ubuntu virtuale. Esegui la tua macchina virtuale e configura l'installazione proprio come la vuoi con tutte le campane e fischietti che desideri. Fai tutto il lavoro e il gioco sul computer virtuale.

VirtualBox mantiene la macchina virtuale come un file di immagine del disco di grandi dimensioni (.vdi) insieme ad alcuni altri file di configurazione molto più piccoli. Ogni volta che vuoi eseguire il backup della tua macchina virtuale, basta spegnerla e copiarne la directory nella posizione di backup. A tale scopo utilizzo un'unità esterna Passport.

In questo momento, c'è sia una macchina virtuale Windows 7 che una Ubuntu 12 su quell'unità esterna. Tutti gli aggiornamenti di sistema, programmi, file personali, immagini, qualunque cosa, vengono salvati in quelle macchine virtuali. Un backup di questo tipo è molto veloce, poiché un grande file di immagine del disco verrà trasferito molto più rapidamente di un gruppo di singoli file. Poiché VirtualBox mantiene sempre i file in quel formato, la macchina virtuale è sempre configurata per il backup.

Un vantaggio di questa configurazione è che posso eseguire quelle macchine virtuali dall'unità esterna su qualsiasi computer con VirtualBox installato, quindi ora, invece di trascinare il mio computer dappertutto, porto semplicemente la mia unità esterna con Windows e Ubuntu, installa VirtualBox su qualunque sia il computer che intendo utilizzare (ho tutti i file di installazione di VirtualBox anche sul mio hd esterno - sono disponibili per tutti i principali sistemi operativi) e sono pronto per partire. Posso copiare la mia macchina virtuale sul computer che sto utilizzando o semplicemente eseguirla dall'unità esterna.

Se il tuo computer si blocca e muore a un certo punto, chi se ne frega, basta prendere il disco di installazione di Ubuntu, installarlo sul tuo computer nuovo o riparato, collegare l'unità esterna, installare VirtualBox e copiare le macchine virtuali sul tuo computer - problema risolto con stress minimo, perdita di tempo e perdita di dati. La quantità di dati persi dipende dall'ultimo backup. Per quanto mi riguarda, eseguo un nuovo backup ogni volta che apporto una modifica importante o aggiungo un programma difficile da ottenere. Assicurati solo che la tua macchina virtuale funzioni normalmente quando lo fai. Non vorresti copiare una macchina corrotta su una buona macchina.

E no, non lavoro per VirtualBox.


Lo adoro. Upvote. Potrei farlo solo sulla mia prossima macchina.
SDsolar,


2

Vorrei prendere un computer nel modo desiderato e installare il pacchetto openssh-server. Genera una coppia di chiavi ssh con ssh-keygen -t rsa. Aggiungi la chiave pubblica a /root/.ssh/authorized_keys2. Quindi vorrei avviare i nuovi computer con un cd live e collegare una chiavetta USB con la chiave privata ssh. Usa gparted per creare una nuova partizione. Quindi montare la nuova partizione ed eseguire qualcosa di similesudo rsync -avzx -e "ssh -i /media/disk/path/to/privatekey" --exclude=".gvfs" root@<ImageComputerIP>:/ /path/to/new/partition/

Utilizzare il blkidcomando per trovare l'UUID del filesystem appena creato. Modifica il /path/to/new/partition/etc/fstabper riflettere il nuovo UUID (e il tipo di filesystem se hai usato un filesystem diverso).

Quindi seguirei le istruzioni su https://help.ubuntu.com/community/Grub2/Installing#via_ChRoot su come installare da un chroot.

Una versione semplificata di quella pagina (che non tiene conto di lvm, raid software o bcache, o separato / boot come fa la pagina wiki):

Montare i filesystem virtuali critici. Esegui quanto segue come singolo comando:

for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done

Chroot nel tuo normale dispositivo di sistema:

sudo chroot /mnt

Reinstallare GRUB 2 (sostituire il dispositivo corretto con sda, sdb, ecc. Non specificare un numero di partizione):

grub-install /dev/sdX

Ricrea il file di menu di GRUB 2 (grub.cfg)

update-grub

Esci da chroot: CTRL-D sulla tastiera

A proposito, questo funziona bene anche per il backup. Ubuntu, a differenza di Windows, non sembra avere problemi con il trapianto su hardware diverso. Ho inserito i dischi rigidi da un computer all'altro e ha funzionato bene, ho copiato le installazioni su hardware diverso e ha funzionato bene.


Grazie per questo - ne ho un altro in arrivo tra poco, ci proverò. Saluti
robsoft

Il link di riferimento al momento non menziona chroot né alcun metodo. Ecco perché è una buona idea citare parti pertinenti delle tue fonti.
Henno,

@Henno La pagina wiki è stata spostata. Il problema con l'inclusione della pagina è che il wiki si tiene aggiornato con cose nuove come bcache e semplicemente copiando il contenuto della pagina mancherà quegli aggiornamenti, ma il lato negativo del solo collegamento che è roba può spostarti. Ad ogni modo, collegamento aggiornato e una versione ridotta inclusa.
Azendale,


1

G4L

Ghost per Linux

Ghost per Linux è uno strumento di imaging e clonazione di hard disk e partizioni simile a Norton Ghost (c) e (tm) di Symantec. Le immagini create vengono opzionalmente compresse e possono essere archiviate su un disco rigido locale o trasferite su un server FTP anonimo. Un'unità può essere clonata usando la funzione Click'n'Clone. g4l supporta la suddivisione dei file se il filesystem locale non supporta la scrittura di file> 2 GB. Il kernel incluso supporta le unità ATA, ATA seriale e SCSI. Sono supportate schede di rete comuni. È impacchettato come immagine CD avviabile con una GUI di ncurses per un facile utilizzo.


OH MIO DIO. Questo è esattamente ciò che desideravo da secoli. Anche per Windows. TNX per il post. Lo controllerò subito.
SDsolar,

1

fSArchiver

Non so perché nessuno lo abbia menzionato. Ciò è particolarmente utile quando si desidera ripristinare il contenuto della partizione su un altro tipo di file system (ad esempio, ripristinare il contenuto ext4 su ext2 o reiserfs) o se si desidera ripristinare su una partizione più piccola.

L'ho usato ed è molto semplice. Ad esempio, per clonare una partizione dire /dev/sda1di usare un comando come questo

fsarchiver -A -j 2 -z 1 savefs /media/anwar/USB_Drive/myrootpartition /dev/sda1

L' -Aopzione ti consente di copiare la partizione anche se viene utilizzata! Grande funzionalità!

-j 2dice di usare 2 core della CPU per la compressione. Utile per CPU multi-core e se si utilizza la compressione

-z 1 imposta il livello di compressione.

Per ripristinare il file system utilizzato

fsarchiver restfs /data/myrootpartition.fsa id=0,dest=/dev/sda2

Il id=0dice che sei il ripristino del primo filesystem dall'archivio (Anche se non si è salvato più partizioni su un unico archivio, è necessario specificarlo). E dest=/dev/sda2imposta la destinazione del ripristino.


0

Lo faccio molto, usando rsync.

Per prima cosa puoi eseguire rsync per caricare tutti i dati su un disco rigido esterno (il tuo disco rigido esterno dovrebbe essere in ext4 - lo uso, quindi so che funziona): suppongo che tu abbia due partizioni: / dev / sda1 (root) e / dev / sda2 (scambio).

Esegui sul tuo computer originale:

sudo rsync -avuorpESHAX /* /your/hard/drive

Dopo aver copiato i dati, avviare il computer successivo con una chiavetta USB e formattare il disco rigido interno come disco rigido originale.

Montare l'unità esterna su /mnte copiare gli UUID di tutte le partizioni. Modifica gli UUID delle partizioni del nuovo computer e inserisci gli stessi UUID che hai copiato dai dati originali (è presente /mnt/etc/fstab).

Chiudi lo scambio:

sudo swapoff -a

Crea un nuovo scambio usando l'UUID originale, copiato da /mnt/etc/fstab:

sudo mkswap /dev/sda2 -U original-UUID

(Suppongo che il tuo swap sia in /dev/sda2)

Successivamente, modifica l'UUID di /dev/sda1: (la partizione deve essere smontata per poter cambiare l'UUID)

sudo umount /mnt
sudo tune2fs /dev/sda1 -U old-UUID

Fatto ciò, monta la partizione di destinazione:

sudo mount /dev/sda1 /mnt

Inverti rsync verso la destinazione:

sudo rsync -avuorpESHAX /media/your-backup /mnt

Reinstallare il grub:

sudo grub-install --root-directory /mnt /dev/sda

Questo funzionerà. Ricordarsi di modificare /etc/hostnamee /etc/hostscambiare il nome host per ogni macchina per evitare conflitti di rete.


-1

Non essendo mai stato in questa situazione (non ho centinaia di server - ho sempre usato solo immagini di base), posso solo darti il ​​mio istinto.

A parte questo, direi che netboot è probabilmente la soluzione migliore. Crea un server principale, fallo fare quello che vuoi e poi avvia e installa tutte le altre macchine da esso. Lo scripting dovrebbe avvenire automaticamente (ala run-once) non dovrebbe essere troppo difficile. Fai tutte le cose secondarie attraverso kickstart.

Altro (anche se è un po 'vecchio): https://help.ubuntu.com/community/PXEInstallServer

Modifica: c'è un'applicazione chiamata system-config-kickstartche dovrebbe aiutare a rendere la generazione del file kickstart un po 'più semplice. YMMV.

testo alternativo


Per quanto ne so questo system-config-kickstartè fatto apposta per fedora.
Shaharia Azam,

-1

Un'altra opzione per installazioni di massa è l' approccio Ubuntu Landscape / private cloud in cui (sostanzialmente) si esegue il provisioning di server dinamicamente basati su un pool di hardware. Roba intelligente.

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.