Windows11のWSL2 Ubuntu20.04において、WSLを起動時にGoogleDriveを自動でマウントする方法を紹介します。
google-drive-ocamlfuse
というツールを利用しますが、設定方法はすべてGithubに公開されています。下記の内容は2023年5月時点での情報なので、何かエラーが発生した場合はGithubをご確認ください。
google-drive-ocamlfuseのGitHub:https://github.com/astrada/google-drive-ocamlfuse
google-drive-ocamlfuseのインストール
apt
コマンドでインストールします。
sudo add-apt-repository ppa:alessandro-strada/ppa
sudo apt-get update
sudo apt-get install google-drive-ocamlfuse
手動でGoogleDriveをマウント
まず、GoogleDriveを手動でマウントします。
最初のマウント時に認証を通す必要がありますが、今回はGithubのwikiに載ってあるヘッダレスの方法(CUIのみを利用する方法)で認証を通します。(参考:Headless Usage & Authorization)
まず、CUIのみで認証を通せるように、下準備を行います。マウントポイントとして、~/Gdrive
を利用しています。
cd ~
mkdir Gdrive
echo $'#!/bin/sh\necho $* > /dev/stderr' > xdg-open
chmod 755 xdg-open
sudo mv xdg-open /usr/local/bin
次に、GoogleDriveをマウントします。端末に表示されるURLにWindows側のブラウザからアクセスして、認証をおこなってください。
$ google-drive-ocamlfuse ~/Gdrive
https://accounts.google.com/o/oauth2/auth?client_id=.... <-- ココのURLにアクセス
Access token retrieved correctly. <--認証が通ると表示される
Access token retrieved correctly.
が出力されると正常に終了しています。~/Gdrive
にGoogleDriveのファイルが表示されているはずです。
WSL起動時に自動でマウントする
次に、WSL起動時にGoogleDriveが自動でマウントされるように設定していきます。
自動マウントの方法はGithubにいくつか紹介されていますが、Ubuntuではsystemdを利用した方法が馴染み深いかなと思うので、ここではsystemdを利用した自動マウントを行います。(参考:Automounting)
wslにsystemdを有効化
WSL Ubuntuではsystemdは対応されていますが、デフォルトでは有効化されていません。
systemdを有効化する方法を下記の記事で紹介しているので、まだ有効化していない人は下記の記事を参考に有効化してください。
serviceの作成
systemdで利用するserviceファイルを作成します。まず、/etc/systemd/system/google-drive-ocamlfuse.service
を作成します。{mountpoint}と{username}は適宜変更してください。
$ sudo vim /etc/systemd/system/google-drive-ocamlfuse.service
[Unit]
Description=FUSE filesystem over Google Drive
After=network.target
[Service]
User={username}
Group={username}
ExecStart=google-drive-ocamlfuse {mountpoint}
ExecStop=fusermount -u {mountpoint}
Restart=always
Type=forking
[Install]
WantedBy=multi-user.target
serviceの登録
次に、自動起動を登録します。
sudo systemctl enable google-drive-ocamlfuse.service
これで完了です。一度wslを再起動して、GoogleDriveが自動マウントされることを確認してください。
まとめ
この記事では、WSL2 Ubuntu20.04でGoogleDriveを自動マウントする方法を紹介しました。
WSLはsystemdにも対応していることもあり、簡単に起動時の設定ができるようになりましたね。