31-10-2018, 11:04 PM
Hasta ahora hemos confiado siempre en el sistema de copias de seguridad basado en el clonado byte por byte de una tarjeta SD a un archivo IMG usando herramientas de clonado como win32Diskimager o el comando dd.
Aunque funcionan estupendamente tienen un pequeño problema y es que si la SD que pensamos respaldar es unos pocos bytes mayor que la que queremos recuperar no será fácil hacer la recuperación.
En efecto, aunque tengamos dos tarjetas SD con supuestamente la misma capacidad -por ejemplo 8GB- si son de diferente marca casi seguro que veremos que las capacidades de ambas son ligeramente distintas. Es habitual. Por tanto si creamos un archivo de respaldo de 7.9GB NO podremos volcarlo en una SD de por ejemplo 7.8GB ya que dará error. Y eso que parte del volumen de la copia sera espacio vacío dentro de la SD.
No obstante, acabo de descubrir un pequeño programa que permite clonar el sistema directamente desde la misma Rpi donde esta corriendo. Se trata de rpi-clone.
Basta con poner nuestra sd de respaldo en un lector de tarjetas USB y empezar a hacer la copia sin mas. Tarda bastante rato ya que no vuelca los bytes en crudo si no que usa comandos del sistema para dar formato a las particiones y copiar los archivos correspondientes en cada una de ellas. Pero tiene la gran ventaja de que podremos clonar una SD de por ejemplo 32GB en otra de 16GB siempre y cuando los archivos de las particiones quepan en la nueva SD. Es decir, si el espacio ocupado por nuestro openplotter es menor de 16GB podremos meterlo en una SD de 16GB aunque el original este instalado en una de 32GB. Esto, usando el método anterior no era posible.
Como se usa:
Una vez instalado bastara con meter nuestra SD de destino en el lector de tarjetas y este conectarlo a nuestra Rpi
Al usar la herramienta tendremos que especificar el nombre de la memoria SD. Raspbian y openplotter asignan los nombres de sda ‘, sdb’, etc. a las memorias SD que se encuentran en USB. Si sólo disponemos de un lector de tarjetas USB conectado, el nombre de nuestra nueva memoria SD será “sda”.
Si no estamos seguros de que “sda” es la memoria correcta, podemos ejecutar el siguiente comando para listar las memorias conectadas a la RPi. (Ojo, el modificador es una ele no una i)
Sabiendo esto bastara con poner en la consola:
sudo rpi-clone -f sda
El -f es para que de el formato adecuado a la nueva SD antes de copiar. Tras meter el comando nos preguntara si queremos desmontar cualquier partición que tenga previamente la SD si la tuviera. Le contestamos que si -yes-. Después puede preguntar si queremos darle un nombre a la partición. Bastara con pulsar enter si no queremos hacerlo. tras las preguntas de rigor empezará a copiar. Lo dejamos tranquilo un tiempo ya que el sistema se queda casi bloqueado y cuando finalice probamos nuestra nueva SD que debe funcionar como la original. Yo lo he probado con éxito.
Como se instala en la Rpi:
Con los siguientes comandos. Este descarga el programa:
Ahora entramos en la carpeta que hemos descargado:
Y ahora instalamos los archivos en el sitio correspondiente del sistema:
Y listo. Ya podemos hacer nuestra copia a otra SD cuando este nuestro sistema perfectamente configurado desde la misma Rpi.
Aunque funcionan estupendamente tienen un pequeño problema y es que si la SD que pensamos respaldar es unos pocos bytes mayor que la que queremos recuperar no será fácil hacer la recuperación.
En efecto, aunque tengamos dos tarjetas SD con supuestamente la misma capacidad -por ejemplo 8GB- si son de diferente marca casi seguro que veremos que las capacidades de ambas son ligeramente distintas. Es habitual. Por tanto si creamos un archivo de respaldo de 7.9GB NO podremos volcarlo en una SD de por ejemplo 7.8GB ya que dará error. Y eso que parte del volumen de la copia sera espacio vacío dentro de la SD.
No obstante, acabo de descubrir un pequeño programa que permite clonar el sistema directamente desde la misma Rpi donde esta corriendo. Se trata de rpi-clone.
Basta con poner nuestra sd de respaldo en un lector de tarjetas USB y empezar a hacer la copia sin mas. Tarda bastante rato ya que no vuelca los bytes en crudo si no que usa comandos del sistema para dar formato a las particiones y copiar los archivos correspondientes en cada una de ellas. Pero tiene la gran ventaja de que podremos clonar una SD de por ejemplo 32GB en otra de 16GB siempre y cuando los archivos de las particiones quepan en la nueva SD. Es decir, si el espacio ocupado por nuestro openplotter es menor de 16GB podremos meterlo en una SD de 16GB aunque el original este instalado en una de 32GB. Esto, usando el método anterior no era posible.
Como se usa:
Una vez instalado bastara con meter nuestra SD de destino en el lector de tarjetas y este conectarlo a nuestra Rpi
Al usar la herramienta tendremos que especificar el nombre de la memoria SD. Raspbian y openplotter asignan los nombres de sda ‘, sdb’, etc. a las memorias SD que se encuentran en USB. Si sólo disponemos de un lector de tarjetas USB conectado, el nombre de nuestra nueva memoria SD será “sda”.
Si no estamos seguros de que “sda” es la memoria correcta, podemos ejecutar el siguiente comando para listar las memorias conectadas a la RPi. (Ojo, el modificador es una ele no una i)
sudo fdisk –l
La ranura para memoria SD con el Sistema RPi corriendo se mostrará como: /dev/mmcblk0.
La memoria SD en blanco aparecerá en la lista como: /dev/sda1(o posiblemente como: /dev/sdb1, si tenemos más de un lector de tarjetas USB conectados a la RPi).Sabiendo esto bastara con poner en la consola:
sudo rpi-clone -f sda
El -f es para que de el formato adecuado a la nueva SD antes de copiar. Tras meter el comando nos preguntara si queremos desmontar cualquier partición que tenga previamente la SD si la tuviera. Le contestamos que si -yes-. Después puede preguntar si queremos darle un nombre a la partición. Bastara con pulsar enter si no queremos hacerlo. tras las preguntas de rigor empezará a copiar. Lo dejamos tranquilo un tiempo ya que el sistema se queda casi bloqueado y cuando finalice probamos nuestra nueva SD que debe funcionar como la original. Yo lo he probado con éxito.
Como se instala en la Rpi:
Con los siguientes comandos. Este descarga el programa:
Código:
git clone https://github.com/billw2/rpi-clone.git
Ahora entramos en la carpeta que hemos descargado:
Código:
cd rpi-clone
Y ahora instalamos los archivos en el sitio correspondiente del sistema:
Código:
sudo cp rpi-clone rpi-clone-setup /usr/local/sbin
Y listo. Ya podemos hacer nuestra copia a otra SD cuando este nuestro sistema perfectamente configurado desde la misma Rpi.