RG350 Backup
Aplicación de gestión de backup
Existe la aplicación Py Backup que facilita enormemente la gestión de los backups en RG350. Ver este artículo para más detalles.
Vamos a hablar de algo de lo que nunca se habla lo suficiente, de backups.
Algunas de las acciones que hacemos con la RG350 tienen su contrapartida en forma de ficheros que suelen quedar almacenados en el directorio Home del sistema que se encuentra en la tarjeta interna, concretamente en /media/data/local/home
.
Nota
también sirven /media/home
y /usr/local/home
ya que son enlaces simbólicos, una especie de alias o accesos directos, pero la ruta física es la que se ha indicado antes.
En el directorio Home se almacenan cosas como:
- Settings de los emuladores.
- BIOS de algunos emuladores como PCSX4All.
- Previews de algunos emuladores como FBA.
- Y seguramente lo más importante, los savestates o los ficheros que aparecen al utilizar el sistema de almacenamiento de la consola emulada como los memorycards de PlayStation.
Si en algún momento perdemos el contenido de la tarjeta interna (ya sea por descuido o por fallo de la misma), perderemos todo lo anterior. Por tanto es conveniente resguardar al menos los ficheros más valiosos como los savestates para evitar disgustos futuros. Una manera es copiar manualmente los ficheros que más nos importen. Podemos hacerlo copiándolos a la tarjeta externa con DinguxCmdr o conectando con la consola por cable y abriendo una sesión SSH o FTP. Aquí vamos a ver una alternativa más fácil y que respaldará el contenido completo del directorio Home.
Comando de backup¶
Vamos a empezar conociendo el comando que vamos a utilizar. OpenDingux como sabemos es un sistema Linux. En estos sistemas hay una utilidad y formato de archivo muy popular pensado para realizar backups llamado tar
. Proviene de cuando los backups se hacían en cintas y de ahí el nombre (Tape ARchive). Está instalado prácticamente en todos los sitemas Linux existentes, por lo que está muy disponible. La forma habitual de utilizarlo es por línea de comando, pero que nadie se asuste. Vamos a empezar viéndolo de esta forma pero más adelante veremos cómo ejecutar este comando desde una aplicación gráfica disponible en ROGUE.
Un comando adecuado para "entarar" el directorio Home sería el siguiente ("entarar" es como se dice en la jerga a la acción de respaldar algo con tar
):
tar -cf /media/sdcard/home_backup.tar -C /media/data/local home
Ejecutando esto nos aparecería en la raíz de la tarjeta externa un fichero de nombre home_backup.tar
con el contenido del directorio /media/data/local/home
. En una consola recién comprada o instalada el comando anterior se ejecuta muy rápidamente y el fichero resultante será pequeño. Si hemos colocado ficheros muy grandes o numerosos en el Home, cosa que es necesario para algunos emuladores, el fichero resultante puede llegar a ser muy grande y el proceso tardar mucho tiempo. En este caso tendremos que recordar o averiguar qué ficheros merece la pena excluir del backup como veremos a continuación.
Excluyendo ficheros del backup¶
Una vez que sepamos qué directorios o ficheros del Home se pueden excluir del backup las incorporaremos al comando tar
. Como ejemplo vamos a utilizar el directorio de previews de FBA que este emulador obliga a que se encuentre en el Home, concretamente en /media/data/local/home/.fba/previews
. El comando de backup quedará como sigue:
tar -cf /media/sdcard/home_backup.tar -C /media/data/local --exclude=home/.fba/previews home
Como vemos lo que tenemos que hacer es añadir el parámetro --exclude
con el valor de la ruta a excluir a partir de home
. Es decir no hay que poner delante /media/data/local
ya que la opción -C
que está poco antes en el comando establece ese directorio como la raíz. Por cada directorio o archivo que queramos excluir añadiremos un parámetro --exclude
como el anterior. Por ejemplo vamos a ver cómo se excluiría la BIOS de PlayStation además de las previews de FBA que hemos indicado antes. No es el mejor ejemplo, porque ganamos poco excluyéndola, ya que sólo ocupa unos 500KB, pero ciertamente ese fichero se puede encontrar fácilmente si lo perdemos:
tar -cf /media/sdcard/home_backup.tar -C /media/data/local --exclude=home/.fba/previews --exclude=home/.pcsx4all/bios/SCPH1001.BIN home
Una vez que tengamos identificado lo que merece la pena excluir de nuestro backup para aligerarlo, vamos a ver cómo lanzarlo más cómodamente.
Ejecución desde Scriptrunner¶
Desde hace unas versiones, ROGUE incluye una utilidad muy práctica de Rafa Vico llamada Scriptrunner que permite ejecutar scripts de comandos desde un listado. De serie trae un script para hacer backup del Home con el comando indicado en un principio (sin los excludes). Los scripts que vienen de serie no se pueden modificar, pero se pueden añadir nuevos sin más que incorporarlos al directorio /media/data/local/home/.scriptrunner
. Por ejemplo, vamos a ver cómo incorporaríamos un nuevo script de backup con el exclude del directorio de imágenes de previews de FBA que hemos comentado antes.
Empezamos creando un fichero de texto con el siguiente contenido y de nombre home_backup_partial.sh
(por ejemplo):
#!/bin/sh
# title=Backup partial home folder
# desc=Backup home folder to SD card, save all your settings except FBA previews
# author=eduardofilo
echo "Backup home folder."
tar -cf /media/sdcard/home_backup.tar -C /media/data/local --exclude=home/.fba/previews home
echo ""
echo "Backup done."
Lo que pongamos en las lineaas 2 y 3 serán el título y la descripción del script que luego se mostrará en el listado de Scriptrunner, por lo que podemos adaptarlo a nuestra conveniencia.
Advertencia
Si creamos el fichero desde Windows es recomendable que sea con un editor potente como Notepad++ y guardarlo con retornos de carro UNIX y codificación UTF8.
Lo siguiente será transferirlo al directorio /media/data/local/home/.scriptrunner
por algún medio como copiándolo desde la tarjeta externa con DinguxCmdr o por cable por FTP o SCP.
Una vez copiado lo veremos en el listado que muestra Scriptrunner al abrirlo:
Desde allí podremos ejecutarlo seleccionándolo como se ve en el pantallazo anterior y pulsando A
, lo que habrá que confirmar de nuevo con A
:
Veremos el progreso mediante un icono giratorio que aparece arriba a la derecha:
Hasta que el backup finalmente se complete:
Podemos comprobar con DinguxCmdr que se ha creado el fichero de backup:
Restauración¶
La forma más cómoda de restaurar el backup en caso de ser necesario es utilizar el script Restore home folder
precargado en Scriptrunner. Esta vez no es necesario modificarlo, funcionará tal cual. El único inconveniente es que restaurará el backup completo, y puede ser que nos interese recuperar un sólo fichero (un savestate de un emulador concreto por ejemplo). En ese caso se recomienda pinchar en el PC la tarjeta externa para tener acceso al fichero home_backup.tar
y abrirlo con un gestor de compresión multiformato como WinRAR. Localizar el fichero que nos interesa y transferirlo a la consola por los medios habituales (DinguxCmdr, FTP o SCP).