¿Puedo clonar toda mi Raspberry Pi para implementarla en otra Raspberry Pi?

12

No estoy seguro de si todos los temas de "cómo hacer una copia de seguridad de su tarjeta SD" es lo que estoy pidiendo ... pero aquí vamos :)

¿Hay alguna manera de hacer un clon al 100% de mi Raspberry Pi y simplemente implementarlo en otro Raspberry Pi? Entonces tengo dos copias exactamente idénticas ... ¿O esto se hace clonando la tarjeta SD usando el comando dd incorporado ?

La razón por la que pregunto es que tengo mi Raspberry Pi totalmente configurada con Apache , PHP y algunas otras bibliotecas y ahora solo quiero otro clon con las mismas configuraciones, etc.

¿Es esto posible o respondí mi propia pregunta?

naboovalley
fuente
Me sorprende que Piclone no se haya mencionado hasta ahora. Para mí, esa es la forma más directa de clonar una tarjeta SD en un rpi, y nunca tuve problemas con ella. Ya he respondido esta pregunta en el pasado, así que aquí hay un enlace a la respuesta con más detalles: raspberrypi.stackexchange.com/questions/66824/… Espero que esto ayude.
LecauseAndThePi
No pude encontrar la descarga de piclone en ninguna parte
Elia Weiss
No es necesario descargarlo, ya está allí. Simplemente escriba piclone en la terminal, y se iniciará la GUI.
LecauseAndThePi

Respuestas:

9

@naboovalley:

Supongamos el siguiente escenario:

  • En su Raspberry Pi, vaya a una terminal y luego vaya al directorio / dev. Debería ver, entre otros dispositivos, mmcblk0, mmcblk0p1 y mmcblk0p2.
  • mmcblk0 es el dispositivo de tarjeta SD "desnudo", mientras que mmcblk0p1 es la primera partición de esa tarjeta SD que contiene la imagen del núcleo y así sucesivamente y mmcblk0p2 es la segunda partición de esa tarjeta SD que contiene el sistema de archivos raíz.
  • Apague su Raspberry Pi de manera decente (escriba el comando "shutdown", posiblemente como root)
  • Coloque la tarjeta SD en otra máquina Linux. Normalmente, los directorios mencionados anteriormente deben montarse automáticamente en / media / y debe haber 2 subdirectorios allí (uno para la partición 1 de la tarjeta SD, uno para la partición 2 de la tarjeta SD)
  • Ha creado un directorio temporal para copiar el contenido de su tarjeta SD. Decir:~/tmp
  • Te encuentras en ~/tmp

Ahora puede copiar el contenido de la primera partición de la tarjeta SD original original emitiendo el siguiente comando rsync:

rsync -avn /media/<user>/<partition1> .

¡ No pongas un /al final! El comando anterior "ejecutará en seco", lo que significa que le mostrará lo que eventualmente hará, pero no lo ejecutará de verdad.

Para ejecutar de forma real (después de haber confirmado que la ejecución en seco está haciendo lo que debería hacer), puede eliminar el ncomando anterior (entonces, rsync -av /media/<user>/<partition1> .).

Use el mismo comando para la otra partición.

Ahora debe tener una copia exacta de su tarjeta SD original en su máquina Linux.

Retire la tarjeta SD original, coloque otra tarjeta SD correctamente formateada en su máquina Linux y ejecute el siguiente comando rsync:

rsync -avn <partition1> /media/<user>

Esto es nuevamente una ejecución en seco, que debería mostrarle que el contenido de <partition1>in /media/<user>se copiará en la tarjeta SD.

Una vez que haya confirmado que todo está bien, puede eliminar nuevamente nel rsynccomando.

Haga lo mismo para la segunda partición.

Esto debería darle una copia exacta de la tarjeta SD original en la otra tarjeta SD.

Nota: Verifiqué todo esto en una máquina Lubuntu. Los directorios y los nombres pueden variar en otras distribuciones de Linux.

Tenga en cuenta también que los elementos intermedios < >son marcadores de posición y tiene que ver por sí mismo cómo coinciden con su entorno.

GeertVc
fuente
Perfecto. ¡Gracias! ¿Hará la copia "dd" lo mismo que usted describe o es rsync mucho mejor haciendo una copia completa del sistema de la manera que yo quiero?
naboovalley
No tengo mucha experiencia con el ddcomando, así que no puedo decir, lo siento ...
GeertVc
No entiendo completamente la parte donde dices "- formateada correctamente - tarjeta SD". ¿Tenemos que formatear previamente la tarjeta SD con particiones fat32 y ext4 de tamaño adecuado? Gracias
Romain Vincent
7

Sí, puede usar ddo Win32 Disk Imager en Windows para tomar una imagen exacta de una tarjeta a otra. Sin embargo, la tarjeta de destino deberá ser del mismo tamaño o más grande para que esto sea práctico.

También podría simplemente copiar todos los archivos en su sistema de archivos de origen a un sistema de archivos de destino. Es decir, conecte su tarjeta de destino a un lector de tarjetas USB y péguela en su Raspberry Pi de origen. Luego ingrese SSH y emita los comandos de copia apropiados.

Una cosa a tener en cuenta también es si ha comprado claves de licencia para decodificar hardware de MPEG-2 o VC-1 . Estos están vinculados a su hardware, por lo que deberá asegurarse de editar el /boot/config.txt en su copia.

yo--
fuente
Entonces, ¿la tarjeta SD contiene todos los archivos específicos del sistema y las bibliotecas instaladas? ¿No necesitaré ejecutar ningún comando de instalación cuando conecte la copia clonada de la tarjeta SD en R-Pi # 2?
naboovalley
2
Esto también puede presentar problemas con las claves SSH y las direcciones IP.
Steve Robillard
Entonces, en R-Pi # 2, ¿podría pensar que la dirección IP es la misma que R-Pi # 1? Supongo que solo puedo actualizarlo para obtener una nueva IP de red.
naboovalley
Si está utilizando DHCP, el RPi recibirá una nueva IP en el arranque automáticamente, pero debe cambiar el nombre de host si planea usar ambos en la misma subred. Si usa una ip fija, debe cambiar tanto la IP como el nombre de host
Roberto
Si miro mi sistema de archivos ("df") tengo algo llamado "rootfs" 2.1GB y / dev / root 2.1GB - mi / dev / mmcblk0 sd-card solo toma 10M. Entonces, cuando copie "mmcblk0", ¿se incluirá todo mi sistema? Gracias chicos
naboovalley
6

Puede copiar con dd como @ me-- sugiere, pero eso no es todo lo que tiene que hacer al clonar un sistema. Hay ciertos identificadores únicos del sistema que también deberían cambiarse.

Las contraseñas deben restablecerse para que se use una nueva sal. Esto evita que las personas sepan que usó la misma contraseña dos veces. Ejecute el passwdcomando como su usuario (generalmente pi ) y como root.

Si usa SSH, las claves SSH deben volver a generarse. Esto es importante, por ejemplo, para asegurarse de que si alguien roba una Raspberry Pi no pueda descifrar las comunicaciones con la otra. Solo ejecuta este comando:

sudo rm /etc/ssh/ssh_host_*

Finalmente y lo más importante, debe cambiar el nombre de host. Si está por defecto es raspberrypi . Si eres como yo, me dirijo al nombre de host de la Frambuesa Pi, así que lo hago ssh raspberrypi. Tener dos "raspberrypis" en la red hace que eso deje de funcionar, por lo que el segundo debe cambiar su nombre a rasberrypi2, por ejemplo. Puede hacer este cambio con sudo raspi-config, seleccionando Advanced Optionsy luego seleccionando Hostname.

Fred
fuente
raspi-configno está disponible para Raspbmc . ¿Quizás debería describirse una forma manual de configurar el nombre de host?
Peter Mortensen
Como referencia, raspberrypi.stackexchange.com/questions/3926/… cubre el cambio del nombre de host en Raspbmc.
Fred
4

La clonación de una micro SD para respaldo o para mover su sistema a otro RPi3 está integrada como accesorio, al menos en la versión del sistema operativo que obtuve en la SD de inicio de NOOBS:

  • Ir a accesorios;
  • Hit Copiar SD ;
  • Coloque una micro SD en blanco en un soporte USB;
  • Coloque el soporte en la ranura USB abierta;
  • Elija la nueva SD;
  • Golpear copia.
w8mqw
fuente
Esta debería ser la respuesta correcta. Tan fácil.
Jordania
1

Puede hacer exactamente eso usando la Raspberry Pi y una nueva tarjeta SD con lema conectada por USB. La última versión del software Raspberry Pi tiene un software incorporado llamado SD cardcopier debajo de los accesorios que hace exactamente esto.

Usted elige su tarjeta original (de modo que la tarjeta desde la que está iniciando) como Origen y la nueva tarjeta vacía formateada (conectada a través del lector de tarjetas a usb en el pi) como Destino. Interfaz de usuario bastante simple y funcionó para mí la primera vez. La opción de línea de comando en mac usando dd de alguna manera terminó teniendo un problema de kernel panic.

sijones
fuente
0

Es una herramienta muy segura y confiable para copiar cosas como los sistemas de archivos raíz (debido a los enlaces que están presentes en el sistema de archivos raíz) rsync. Esta herramienta tendrá en cuenta todas las cosas necesarias, como marcas de tiempo, enlaces, permisos, ... Perfectamente adaptada para copiar cosas como desee.

GeertVc
fuente
Pero todavía solo copio el contenido de la tarjeta SD para el duplicado completo del sistema, ¿o necesito incluir algo más? Gracias
naboovalley
Vea la nueva respuesta que publiqué a continuación.
GeertVc