Actualizado el 23 de Julio del 2017 (Publicado el 17 de Julio del 2017)
700 visualizaciones desde el 17 de Julio del 2017
473,3 KB
6 paginas
Creado hace 19a (19/05/2005)
LinuxFocus article number 370
http://linuxfocus.org
LF Tip: Clonando PCs completos por la
red
por Gerrit Renker
<gerrit.renker(at)gmx.de>
Resumen:
Sobre el autor:
Obtuvo su titulación en
informática en el año 2.001.
Es frecuente encontrarse con la necesidad de replicar los datos desde un
ordenador a otro. Un método seguro, sencillo y efectivo es utilizar un
clonado por la red como se describe en este Cómo.
_________________ _________________ _________________
Traducido al español por:
guadapeich (homepage)
Escenario
Mientras que el clonado de animales ("la oveja Dolly") y de embriones humanos es un área de investigación
muy discutida y dudosa, no hay duda que algún conocimiento en el clonado de ordenadores es menos
peligroso (si está hecho correctamente) y más útil para quien escribe cuidadosamente scripts de configuración
y opciones. Debido a la Ley de Moore y el rápido progreso en la fabricación de ordenadores, es casi seguro
que uno se encontrará un escenario de replicado durante el uso de una distribución − puede ser que cambies el
PC casero por un portátil o que un nuevo procesador más rápido sale a la venta y tienes bastante dinero para
comprar un nuevo ordenador. La tarea es tomar el sistema de archivos completo del ordenador A y ponerlo a
funcionar en el ordenador B. Hay dos maneras de hacerlo; una que no está explicada en este Cómo es abrir la
carcasa, conectar físicamente los discos duros y hacer la copia localmente sobre un mismo ordenador. Esto
frecuentemente no es posible − abrir la carcasa puede implicar la pérdida de la garantía − y también tiene
riesgos ya que una persona inexperta puede dañar física y eléctricamente el equipo. Y más que eso, una vez
perdí los datos de un disco de esta forma por culpa de un mal programa de bajo nivel. La otra aproximación,
que requiere que ambos PCs tengan tarjetas de red (lo que es un caso frecuente en equipos caseros), es mucho
más segura y se explica aquí.
La idea común subyacente a todos los métodos descritos a continuación es establecer una conexión de red
entre el ordenador "origen" (el que va a ser clonado) y el ordenador "destino" (el clon). Esto es simple si
ambos están conectados a un hub, en otro caso puedes conectar las tarjetas de red mediante un cable cruzado
(los cables rectos normales no se pueden utilizar). Para el PC destino, un Live−CD (como Knoppix o
LNX−BBC) o una instalación minimalista es necesaria de tal forma que la tarjeta de red esté operativa y ssh
y/o netcat puedan ser usados. Hay también algunas distribuciones en disquete que te lo permitirán (en mi
equipo tomsrtb no levantó la tarjeta de red al inicio). Si quieres instalar una nueva distribución, esa es
1/6
también una alternativa fácil. Ambos ordenadores necesitan ser configurados con direcciones IP en la misma
red de forma que puedan "hablar" uno con otro, como se muestra en la ilustración superior.
Métodos posibles
Con la configuración básica descrita hay varias formas de realizar el clonado:
•
•
•
•
copia binaria con dd
tubería con tar / cpio
rsync
dump y restore
Lo primero es complicado, si no imposible, si tus discos duros no son del mismo tipo y con la misma
geometría. Es grandioso para cosas como copiar imágenes iso (dd if=/dev/cdrom of=the.iso), o
disquetes − este (script de copia de disquete) es un ejemplo de un script diskcopy utilizando dd. El otro
inconveniente del método basado en dd es que el espacio vacío también será copiado, ocupando tiempo
innecesariamente. La tubería de tar y cpio toma mucho tiempo (incluso horas) y tiene varios problemas.
Por ejemplo, hay restricciones en el nombre de los ficheros y uso de los enlaces, perdiéndolos en los archivos
en /dev, y similares. Yo no recomendaría esta solución para el replicado. Si tienes diferentes sistemas de
ficheros en el origen y destino, rsync(1) es probablemente la mejor elección. Sólo necesita que ssh esté
corriendo y transmitirá archivos eficazmente entre ambos mediante un eficiente protocolo incorporado.
Incluso tiene una opción −D para los archivos de dispositivos, así como muchas otras opciones para utilizar en
la mayoría de las situaciones posibles. Es una herramienta muy útil para las copias de seguridad diarias,
copias espejo y cosas así, la página de manual con sus muchos ejemplos merece la pena estudiarla. Un
ejemplo de clonado vía rsync se explica en [1].
Aquí, nosotros usamos el método mediante dump y restore el cual significa replicar el sistema de ficheros
completo. Es rápido, efectivo y obtiene el resultado deseado con el mínimo esfuerzo, por lo tanto ideal para la
replicación completa. Tuve que hacer realmente el procedimiento entero de clonado dos veces, puesto que el
PC destino fue devuelto y sustituido. En ambos casos no se encontraron problemas y se obtuvo una copia
arrancable funcional en el plazo de aproximadamente una hora de copiado de gigabytes. Este enfoque requiere
que tanto el PC origen como el destino tengan el mismo tipo de sistema de ficheros. Asumimos que éste es
ext2 o ext3, puesto que son los tipos actualmente más usados (vea las notas abajo).
Configurando ssh
Una vez que hayas configurado un sistema con una instalación mínima o tengas en funcionamiento un
Live−CD, el paso siguiente es instalar ssh (si no estas utilizando netcat para la transferencia según se
explica más abajo). Esto requiere que el PC origen tenga sshd (the secure shell daemon) corriendo.
Comprueba /etc/init.d/ si dudas. En el PC destino, teclea como root:
ssh−keygen −t rsa
Para mantener las cosas simples, no entres una clave. La llave pública está en el archivo
/root/.ssh/id_rsa.pub. Copia este archivo al PC origen mediante
scp /root/.ssh/id_rsa SourcePC:/tmp
donde SourcePC es la dirección IP del PC origen. Cuando pregunte si estas seguro, teclea un completo
''yes'' (solamente "y'' algunas veces no funciona). Estas todavía siendo preguntado por la contraseña de root
2/6
en el PC origen. Ahora agrega el PC destino como un nodo de la red confiable mediante
cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys
en el PC origen. Para comprobar si todo está correcto, repite el anterior comando de copia en el PC destino.
No serás preguntado mas por la contraseña.
Creando un sistema de ficheros en el PC destino
El primer paso es siempre particionar el disco duro en el ordenador destino y entonces crear el sistema de
ficheros ext2/ext3. El último es activar la variante preferida de journalling simplemente colocando la
opción −j (journalling) en mke2fs (requiere tener soporte ext3 en el kernel). Puedes incluso convertir un
sistema ext2 a ext3, mira tune2fs(8). Digamos que en el ordenador origen tenemos la configuración
siguiente:
Partición Tamaño Usada %Usada Montada en
/dev/hda3
/dev/hda5
/dev/hda7
/dev/hda8
/dev/hda12
2.7G
7.8G
6.3G
3.4G
5.3G
/dev/hda1
587M
552M 22%
1.6G
1.7G
22%
28%
601M 19%
1.9G
70M
37%
13%
/
/usr
/usr/share
/home
/opt
/var/backup
Recomiendo hacer siempre alguna clase de partición. Si no en caso de fallo en el sistema de ficheros o
corrupción de algunos sectores del disco duro se pueden destruir todos tus datos. Y de acuerdo a la Ley de
Murphy, es seguro que sucederá si no tomas precauciones usando particiones diferentes en vez de usar una
única. Tuve un caso recientemente con un kernel gracioso y no había particionado el disco, perdí todos mis
datos sobre el sistema de ficheros corrupto. Arriba se muestra que /usr se hizo demasiado grande, por eso
/usr/share ha sido añadido. Es el momento para conseguir un disco duro mayor.
En el PC destino lanza parted (recomendado) o tu particionador favorito (Qtparted es una bonita variante en
modo gráfico, que dice ser un clon de Partition Magic). Crea particiones al menos tan grandes como las del
PC origen. No olvides la partición swap. Después de salvar la tabla de particiones, instala un sistema de
ficheros en todas la particiones recientemente creadas, usando
mke2fs −j −L <label> /dev/xxx
donde xxx es el nombre de la partición y <label> una etiqueta. Normalmente uso cosas como ''/usr''
como etiquetas (las verás en el arranque). Puedes configurar varias cosas mediante tune2fs(8), como la
revisión del sistema de ficheros de forma regular.
Transferir el sistema de ficheros
Primero necesitas montar todas las particiones nuevas. Comenzamos con la raíz del sistema ("/") y montamos
el resto de directorios. Es perfectamente posible unir dos particiones del PC origen en una sola en el destino,
es lo que haremos con /usr/ y /usr/share en el ejemplo anterior. Así monta tu futuro sistema raíz con
mount /dev/xxx /mnt
Al clonar es necesario cambiar al directorio destino
3/6
cd /mnt
Ahora la red, teclea en el PC destino
ssh targetPC 'dump −0 −f − /' | restore −r −f −
donde targetPC es la dirección IP del ordenador destino. Las opciones significan ''−0'' para una copia de
seguridad completa, ''−f −'' le dice que use stdin/stdout como descriptor de archivo y ''−r'' indica a
restore que recree el sistema de ficheros mediante volcado por la red en el PC destino. Para más opciones mira
dump(8) y restore(8). Abajo puedes ver la salida para transferir el sistema de ficheros raíz.
$ ssh 10.42.3.42 'dump −0 −f − /' | restore −r −f −
DUMP: Date of this level 0 dump: Tue Feb 22 15:50:12 2005
DUMP: Dumping /dev/hda3 (/) to standard output
DUMP: Label: debian
DUMP: Writing 10 Kilobyte records
DUMP: mapping (Pass I) [regular files]
DUMP: mapping (Pass II) [directories]
DUMP: estimated 547312 blocks.
DUMP: Volume 1 started with block 1 at: Tue Feb 22 15:50:14 2005
DUMP: dumping (Pass III) [directories]
DUMP: dumping (Pass IV) [regular files]
DUMP: Volume 1 completed at: Tue Feb 22 15:51:43 2005
DUMP: Volume 1 546590 blocks (533.78MB)
DUMP: Volume 1 took 0:01:29
DUMP: Volume 1 transfer rate: 6141 kB/s
DUMP: 546590 blocks (533.78MB)
DUMP: finished in 89 seconds, throughput 6141 kBytes/sec
DUMP: Date of this level 0 dump: Tue Feb 22 15:50:12 2005
DUMP: Date this dump completed: Tue Feb 22 15:51:43 2005
DUMP:
Comentarios de: LF Tip: Clonando PCs completos por la red (0)
No hay comentarios