debian で google-drive-ocamlfuse を使って Google ドライブをマウントする
ファイルサーバーとして利用している debian マシンでローカルディレクトリに Google ドライブをマウントさせます。
Google ローカルガイドのレベル4になった特典として1年間 100GB の追加容量を利用できるようになったので、データをあらかたそっちにコピーしてみようと思いまして。
自分の Google ドライブは標準の 15GB に加えてセキュリティ診断のボーナスによる 2GB、ローカルガイドレベル4特典の 100GB の合計 117GB 利用できる状態です。
ローカルファイルサーバーで使っている実用量が 107GB くらいなので全部乗った上に 9GB くらいは空き容量が確保できそうです。
導入した debian のバージョンは 8.5 です。
後述しますが、google-drive-ocamlfuse では Google ドライブのアクセストークンを取得するために GUI ブラウザで認証する必要があるので、インストールしようとしているマシンに GUI 環境がない場合、他の環境で認証できるようにしなければなりません。
とりあえず途中まで debian だけで進めます。
debian で google-drive-ocamlfuse をインストールする
Launchpad.net の alessandro-strada にある Ubuntu 用のリポジトリをセットしてインストールします。
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys XXXXXXXX $ sudo sh -c "echo 'deb http://ppa.launchpad.net/alessandro-strada/ppa/ubuntu xenial main' > /etc/apt/sources.list.d/google-drive.list" $ sudo sh -c "echo 'deb-src http://ppa.launchpad.net/alessandro-strada/ppa/ubuntu xenial main' >> /etc/apt/sources.list.d/google-drive.list" $ sudo apt-get update
XXXXXXXX
の部分はリポジトリのページにある Signing key か Fingerprint あたりに文字列を入力してください。
エラーが出なければOK
fuse と google-drive-ocamlfuse をインストールします。
$ sudo apt-get install google-drive-ocamlfuse fuse -y
インストールが完了したら google-drive-ocamlfuse コマンドを実行します。
$ google-drive-ocamlfuse /bin/sh: 1: xdg-open: not found /bin/sh: 1: firefox: not found /bin/sh: 1: google-chrome: not found Cannot retrieve auth tokens. <snip>
はい、google-drive-ocamlfuse が xdg-open か firefox か google-crome を使ってアクセストークンを取得しようとしますが、このマシンには GUI 環境がセットされていないのでトークンを取得できないとエラーが出ます。
そんなわけで Ubuntu デスクトップの仮想マシンを作ってそっちで認証させます。
Ubuntu 16.04 Desktop で google-drive-ocamlfuse をインストールする
Ubuntu 16.04 Desktop でのインストールと認証は簡単で、google-drive-ocamlfuse の Wiki で方法が説明されています。
まずはリポジトリの追加からインストール。
GUI の仮想端末から操作した方がいいです。
$ sudo add-apt-repository ppa:alessandro-strada/ppa $ sudo apt-get update $ sudo apt-get install google-drive-ocamlfuse -y
インストールが完了したら google-drive-ocamlfuse
コマンドを実行します。
$ google-drive-ocamlfuse
ブラウザが起動して認証を促されるれます。
無事認証を完了すれば準備 OK です。
仮想端末に戻り、scp
を使って仮想マシンからファイルサーバーへトークンの記録されたファイルをコピーします。
$ scp ./.gdfuse/default/state 192.168.10.14:/home/zoar/.gdfuse/default/
192.168.10.14
が debian のファイルサーバーで使われてる IP アドレスですね。
ここまでくれば Ubuntu の仮想マシンはいらなくなるのでシャットダウンして消すなりなんなりできます。
debian で Google ドライブをマウントする
まずマウントポイントのディレクトリを作っておきます
$ mkdir ~/google-drive
google-drive-ocamlfuse
コマンドでマウントします。
コマンドの最初のオプションがマウントポイントです。
$ google-drive-ocamlfuse /home/zoar/google-drive
確認してみましょう
$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 106G 3.0G 98G 3% / udev 10M 0 10M 0% /dev <snip> google-drive-ocamlfuse 117G 328K 117G 1% /home/zoar/google-drive
マウントできたっぽいです。
これでデータをコピーするなりできるようになると思います。
なお、アンマウントするときは fusermount
コマンドを使って
$ fusermount -u /home/zoar/google-drive
とかすればアンマウントされます。
当然ですがトークンの記録されているファイル ~/.gdfuse/default/state
が流出すると大変なことになるので気を付けて扱う必要があります。