La mejor manera de clonar una instalación (copiando a hardware idéntico)


53

Como esta pregunta, pero ligeramente diferente (creo), ya que tengo 6 máquinas Acer Aspire Revo R3610 idénticas. Uno está (casi) configurado según mis requisitos: cuando termine de prepararlo, me gustaría hacer que las otras 5 máquinas sean absolutamente iguales. Soy muy nuevo en Ubuntu, ¿cuál es la forma más sencilla (más fácil) de hacer esto?

Las máquinas vivirán en diferentes redes si eso podría ser un problema (por ejemplo, con Windows puede clonar discos, pero luego debe hacer cambios en el registro si van a ejecutarse en la misma red, etc.). ¡El hardware en las 6 máquinas es, enfatizo, lo mismo!

¿Cómo puedo clonar eficientemente una imagen de origen en estas máquinas idénticas?

Restrinja un software / solución por respuesta

Respuestas:


31

Clonezilla parece que se ajusta a tus necesidades


1
Totalmente la herramienta adecuada para el trabajo. Mi mamá ejecuta 'Mumbuntu' y tomo una instantánea de su Acer Revo periódicamente usando clonezilla y lo llevo a casa para restaurar en un Revo que tengo como respaldo. Funciona de maravilla.
papa

77
Una ventaja de usar herramientas como partimage y ntfsclone (que es lo que Clonezilla usa para crear la imagen del disco) es que entienden el sistema de archivos subyacente en cada partición, lo que les permite copiar solo los bloques usados. Como dd no tiene esta funcionalidad, debe copiar cada byte de la partición, independientemente de si se usa o no.
Evan

1
Apesta. No se pudo clonar después de dos días de trabajo. Se cuelga al calcular mapas de bits ... Utilice Windows y Acronis Trueimage
Olcay Ertaş

¿DD no hará el CD de respaldo de arranque? ¿Es esa la razón por la que usamos CloneZilla?

@YumYumYum: ddhace copias de un archivo / partición / unidad. Entonces, si clonas un CD de arranque (ya sea una .isoimagen o una CDFSpartición), el resultado también será de arranque. Pero ddlo hará no "convertir" un determinado conjunto de carpetas / archivos en una imagen de arranque.
MestreLion

17

dd

¡Una copia de bajo nivel usando dd haría el truco!

Tenga cuidado con las direcciones IP y los nombres de host en conflicto.

Básicamente, coloque la unidad de origen y la unidad de destino en la misma máquina, arranque en un CD en vivo. Y ejecute algo como lo siguiente donde /dev/sdaestá la fuente y /dev/sdbel destino:

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

Recuerdo los operandos de:

if -> archivo de entrada

of -> archivo de salida

bs -> tamaño de bloque (cuántos bytes leer a la vez)


3
¿Seguro Por qué no? = / He visto personas hacer eso y he visto personas que no lo hacen. ¿Hay alguna guía de estilo en algún lugar para responder?
Derek

si tiene Dynamic IP habilitado, temporal antes de hacer ese CD / USB de arranque / respaldo. No debería haber ningún problema, creo que para la IP en conflicto. Siempre que sea una copia de seguridad de la A a la Z, eso realmente me importa, debido a la gran cantidad de controladores que tenía.

2
¿Qué tan seguro es esto, considerando que cualquier clave pública / privada utilizada por, por ejemplo, OpenSSH sería idéntica? ¿Qué necesitaríamos cambiar para mantener el sistema seguro (diferente donde queremos que sea diferente)?
jos

? ¿Qué quiere decir por correr "algo como esto soy positivo de SDA y SDB, pero no entiendo por qué eligió que BS.
SDsolar

3

Cree una imagen con Remastersys , transfiérala a un pen drive con la utilidad Startup Disk Creator e instálela en otro sistema.


3

La forma más fácil de hacer esto es ejecutar una instalación básica de Ubuntu en su disco duro, instalar VirtualBox y configurar una máquina virtual de Ubuntu. Ejecute su máquina virtual y configure esa instalación tal como lo desea con todas las campanas y silbatos que desee. Trabaja y juega todo en la computadora virtual.

VirtualBox mantiene la máquina virtual como un archivo de imagen de disco grande (.vdi) junto con algunos otros archivos de configuración mucho más pequeños. Siempre que desee hacer una copia de seguridad de su máquina virtual, simplemente apáguela y copie su directorio en su ubicación de copia de seguridad. Utilizo una unidad externa Passport para este propósito.

En este momento, hay una máquina virtual Windows 7 y Ubuntu 12 en esa unidad externa. Todas las actualizaciones del sistema, programas, archivos personales, imágenes, lo que sea, se guardan en esas máquinas virtuales. Una copia de seguridad de este tipo es muy rápida, ya que un archivo de imagen de disco grande se transferirá mucho más rápido que un montón de archivos individuales. Como VirtualBox mantiene los archivos en ese formato todo el tiempo, la máquina virtual siempre está configurada para realizar una copia de seguridad.

Una ventaja de esa configuración es que puedo ejecutar esas máquinas virtuales desde el disco externo en cualquier computadora con VirtualBox instalado, así que ahora, en lugar de cargar mi computadora por todas partes, solo traigo mi disco externo con Windows y Ubuntu, instalo VirtualBox en cualquier computadora que planee usar (tengo todos los archivos de instalación de VirtualBox también en mi disco duro externo; están disponibles para todos los sistemas operativos principales), y estoy listo para comenzar. Puedo copiar mi máquina virtual en la computadora que estoy usando o simplemente ejecutarla desde la unidad externa.

Si su computadora falla y muere en algún momento, a quién le importa, simplemente tome su disco de instalación de Ubuntu, instálelo en su computadora nueva o reparada, conecte su unidad externa, instale VirtualBox y copie sus máquinas virtuales nuevamente en su computadora - problema resuelto con un estrés mínimo, pérdida de tiempo y pérdida de datos. La cantidad de datos que pierde depende de cuándo realizó la última copia de seguridad. Para mí, hago una nueva copia de seguridad cada vez que hago un cambio importante o agrego un programa difícil de obtener. Solo asegúrese de que su máquina virtual esté funcionando normalmente cuando lo haga. No querrá copiar una máquina dañada sobre una buena.

Y no, no trabajo para VirtualBox.


Quiéralo. Voto a favor. Podría hacer esto en mi próxima máquina.
SDsolar


2

Obtendría una computadora todo lo que quisiera e instalaría el paquete openssh-server. Genere un par de claves ssh con ssh-keygen -t rsa. Agregue la clave pública a /root/.ssh/authorized_keys2. Luego, arrancaría las nuevas computadoras con un CD en vivo y enchufaría un dispositivo USB con la clave privada ssh. Use gparted para crear una nueva partición. Luego monte la nueva partición y ejecute algo comosudo rsync -avzx -e "ssh -i /media/disk/path/to/privatekey" --exclude=".gvfs" root@<ImageComputerIP>:/ /path/to/new/partition/

Use el blkidcomando para encontrar el UUID del sistema de archivos que acaba de crear. Edite el /path/to/new/partition/etc/fstabpara reflejar el nuevo UUID (y el tipo de sistema de archivos si utilizó un sistema de archivos diferente).

Luego seguiría las instrucciones en https://help.ubuntu.com/community/Grub2/Installing#via_ChRoot sobre cómo instalar desde un chroot.

Una versión simplificada de esa página (que no tiene en cuenta lvm, raid de software o bcache, o separa / arranca como lo hace la página wiki):

Montar los sistemas de archivos virtuales críticos. Ejecute lo siguiente como un solo comando:

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

Chroot en su dispositivo de sistema normal:

sudo chroot /mnt

Vuelva a instalar GRUB 2 (sustituya el dispositivo correcto con sda, sdb, etc. No especifique un número de partición):

grub-install /dev/sdX

Recree el archivo de menú GRUB 2 (grub.cfg)

update-grub

Salga de chroot: CTRL-D en el teclado

Por cierto, esto también funciona bien para la copia de seguridad. Ubuntu, a diferencia de Windows, no parece tener problemas para ser trasplantado a un hardware diferente. Puse discos duros de una computadora en otra y funcionó bien, y copié instalaciones en hardware diferente y funcionó bien.


Gracias por esto. Pronto tendré otro, lo intentaré. Saludos
robsoft

El enlace al que se hace referencia actualmente no menciona chroot ni ningún método. Es por eso que es una buena idea citar partes relevantes de sus fuentes.
Henno

@Henno La página wiki fue movida. El problema con la inclusión de la página es que el wiki se mantiene actualizado con cosas nuevas como bcache y solo copiando el contenido de la página perderá esas actualizaciones, pero la desventaja de vincular eso es algo que puede afectarle. De cualquier manera, enlace actualizado y una versión simplificada incluida.
Azendale


1

G4L

Fantasma para Linux

Ghost para Linux es una herramienta de clonación e imagen de disco duro y de partición similar a Norton Ghost (c) y (tm) de Symantec. Las imágenes creadas se comprimen opcionalmente y pueden almacenarse en un disco duro local o transferirse a un servidor FTP anónimo. Se puede clonar un disco utilizando la función Click'n'Clone. g4l admite la división de archivos si el sistema de archivos local no admite la escritura de archivos> 2 GB. El kernel incluido admite unidades ATA, serial-ATA y SCSI. Se admiten tarjetas de red comunes. Se empaqueta como una imagen de CD de arranque con una GUI ncurses para un uso fácil.


DIOS MIO. Esto es precisamente lo que he querido durante años. Incluso para Windows. TNX para el post. Lo comprobaré de inmediato.
SDsolar

1

Fsarchiver

No sé por qué nadie mencionó esto. Esto es especialmente útil cuando desea restaurar el contenido de la partición en otro tipo de sistema de archivos (por ejemplo, restaurar el contenido ext4 a ext2 o reiserfs) o desea restaurar a una partición más pequeña.

Lo usé y es muy fácil. Por ejemplo, para clonar una partición, digamos /dev/sda1que usa un comando como este

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

¡La -Aopción le permite copiar la partición incluso si se usa! ¡Gran característica!

-j 2dice que use 2 núcleos de CPU para la compresión. Útil para CPU multinúcleo y si usa compresión

-z 1 Establece el nivel de compresión.

Para restaurar el sistema de archivos que usaste

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

El id=0dice que está restaurando el primer sistema de ficheros del archivo (Incluso si no guardan múltiples particiones en un solo archivo, es necesario especificar ella). Y dest=/dev/sda2establece el destino de la restauración.


0

Hago esto mucho, usando rsync.

Primero, puede ejecutar rsync para cargar todos los datos en un disco duro externo (su disco duro externo debe estar en ext4; lo uso, así que sé que funciona): supongo que tiene dos particiones: / dev / sda1 (root) y / dev / sda2 (intercambio).

Ejecutar en su computadora original:

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

Después de copiar los datos, inicie su próxima computadora con un dispositivo USB y formatee el disco duro interno como el disco duro original.

Monte su unidad externa /mnty copie los UUID de todas las particiones. Edite los UUID de las particiones de la nueva computadora y coloque los mismos UUID que ha copiado de los datos originales (están en /mnt/etc/fstab).

Cierra el intercambio:

sudo swapoff -a

Cree un nuevo intercambio utilizando el UUID original, copiado de /mnt/etc/fstab:

sudo mkswap /dev/sda2 -U original-UUID

(Supongo que su intercambio está en /dev/sda2)

A continuación, cambie el UUID de /dev/sda1: (la partición debe desmontarse para cambiar los UUID)

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

Hecho esto, monte la partición de destino:

sudo mount /dev/sda1 /mnt

Invierta rsync al destino:

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

Vuelva a instalar el grub:

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

Esto funcionará Recuerde editar /etc/hostnamey /etc/hostscambiar el nombre de host de cada máquina para evitar conflictos de red.


-1

Como nunca he estado en esta situación (no tengo cientos de servidores, siempre he usado imágenes base), solo puedo darte mi instinto.

Aparte de eso, diría que netboot es probablemente tu mejor opción. Cree un servidor maestro, haga que haga lo que desea y luego haga que todas sus otras máquinas arranquen e instalen desde él. Crear secuencias de comandos para que sucedan automáticamente (una vez que se ejecuta una vez) no debería ser demasiado difícil. Haces todas las cosas secundarias a través de kickstart.

Más (aunque es un poco viejo): https://help.ubuntu.com/community/PXEInstallServer

Editar: hay una aplicación llamada system-config-kickstartque debería ayudar a facilitar la generación del archivo kickstart. YMMV.

texto alternativo


Hasta donde yo sé, esto system-config-kickstartestá hecho especialmente para fedora.
Shaharia Azam

-1

Otra opción para las instalaciones masivas es el enfoque de Ubuntu Landscape / nube privada donde (básicamente) aprovisiona servidores dinámicamente en función de un conjunto de hardware. Cosas inteligentes

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.