Tutorial: Google Drive auf Rootserver mounten

Um günstig an Backupspeicher für den Rootserver mit Debian zu kommen, habe ich testweise mal Google Drive ins Auge gefasst. Nach der Preisliste von Google sind so 100GB für 1,99$ exklusive Mehrwertsteuer zu haben. Neben GUI-Clients für Windows und Mac OSX gibt es mit google-drive-ocamlfuse einen FUSE-Treiber zum mounten unter Linux. Dazu wird ein separater Nutzer eingerichtet. Dieser bekommt eine OCAML-Buildumgebung:

apt-get -y install fuse fuse-utils curl m4 libcurl4-gnutls-dev libfuse-dev libsqlite3-dev
modprobe fuse
adduser --home /home/gdrive --create-home --shell /bin/bash gdrive
usermod --append --groups fuse gdrive
su - gdrive

Als Nutzer “gdrive” geht es dann weiter mit dem installieren einer OCAML-Umgebung im Heimverzeichnis und dem kompilieren von google-drive-ocamlfuse:

curl -kL https://raw.github.com/hcarty/ocamlbrew/master/ocamlbrew-install | bash
opam init
opam update
opam install google-drive-ocamlfuse

Die verschiedenen Dialogoptionen können allesamt bestätigt werden. Danach steht uns mit google-drive-ocamlfuse das Helferlein zum mounten zur Verfügung. Bevor es losgeht braucht man allerdings noch Schlüssel für den Zugriff auf die Google Drive API. Dies ist im Projekt-Wiki unter der Überschrift Headless Usage & Authorization beschrieben: Man geht auf die API Console, legt ein neues Projekt an, erlaubt den Zugriff auf die Drive API und generiert unter “Credentials” eine neue Client ID. Als Application type wählt man “Installed application” und erhält dann eine Client ID und ein Client secret:

mkdir gdrive
google-drive-ocamlfuse -headless -id <sehrlangerstring> -secret <nichtsolangerstring>
> Please, open the following URL in a web browser: <ganzlangeurl>
> Please enter the verification code:

Die URL wird dann im Browser aufgerufen und der Verification Code kopiert. Aufgrund eines Bugs failed nach einiger Zeit das erneuerns des Tokens. Daher trägt man die Client ID und Client secret noch in die generierte Konfigurationsdatei .gdfuse/default/config ein:

client_secret = <nichtsolangerstring>
client_id = <sehrlangerstring>

Danach kann man zum ersten mal das Google Drive mounten:

google-drive-ocamlfuse -headless ~/gdrive mount
> fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
> google-drive-ocamlfuse on /home/gdrive/gdrive type fuse.google-drive-ocamlfuse (rw,nosuid,nodev,relatime,user_id=1001,group_id=1001)

Zugriffe sind bei vielen einzelnen Dateien sehr langsam. Aber für das Backup kommen die Sachen sowieso in schicke Tar-Files.

Edit: Das ist nicht nur bei einzelnen Dateien sehr langsam sondern generell. Mein Rat: Finger weg außer für den Desktopeinsatz. Ich bestelle jetzt Speicher auf Hetzners FTP-Server…