WSL2 から Google Drive を rclone でマウントする手順
1. 前提条件
- WSL2 上の Ubuntu
- Google アカウント
- インターネット接続
2. rclone のインストール
bash
sudo apt update
sudo apt install rclone fuse33. Google Cloud Console で OAuth クライアント ID を作成(推奨)
空のままスキップしても動作するが、rclone 内蔵の共有キーはレートリミットに引っかかりやすいため、自分専用の ID を作ることを推奨。
- Google Cloud Console にアクセス
- プロジェクトを作成(または既存を選択)
- API とサービス → ライブラリ で「Google Drive API」を検索し有効化
- API とサービス → OAuth 同意画面 を設定
- ユーザータイプ: 外部
- アプリ名: 任意(例:
my-rclone) - スコープ: 追加不要
- テストユーザーに自分の Google アカウント(Gmail)を追加
- API とサービス → 認証情報 → 認証情報を作成 → OAuth クライアント ID
- アプリケーションの種類: デスクトップアプリ
- 名前: 任意
- 作成後に表示される クライアント ID と クライアントシークレット を控える
注意: テストユーザーに自分を追加しないと「アクセスをブロック: my-rclone は Google の審査プロセスを完了していません」というエラーが出る。
4. rclone の設定
bash
rclone config対話形式で以下を設定する。
| 項目 | 入力内容 |
|---|---|
n/s/q> | n(新規作成) |
name> | 任意(例: gdrive) |
Storage> | Google Drive を選択 |
client_id> | 手順 3 で取得した クライアント ID(スキップ可) |
client_secret> | 手順 3 で取得した クライアントシークレット(スキップ可) |
service_account_file> | 空のまま Enter(個人利用では不要) |
Use auto config? | WSL2 ではブラウザが開けない場合があるので No を選び、表示された URL を Windows のブラウザで開いて認証する |
認証画面で「このアプリは Google で確認されていません」と警告が出た場合は、「詳細」→「(アプリ名)(安全ではないページ)に移動」 をクリックして進める。
5. 手動マウントの確認
bash
mkdir -p ~/gdrive
rclone mount gdrive: ~/gdrive --vfs-cache-mode writes &マウントの確認:
bash
df -h | grep gdrive
ls ~/gdriveアンマウント:
bash
fusermount -u ~/gdrive6. WSL 起動時の自動マウント(.bashrc)
~/.bashrc に以下を追加する。
bash
# rclone Google Drive 自動マウント
if ! mountpoint -q ~/gdrive 2>/dev/null; then
mkdir -p ~/gdrive
(
for i in $(seq 1 10); do
rclone mount gdrive: ~/gdrive --vfs-cache-mode writes 2>/dev/null && break
sleep 2
done
) &
fiWSL 起動直後は FUSE デバイスが準備できていない場合があるため、2 秒間隔で最大 10 回リトライする構成にしている。2>/dev/null で途中のエラーメッセージを抑制する。
7. よく使うオプション
| オプション | 説明 |
|---|---|
--vfs-cache-mode writes | 書き込みのみキャッシュ(通常はこれで十分) |
--vfs-cache-mode full | 読み書き両方キャッシュ(大きいファイルの読み込みが多い場合) |
--vfs-cache-max-size 1G | キャッシュの上限サイズ |
--vfs-cache-max-age 1h | キャッシュの保持時間 |
--dir-cache-time 5m | ディレクトリ一覧のキャッシュ時間 |
--bwlimit 10M | 帯域制限 |
--drive-shared-with-me | 共有ドライブも表示 |
8. トラブルシューティング
マウントが残って再マウントできない
bash
fusermount -u ~/gdrive 2>/dev/nullPermission denied エラー
bash
# fusermount に setuid ビットがあるか確認
ls -l /bin/fusermount*
# なければ付与
sudo chmod u+s /bin/fusermount3ログの確認
bash
# systemd 方式の場合
journalctl --user -u rclone-gdrive -f
# .bashrc 方式でログを出力する場合は --log-file オプションを追加