Cómo montar tus carpetas de Google Drive y otras nubes en tu Raspberry Pi con Rclone

Raspberry Pi conectandose a una nube con Rclone

Uno de los problemas que todos tenemos cuando usamos la Raspberry Pi es la falta de espacio. Usamos tarjetas microSD de 32GB o 64GB normalmente. Pero si queremos usarla para tener muchas cosas necesitamos más almacenamiento. Esto lo podemos solucionar con un disco duro USB, pero hay veces en las que preferimos usar una nube. Y para estos casos, que mejor que usar rclone para montar lo que usas para guardar los archivos en la nube como si fuera una carpeta más de tu Raspberry Pi.

Para empezar, tenemos que saber que dependiendo de la conexión que tengamos, esta experiencia será mejor o peor. Normalmente, si queremos aprovechar esta posibilidad debemos contar con una conexión de fibra óptica o HFC con una buena subida. Si no, podemos acceder a nuestros archivos, pero a la hora de editarlos tendremos que esperar mucho tiempo, sobretodo si estamos trabajando con archivos de varios megas.

Y ahora que conocemos las limitaciones de trabajar con una nube, vamos a usar rclone para conectarnos a la nube que estamos usando ahora mismo y a montarla como si fuera una unidad más. Esto lo conseguiremos usando también un programa llamado FUSE que es el que se encargará de gestionar el montaje de la unidad una vez que nos conectemos con rclone a esta. Y ahora que sabemos lo que vamos a necesitar, además de nuestra cuenta en la nube, vamos a ver como hacer todo eso y a empezar a trabajar con nuestra nube como si fuera una unidad de almacenamiento más de nuestra Raspberry Pi.

Instalando rclone y las cosas necesarias.

Lo primero que tenemos que hacer es asegurarnos de que tenemos todo actualizado e instalado. Si queréis, podéis echarle un vistazo a este artículo que hice para ver más en profundidad cómo actualizar Raspbian. De todas formas, para tenerlo todo al día, podemos usar el siguiente comando en la terminal.

sudo apt update && sudo apt upgrade -y

Ahora que tenemos todo actualizado, tenemos que asegurarnos de que rclone va a funcionar correctamente en nuestra Raspberry Pi. Para ello, vamos a instalar FUSE. Que lo haremos con el siguiente comando en la terminal.

sudo apt install fuse
Instalando fuse en Raspbian

Para asegurarnos de que no vamos a tener problemas de acceso a los archivos dependiendo del usuario que estemos usando en Raspbian, tenemos que modificiar una opción de FUSE. Esto lo hacemos abriendo el archivo de configuración con el siguiente comando de la terminal.

sudo nano /etc/fuse.conf

Aquí tenemos que quitar la almohadilla (#) de la línea que pone user_allow_other. De forma que se quede como la imagen que tenemos a continuación.

Modificando la configuración de FUSE

Para salir de nano y guardar el archivo pulsamos Ctrl+X y dependiendo de si tenemos Raspbian en inglés o en español, tendremos que pulsar la tecla Y o la tecla S. Después pulsamos la tecla Enter y volveremos a la terminal, con el archivo modificado.

Ahora que lo tenemos todo preparado, procederemos con la instalación de rclone. Podríamos usar la versión de los repositorios de Raspbian, pero recomiendo mejor usar la última versión oficial, ya que, si hay alguna actualización en la nube que queremos usar desde que salió la versión que tenemos disponible en Raspbian, no podremos usarla. Para ello usaremos el siguiente comando de la terminal.

curl https://rclone.org/install.sh | sudo bash
Terminal después de instalar rclone

Si todo está correcto, debería aparecer en vuestra terminal algo como lo que hay en la imagen de arriba. En ese caso, ya tenemos listo rclone para usar Google Drive o la nube que queramos de todas las que tiene para elegir.

Configurando rclone para usar Google Drive

Ahora que lo tenemos todo listo, tenemos que configurar rclone para que se conecte a nuestra nube, en este caso, una nube de Google Drive. Para ello primero tenemos que ejecutar el asistente de configuración de rclone, que lo haremos poniendo lo siguiente en la terminal.

rclone config
Asistente de configuración de rclone

Ahora tendremos que ir leyendo lo que nos dice el asistente para configurar nuestra nube. Además tendremos que configurar las APIs de desarrollador de Google para que rclone funcione perfectamente. Pero esto lo iremos viendo durante el asistente. De momento, vamos a empezar indicando que queremos un nuevo remoto. Esto lo haremos pulsando la tecla N de nuestro teclado. Después pulsamos Enter e iremos al siguiente paso, donde nos tocará ponerle nombre a la configuración que estamos creando. En mi caso la llamaré gdrive. Pulsando Enter pasaremos a la siguiente parte de la configuración.

Primer paso de la configuración de rclone

En esta pantalla veremos una lista con un montón de servicios con los que podremos usar rclone. Google Drive, OneDrive, Dropbox, Google Fotos y Mega son solo unos cuantos ejemplos de todo lo que podemos montar como unidad de disco con este programa. Para elegir que tipo de nube vamos a usar tenemos que poner el número indicativo al tipo de unidad que pone rclone, que en el caso de Google Drive en el momento de hacer este tutorial es el 13. Ojo y no confundir con el 12 que es Google Cloud Storage, que es otra cosa completamente diferente.

Listado de sistemas compatibles con rclone

Obteniendo las credenciales de Google para rclone

Es posible que esto os suene un poco a chino, pero en resumidas cuentas, lo que necesita rclone para conectarse a Google Drive son unas credenciales para conectarse a la API, que es la que se encarga de mandarlos los archivos y de recibirlos cuando se los mandamos. Para crear una ID y una clave de seguridad debemos iniciar sesión con nuestra cuenta de Google en console.developers.google.com y desde ahí crear todo lo necesario.

Una vez hemos iniciado sesión, si no lo hemos hecho nunca, nos pedirá aceptar las condiciones de uso de Google Cloud Platform. Para esto nos leemos estas condiciones y marcamos la casilla donde se aceptan, y pulsamos en aceptar y continuar.

Confirmando la creación de cuenta de Google Developers

Ahora lo que tenemos que hacer es crear un proyecto donde tenemos podremos crear las claves de OAuth para sincronizar nuestro Google Drive con rclone. En nombre del proyecto podemos poner lo que queramos, siempre que sea algo que identifique ese proyecto, por si queremos cambiar cosas de la configuración luego. Para terminar, pulsamos en crear y ya tendremos el proyecto listo.

Creando el proyecto para Rclone

También tenemos que configurar la pantalla de consentimiento de nuestra aplicación. Para hacer esto, veremos un botón que indica que debemos configurarla. Pinchamos en ese botón y veremos la siguiente imagen, donde empieza el asistente para la configuración de la pantalla de consentimiento de OAuth. Seleccionamos Externo, ya que no contamos con una cuenta de Google Suite y pulsamos en crear.

Activando el consentimiento de OAuth para Rclone

Ahora aparecerá un formulario con un montón de campos para rellenar. El único que es obligatorio es el de Nombre de la aplciación, donde pondremos el nombre que queramos. Ahora vamos a la parte de abajo del todo del formulario y hacemos clic en Guardar para que se guarde la pantalla de consentimiento y ya podremos crear nuestro ID de cliente de OAuth.

Confirmación de la creación de la pantalla de consentimiento para Rclone

Para crear esta ID de cliente para rclone vamos a Crear credenciales, y en el menú que aparece seleccionamos ID de cliente de OAuth. Al hacer clic ahí nos preguntará que tipo de aplicación vamos a usar. En el caso de rclone seleccionaremos otro y pulsamos en crear. Si todo es correcto, nos aparecerá una como esta con nuestra ID de cliente y nuestra clave secreta.

ID de OAuth para Rclone

La ID de cliente tenemos que introducirla donde pone client_id en la terminal donde estamos con el asistente de configuración de rclone. Y donde pone client_secret_id tenemos que poner nuestra clave secreta. La terminal debería tener un aspecto como este una vez hemos introducido esos datos.

Intruduciendo la ID de OAuth en Rclone

Ahora tenemos que decirle a rclone como se tiene que comportar a la hora de acceder a los archivos de Google Drive. Dependiendo del número que pongamos, así se comportará. Mi consejo es usar el número 1 para tener acceso total a Google Drive, exceptuando las carpetas de las aplicaciones.

Comportamiento de Rclone a la hora de trabajar con Google Drive

Una vez hemos elegido el comportamiento de rclone, tememos que indicarle cual va a ser la carpeta raíz que vamos a usar. En la parte de root_folder_id podemos poner la ID de la carpeta que vayamos a usar. Para saber esta ID podemos acceder a la carpeta desde el navegador y en la URL del mismo veremos una identificación del directorio con un montón de letras y números después de folders/. Esas letras y números es lo que tenemos que poner en root_folder_id para que cuando rclone monte nuestra unidad de Google Drive, lo haga usando esa carpeta. Si queremos que lo haga desde la carpeta raíz de Google Drive, podemos dejar ese parámetro vacío.

ID de la carpeta que queremos usar como raiz en Rclone

Ahora nos preguntará si queremos editar la configuración avanzada. Como para nuestro funcionamiento normal no vamos a necesitar muchas cosas, le decimos que no.

También nos preguntara por una cuenta de servicion en el parametrio service_account_id. En este caso, lo dejaremos en blanco, ya que no hace falta.

A continuación, tendremos que configurar el acceso remoto con una clave secreta de Google. Dependiendo de si estamos haciendo esta configuración desde una Raspberry Pi con escritorio o no, tenemos que indicarle si queremos hacer la configuración automática o no. En caso de estar en el entorno de escritorio de Raspbian le diremos que . Si, por el contrario, estamos usando una terminal o estamos conectados por SSH a la Raspberry Pi le indicaremos que no.

Configuración de la clave de acceso de Rclone a Google Drive

Aquí vamos a ver cuales son los pasos en el caso de estar usando un entorno de escritorio, donde podemos abrir un navegador desde la Raspberry Pi.

Configurando rclone con un entorno de escritorio

Cuando ponemos al Y se nos abrirá una ventana del navegador que nos pedirá iniciar sesión en nuestra cuenta de Google. Una vez hemos hecho eso tenemos una ventana como esta indicando que no se ha verificado la aplicación, cosa que es normal, ya que la hemos creado hace 5 minutos.

Pulsando en Configuración avanzada veremos un enlace que pone Ir a Rclone (no seguro). Si has nombrado a tu aplicación de otra forma, pondrá otra cosa en vez de rclone.

Mensaje de aplicación sin verificar para Rclone

Ahora veremos una ventana en la que rclone nos está pidiendo permiso para acceder a nuestra cuenta de Google Drive. Pulsamos en Permitir y luego en la siguiente ventana que nos aparece, volvemos a pulsar en Permitir. Si todo ha ido bien, nos aparecerá una ventana como la siguiente.

Mensaje de exito a la hora de vincular Rclone con Google Drive

Configurando rclone desde terminal o SSH

En el caso de no tener acceso a un escritorio, podemos configurar igual rclone la configuración es igual que la del entorno de escritorio, solo que en vez de que la clave de la API de Google Drive se ponga automáticamente en la configuración, la tenemos que poner nosotros.

Para empezar esta configuración tenemos que escribir N en la terminal. A continuación, nos aparecerá una URL que tenemos que introducir en un navegador para poder obtener la clave de la API de Google Drive. Como vemos en la siguiente captura.

Rclone indicandonos la direccion donde tenemos que ir para obtener la clave de la API de Google Drive

La única diferencia respecto al proceso con entorno gráfico es que, en vez de que se configure automáticamente la clave, esta nos aparecerá en el navegador y luego tendremos que introducirla en la terminal. Para que veáis de que os estoy hablando, aquí os dejo una captura de lo que tendríais que copiar en el navegador.

Clave de la API de Google Drive para rclone

Escribimos el código en la terminal donde estamos realizando la configuración de rclone, y ya podemos terminal con la configuración y montar nuestra unidad de Google Drive en nuestra Raspberry Pi.

Terminando la configuración de rclone

Para terminar, rclone nos preguntará si vamos a usar esta cuenta como Team Drive. Le decimos que no, y veremos un resumen con la configuración que hemos creado le indicamos que está todo correcto con Y, y ya tendremos rclone para usar nuestra nube de Google Drive. Pero aun falta una cosa.

Pantalla final de la configuración de Rclone

Aunque hayamos terminado con la configuración de rclone, aún tenemos que activar la API de Google Drive en nuestra cuenta de desarrollador de Google para que rclone pueda funcionar correctamente. Esto lo hacemos de la siguiente manera.

Primero tenemos que ir al apartado Bibliotecas haciendo clic en el apartado. Este enlace se encuentra en la parte derecha de la página. Ahora, en el buscador escribimos drive y pulsamos donde pone Google Drive API.

Habilitando la API de Google Drive para Rclone

Aquí nos cargará una página que nos preguntará si queremos habilitar la API de Google Drive. Pinchamos en Habilitar y nos deberá aparece una página donde se ven las estadísticas de peticiones a la API de Google Drive. Os dejo a continuación un pantallazo con lo que os tiene que salir. Si veis esto, ya lo tenéis todo listo para usar rclone con Google Drive.

API de Google Drive preparada para recibir peticiones de rclone

Montando nuestra nube de Google Drive en nuestra Raspberry Pi

Ahora que ya lo tenemos todo listo, solo nos queda montar nuestra nube con rclone. Para ello vamos a usar los siguientes comandos en la terminal.

mkdir gdrive
rclone mount --allow-other gdrive: gdrive
Comandos para usar Rclone en una carpeta que hemos creado

Para saber lo que hacen todos los comandos para adaptarlos a nuestras necesidades, voy a explicarlos que hace cada palabra que hemos escrito en la terminal, por si falla o tenemos que cambiar algo dependiendo de nuestra configuración.

mkdir gdrive

Crea una carpeta llamada gdrive donde estemos. Cuando no nos hemos movido por las carpetas en la terminal estaremos en la carpeta /home/pi, por lo que la ruta de la carpeta que hemos credo será /home/pi/gdrive

rclone mount --allow-other gdrive: gdrive

Rclone es el programa que vamos a usar. Mount es la orden que le dice a rclone que monte la unidad que le indiquemos. –allow-other hace que todos los usuarios del sistema operativo puedan acceder a esa unidad. Gdrive: hace referencia a la configuración que vamos a usar. Si a la hora de crear la configuración la hemos llamado de otra forma, deberemos introducir otra cosa. Y gdrive hace referencia a la ruta donde está la carpeta donde queremos montar nuestro Google Drive. Si todo ha salido bien podremos acceder sin problemas. Como en la imagen que os dejo a continuación. La única pega que podemos tener es que los archivos de Google Docs no los podemos abrir.

Rclone funcionando con Google Drive

Cómo usar rclone como servicio

Una de las cosas por las que vamos a usar esto es para tener siempre nuestra nube accesible cada vez que iniciemos nuestra Raspberry Pi. Para ello, vamos a crear un servicio que se inicie cada vez que arrancamos la Raspberry Pi.

Lo primero que tenemos que hacer es crear un archivo con la configuración del servicio. Esto lo haremos con el siguiente comando. Como la carpeta done vamos a crear este archivo no está creada por defecto, debemos crearla antes.

mkdir -p ~/.config/systemd/user
nano ~/.config/systemd/user/rclone@.service

Una vez tenemos abierto nano para poder escribir en ese archivo, copiaremos lo siguiente al archivo para crear el servicio.

[Unit]
Description=rclone: Remote FUSE filesystem for cloud storage config %i
Documentation=man:rclone(1)

[Service]
Type=notify
ExecStartPre=/bin/mkdir -p %h/mnt/%i
ExecStart= \
  /usr/bin/rclone mount \
    --config="%h/.config/rclone/rclone.conf" \
    --allow-other \
    --drive-acknowledge-abuse=true \
    --fast-list \
    --vfs-cache-mode writes \
    --vfs-cache-max-size 100M  \
    --umask 0777 \
    %i: %h/mnt/%i
ExecStop=/bin/fusermount -u -z %h/mnt/%i
ExecStop=/bin/rmdir %h/mnt/%i
Restart=on-failure
[Install]
WantedBy=default.target

En este caso se han añadido un par de parámetros más a rclone para un mejor funcionamiento del mismo. También se ha definido que se cree una carpeta dentro del directorio del usuario llamada mnt y dentro de esta carpeta una con el nombre de la nube que vamos a montar. De esta forma, si tenemos varias nubes, podemos añadir varias veces el servicio de rclone para que las monte todas. Además, si falla el servicio se reiniciará automáticamente para que podamos seguir usándolo.

Creando el archivo rclone@.service

Ahora que lo tenemos todo escrito, solo queda salir de nano con Ctrl+X y guardar el archivo antes de salir con Y o S dependiendo del idioma con el que tengamos configurado Raspbian.

Una vez hemos hecho eso tenemos que habilitar el servicio para que se inicie cada vez que encendemos la Raspberry Pi. Esto lo haremos con el siguiente comando en la terminal.

systemctl --user enable rclone@gdrive

Donde está escrito rclone@gdrive tendremos que cambiar gdrive por el nombre de la configuración que hemos puesto en rclone. Si tenemos más de una configuración, debemos usar ese comando una vez por cada configuración que tenemos creada.

Enlace creado para iniciar nuestra nube con rclone

Si todo ha salido bien nos apacererá un mensaje diciendo que se ha creado un enlace de nuestro archivo. Ahora solo queda reiniciar la Raspberry Pi y empezar a usar nuestra nube con rclone y disfrutar de almacenamiento extra y sincronizado.

Más información:

Artículos Relacionados

Cómo montar tus carpetas de Google Drive y otras nubes en tu Raspberry Pi con Rclone

5 pensamientos en “Cómo montar tus carpetas de Google Drive y otras nubes en tu Raspberry Pi con Rclone

    1. Buenas Eduardo.

      Comprueba que estas creando el archivo en la carpeta adecuada y que ejecutas los comandos con el usuario adecuado. Mira en un principio que en la terminal te ponga pi@raspberry, indicando que estas usando el usuario pi en tu Raspberry Pi. Comprueba luego que existe el archivo en /home/pi/.config/systemd/user/ y que tiene los permisos necesarios. Para ver si el archivo está en esa ubicación y tiene los permisos ejecuta lo siguiente en una terminal:
      ls -l ~/.config/systemd/user/
      Ahí también podrás ver los permisos del archivo y su dueño, asegurate de que el dueño es pi y tiene permisos de lectura y escritura.

      Una vez hecho todo eso, prueba otra vez a ejecutar el comando systemctl –user enable rclone@gdrive y a ver si hay suerte.

        1. Gracias por el comentario Eduardo, me acabo de dar cuenta de que escribí mal en la parte de crear el servicio el nombre del archivo. No es rclone@.config, es rclone@.service. Puedes cambiar el nombre del archivo con el siguiente comando: mv ~/.config/systemd/user/rclone@.config ~/.config/systemd/user/rclone@.service

          Mira a ver si con eso tienes suerte y ya te deja terminal el tutorial. Cualquier cosa me lo dices.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll hacia arriba