はじめに
Ubuntu でファイルのバックアップや別 PC とのデータ共有を行う際、Google Drive をローカルのファイルマネージャーやコマンドラインから扱えると便利です。ただし、Google が公式に提供するデスクトップ同期クライアント「Google Drive for Desktop」は Windows と macOS のみの対応で、Linux 版は提供されていません。そのため Ubuntu では、OS の標準機能や専用ツールを使ってマウントする方法をとります。
本記事では、個人のマイドライブと組織の共有ドライブそれぞれの用途に合わせたマウント手順と、設定時に発生しやすい接続エラーの対処法を解説します。
- 3 つのマウント方法(GNOME オンラインアカウント/
google-drive-ocamlfuse/rclone)の違いと選び方 - Ubuntu 標準機能でマイドライブをマウントする手順と、接続エラーへの対処法
- 共有ドライブ(Team Drive)を扱う手順と、現在は必須となった OAuth クライアント ID の作成
方法は大きく 3 つに分かれます。マイドライブを手軽に使うなら GNOME オンラインアカウント、共有ドライブを扱うなら google-drive-ocamlfuseまたは rclone が選択肢になります。なお google-drive-ocamlfuseと rclone は、いずれも自前の OAuth クライアント ID の作成が前提となる点に注意が必要です。
ローカルの外付けドライブ(NTFS/exFAT)のマウントについては、関連記事『Linux で NTFS・exFAT の権限が変更できない原因とマウント設定』もあわせて参照してください。
3 つのマウント方法と選び方
Ubuntu で Google Drive をマウントする主な方法は次の 3 つです。用途(マイドライブのみか共有ドライブも使うか)と、自動マウントの要否で選びます。
| 項目 | GNOME オンラインアカウント | google-drive-ocamlfuse | rclone |
|---|---|---|---|
| 方式 | GUI 標準機能(GVfs) | FUSE マウント | FUSE マウント |
| マイドライブ | 対応 | 対応 | 対応 |
| 共有ドライブ(Team Drive) | 非対応 | 対応 | 対応 |
| 認証 | GUI でログイン | 自前 OAuth クライアント ID | 自前 OAuth クライアント ID |
| 自動マウント | ログイン時に自動 | 手動または要設定 | systemdで自動化可能 |
| 導入の手間 | 小(数ステップ) | 中 | 中 |
| メンテナンス状況 | OS 標準 | 継続 | 活発 |
選び方の目安は次のとおりです。
- 個人のマイドライブを手軽に GUI で使いたい場合: GNOME オンラインアカウント
- 共有ドライブを扱いたい場合:
google-drive-ocamlfuseまたは rclone - 共有ドライブに加えて自動マウントや他クラウドとの併用も視野に入れる場合: rclone

標準機能でマイドライブをマウントする(GNOME オンラインアカウント)
Ubuntu Desktop には「GNOME オンラインアカウント」が標準で備わっており、数ステップの GUI 操作で個人の Google アカウント(マイドライブ)をファイルマネージャーにマウントできます。共有ドライブには対応していないため、共有ドライブを扱う場合は後述の google-drive-ocamlfuseまたは rclone を使います。
設定とマウント手順
- 画面の「アプリケーションを表示する」から「設定」を開き、左メニューの「オンラインアカウント」を選択します。ターミナルから
gnome-control-center online-accountsを実行して直接開くこともできます。 - アカウントの一覧から「Google」を選び、ブラウザで対象の Google アカウントにログインし、アクセスを許可します。
- 標準の「ファイル」アプリを開くと、左側のサイドバーに追加した Google アカウントが表示されます。これを右クリックして「マウント」を選択します。
これで、ローカルのディレクトリと同様に Google Drive 上のファイル(マイドライブ)を GUI で操作できます。マウントしたディレクトリ上で右クリックして「端末で開く」を選べば、コマンドライン(CLI)からのアクセスも可能です。
接続エラー「インターネット接続がありません」への対処
オンラインアカウントの設定時に、ブラウザでは問題なくインターネットに接続できているにもかかわらず、「インターネット接続がありません」というエラーで Google へのログインが進まない場合があります。
この現象は、Ubuntu のネットワーク管理(Netplan)がサーバー向けの networkdで動作している場合に、GUI 側のネットワーク管理ツール(NetworkManager)が接続状態を正しく認識できないことが原因で発生します。対処として、Netplan のレンダラーを NetworkManagerに変更します。
まず、既存の Netplan 設定をバックアップして退避します。設定ファイルを直接削除すると元に戻せなくなるため、削除ではなく移動による退避をおすすめします。
sudo mkdir -p /root/netplan-backup
sudo mv /etc/netplan/*.yaml /root/netplan-backup/新しい設定ファイルを作成します。
sudo nano /etc/netplan/01-network-manager-all.yaml次の内容を記述して保存します。
network:
version: 2
renderer: NetworkManager設定ファイルのパーミッションを 600にし(他ユーザーから読めると警告が出るため)、設定を適用してから NetworkManager を再起動します。
sudo chmod 600 /etc/netplan/01-network-manager-all.yaml
sudo netplan generate
sudo netplan apply
sudo systemctl restart NetworkManager再起動後に再度「オンラインアカウント」を開き、Google へのログインが進むか確認します。もとの構成に戻す場合は、退避した設定ファイルを /etc/netplan/へ戻して再適用します。
共有ドライブをマウントする(google-drive-ocamlfuse)
GNOME オンラインアカウントは共有ドライブに対応していないため、共有ドライブ(Team Drive)を扱う場合は専用ツールの google-drive-ocamlfuseを使います。
ここで注意したいのが認証方式の変更です。Google は OAuth の「OOB(out-of-band)フロー」を 2023 年 1 月 31 日に完全廃止しました。これにより、以前のように google-drive-ocamlfuseを実行するだけでは認証できなくなり、現在は自前の OAuth クライアント ID とシークレットを作成して渡す手順が前提となります。
OAuth クライアント ID を作成する(現在は必須)
Google Cloud Console で、認証に使うクライアント ID を作成します。
- Google Cloud Console でプロジェクトを作成(既存のものでも可)します。
- 「API とサービス」から「Google Drive API」を有効化します。
- OAuth 同意画面を設定します。公開ステータスを「テスト」のままにすると認証トークンが約 7 日で失効するため、自分自身をテストユーザーに追加したうえで、継続利用するなら「本番(In production)」に切り替える運用をおすすめします。
- 「認証情報」→「認証情報を作成」→「OAuth クライアント ID」と進み、アプリケーションの種類で「デスクトップ アプリ」を選びます。
- 表示されたクライアント ID とクライアント シークレットを控えます。
参考: Authorization — astrada/google-drive-ocamlfuse Wiki
“You have to create your own OAuth2 client ID and client secret”
(自前の OAuth2 クライアント ID とシークレットを作成する必要がある)
https://github.com/astrada/google-drive-ocamlfuse/wiki/Authorization
インストールと認証
専用の PPA を追加してパッケージをインストールします。
sudo add-apt-repository ppa:alessandro-strada/ppa
sudo apt update
sudo apt install google-drive-ocamlfuse控えておいたクライアント ID とシークレットを指定して認証します。ブラウザが起動して認証画面が表示されるので、アクセスを許可します。認証コードは、ツールに組み込まれたローカルサーバー(既定でポート 8080)が受け取ります。
google-drive-ocamlfuse -id <クライアントID>.apps.googleusercontent.com -secret <クライアントシークレット>GUI を持たないサーバーで認証する場合は、-headlessオプションを使います。表示された URL を別の端末のブラウザで開き、得られた認証コードを貼り付けます。
google-drive-ocamlfuse -headless -id <クライアントID>.apps.googleusercontent.com -secret <クライアントシークレット>共有ドライブ ID の指定とマウント
認証が完了すると、ホームディレクトリに設定ファイルが自動生成されます。共有ドライブをマウント先に指定するため、設定を変更します。
まず、マウント先へ他プロセスからアクセスできるよう、/etc/fuse.confの user_allow_otherを有効化します。
sudo sed -i -e "s/^#user_allow_other$/user_allow_other/" /etc/fuse.conf生成された設定ファイルを開き、対象の共有ドライブ ID を指定します。共有ドライブ ID は、ブラウザで対象の共有ドライブを開いたときの URL に含まれる文字列です。
vi ~/.gdfuse/default/configファイル内の team_drive_id=の項目に、ID を追記して保存します。
team_drive_id=共有ドライブのIDマウント用の空ディレクトリ(ここでは ~/GoogleDrive)を作成し、マウントを実行します。
mkdir ~/GoogleDrive
google-drive-ocamlfuse ~/GoogleDriveこれで、指定したローカルディレクトリから共有ドライブ内のファイルへアクセスできます。マウントを解除する場合は、次のコマンドを実行します。
fusermount -u ~/GoogleDriverclone でマウントする(共有ドライブ対応の代替)
google-drive-ocamlfuseの代替として、rclone も有力な選択肢です。rclone はメンテナンスが活発で、マイドライブと共有ドライブの両方に対応し、systemdを使った自動マウントも構成できます。複数のクラウドストレージを 1 つのツールで扱える点も利点です。
インストールと OAuth クライアント ID
rclone をインストールします。
sudo apt install rclone最新版を使う場合は、公式のインストールスクリプトも利用できます。
curl https://rclone.org/install.sh | sudo bashrclone でも、google-drive-ocamlfuseと同様に自前の OAuth クライアント ID(デスクトップ アプリ)の作成をおすすめします。既定では rclone 共有のクライアント ID が使われますが、レート制限がかかり速度が低下します。作成手順は前述の google-drive-ocamlfuseの項と同じです。
参考: Google drive — rclone documentation
“It is strongly recommended to use your own client ID”
(自前のクライアント ID の使用を強くおすすめする)
https://rclone.org/drive/
rclone config でリモートを作成する
対話形式でリモート(接続設定)を作成します。
rclone config主なプロンプトへの入力は次のとおりです。
n) New remoteを選び、名前(例:gdrive)を入力する。- ストレージの種類で
drive(Google Drive)を選ぶ。 client_id/client_secretに、作成したクライアント ID とシークレットを入力する。scopeで1(drive: フルアクセス)を選ぶ。root_folder_idとservice_account_fileは空欄のまま進む。Edit advanced config?はn。Use auto config?は、GUI 環境ならy(ブラウザで認証)、ヘッドレスならn。Configure this as a Shared Drive (Team Drive)?で、共有ドライブを使う場合はyを選び、一覧から対象の共有ドライブを選択する。
設定内容を確認して保存すると、リモートが作成されます。
マウントと自動マウント(systemd)
作成したリモートをローカルディレクトリにマウントします。--vfs-cache-mode writesは、書き込みの安定性を高めるために指定します。
mkdir -p ~/GoogleDrive
rclone mount gdrive: ~/GoogleDrive --vfs-cache-mode writesマウントを解除する場合は、次のコマンドを実行します。
fusermount -u ~/GoogleDriveログイン時に自動でマウントするには、ユーザー単位の systemdサービスを作成すると管理しやすくなります。~/.config/systemd/user/gdrive.serviceを作成し、次の内容を記述します。
[Unit]
Description=rclone mount for Google Drive
After=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/rclone mount gdrive: %h/GoogleDrive --vfs-cache-mode writes
ExecStop=/bin/fusermount -u %h/GoogleDrive
Restart=on-failure
[Install]
WantedBy=default.targetサービスを有効化して起動します。
systemctl --user daemon-reload
systemctl --user enable --now gdrive.serviceまとめ
Ubuntu で Google Drive をマウントする方法は、用途によって 3 つに分かれます。マイドライブだけなら GNOME オンラインアカウント、共有ドライブを扱うなら google-drive-ocamlfuseか rclone が選択肢です。後者 2 つは、現在は自前の OAuth クライアント ID の作成が前提となります。
- Google 公式の Drive for Desktop は Linux 非対応
- マイドライブは GNOME オンラインアカウントで GUI マウント
- 接続エラーは Netplan のレンダラーを NetworkManager に変更
- 共有ドライブは
google-drive-ocamlfuseか rclone で対応 - OOB 廃止により自前 OAuth クライアント ID が必須
- 公開ステータスがテストだとトークンは約 7 日で失効
- rclone は共有ドライブ対応で
systemd自動マウントも可能
以上、最後までお読みいただきありがとうございました。
