はじめに
- Ubuntu ServerのCUI環境で、Google Driveをマウントさせる方法
- マウントさせるだけなので、本体側の容量は食わないし、iPhoneなどスマホにGoogle Driveアプリがあれば同期ができる
- 設定中にオプションの選択があるが、Google Drive以外も対応しているようだ
環境
- Ubuntu Server24.04 LTS
- GoogleアカウントでGoogle Driveが使用できる
- GUIはmacOS(Homebrewが使用できること)
手順
Ubuntu Server側
- rcloneのインストール
sudo apt update
sudo apt install -y rclone
ずらずらずら
- rcloneの設定
rclone config
ここからrcloneのセットアップをQA式で行う
- configファイルが無いので新しく作成
→[n]
YYYY/MM/DD HH:mm:SS NOTICE: Config file "/home/hogehoge/.config/rclone/rclone.conf" not found - using defaults
No remotes found, make a new one?
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
- remoteに名前をつける
→[gdrive](任意)
Enter name for new remote.
name> gdrive
- ストレージの種類を選択する
→ google driveなので[18]または[drive]と入力
Option Storage.
Type of storage to configure.
Choose a number from below, or type in your own value.
- クライアントID
→何も入力しないで[Enter]
Option client_id.
Google Application Client Id
Setting your own is recommended.
See https://rclone.org/drive/#making-your-own-client-id for how to create your own.
If you leave this blank, it will use an internal key which is low performance.
Enter a value. Press Enter to leave empty.
client_id>
- クライアントsecret
→何も入力しないで[Enter]
Option client_secret.
OAuth Client Secret.
Leave blank normally.
Enter a value. Press Enter to leave empty.
client_secret>
- scope
→フルアクセスなので[1]
Option scope.
Scope that rclone should use when requesting access from drive.
Choose a number from below, or type in your own value.
Press Enter to leave empty.
....
scope> 1
- service_account_file
→何も入力しないで[Enter]
Option service_account_file.
Service Account Credentials JSON file path.
Leave blank normally.
Needed only if you want use SA instead of interactive login.
Leading `~` will be expanded in the file name as will environment variables such as `${RCLONE_CONFIG_DIR}`.
Enter a value. Press Enter to leave empty.
service_account_file>
- Edit advanced config?
→[n]
Edit advanced config?
y) Yes
n) No (default)
y/n> n
- Use auto config?
→CUIで作業しているので[n]
Use auto config?
* Say Y if not sure
* Say N if you are working on a remote or headless machine
y) Yes (default)
n) No
y/n> n
- 認証トークンが表示される("XXXxxxXXXxxYYYYYYYY"の部分)
この行を控えておく
Option config_token.
For this to work, you will need rclone available on a machine that has
a web browser available.
For more help and alternate methods see: https://rclone.org/remote_setup/
Execute the following on the machine with the web browser (same rclone
version recommended):
rclone authorize "drive" "XXXxxxXXXxxYYYYYYYY"
Then paste the result.
Enter a value.
config_token>
macOS(GUI)
- GUI環境(今回はmacOS)のターミナルで以下のコマンドを入力
以下のようにzsh: command not found: rcloneが出た場合は
rcloneをbrewでインストールする
rclone authorize "drive" "XXXxxxXXXxxYYYYYYYY"
zsh: correct rclone to _rclone [nyae]? n
zsh: command not found: rclone
- macOSにrcloneをインストール
brew install rclone
ずらずらずら
- 改めてrcloneコマンドをトークン付きで実行
ブラウザが開き、googleアカウントにログインし、rcloneを信頼しますか?にOKするとブラウザに
[Success!]
All done. Please go back to rclone.
と表示されればOK

macOSのターミナルに認証トークンが表示されるのでコピーする。
rclone authorize "drive" "XXXxxxXXXxxYYYYYYYY"
...
Paste the following into your remote machine --->
xxyyYYYYYYYYYaaaaaaaaaaAAAA
aaaaaaaaaaAAAAxxyyYYYYYYYYY
xxyyYYYYYYYYYaaaaaaaaaaAAAA
aaaaaaaaaaAAAAxxyyYYYYYYYYY
<---End paste
Ubuntu Server側
- 先ほどの認証トークンをUbuntuにペーストする
config_token> xxyyYYYYYYYYYaaaaaaaaaaAAAA
aaaaaaaaaaAAAAxxyyYYYYYYYYY
xxyyYYYYYYYYYaaaaaaaaaaAAAA
aaaaaaaaaaAAAAxxyyYYYYYYYYY
- Google Drive の「共有ドライブ(旧:Team Drive)」を使うか?という確認
→[n]
Configure this as a Shared Drive (Team Drive)?
y) Yes
n) No (default)
y/n> n
- 設定完了
→[y]
Configuration complete.
Options:
- type: drive
- scope: drive
- token: {"access_token":"***********","expiry":"YYYY-MM-DDTHH:mm:SS.sssssss+09:00"}
- team_drive:
Keep this "gdrive" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y
- 現在の設定表示
→OKだったら[q]でquit
Current remotes:
Name Type
==== ====
gdrive drive
e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q
Ubuntu Serverでマウントさせる
- このままだとrcloneの設定が終わっただけ。マウントさせる必要がある、
システムの/mntなどにマウントさせようとするとsu権限が必要なので、
ユーザーのディレクトリにマウントさせる。
rcloneコマンドはフォアグラウンドで実行されるので、確認は別のターミナルで行う。
~
#ユーザーディレクトリで作業
cd ~/
mkdir mnt/gdrive
rclone mount gdrive: ~/mnt/gdrive --vfs-cache-mode writes
- 別のターミナルでdfを実行して、gdriveがマウントされていればOK
cd ~/gdriveに入るとGoogle Driveの中身が見える
$ df
Filesystem 1K-blocks Used Available Use% Mounted gdrive: 104857600 56285924 48571676 54% /home/hogehoge/gdrive
常時マウントさせる
- systemd サービスファイルを作成
sudo pico /etc/systemd/system/rclone-gdrive.service
- 中身
※userは[hogehoge]としています。適宜変えてください
--allow-otherオプションは全ユーザーにマウントファイルのアクセスを許可する
[Unit]
Description=Mount Google Drive (rclone)
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=hogehoge
ExecStart=/usr/bin/rclone mount gdrive: /home/hogehoge/mnt/gdrive \
--config=/home/hogehoge/.config/rclone/rclone.conf \
--vfs-cache-mode writes \
--dir-cache-time 1h \
--poll-interval 15s \
--umask 002 \
--allow-other
ExecStop=/bin/fusermount -u /home/hogehoge/mnt/gdrive
Restart=on-failure
[Install]
WantedBy=default.target
- --allow-other オプションを有効にした場合
/etc/fuse.conf ファイルを編集
/etc/fuse.conf
sudo nano /etc/fuse.conf
- user_allow_otherの部分のコメントアウトを外す
/etc/fuse.conf
user_allow_other
systemctlに反映
# 設定をリロード
sudo systemctl daemon-reload
# 起動時にデーモン起動有効
sudo systemctl enable rclone-gdrive.service
# デーモン再起動
sudo systemctl restart rclone-gdrive
# リアルタイムでログを確認
sudo journalctl -u rclone-gdrive.service -f
- デーモン起動確認
デーモンとしてrcloneが動いていることを確認する。Actime: active (running) であればOK。
sudo systemctl status rclone-gdrive
● rclone-gdrive.service - Mount Google Drive (rclone)
Loaded: loaded (/etc/systemd/system/rclone-gdrive.service; enabled; preset: enabled)
Active: active (running) since Sun yyyy-MM-DD HH:mm:SS JST; 30s ago
- マウント確認
dfでgdriveにマウントを確認できる
df
...
gdrive: 104857600 56285924 48571676 87% /home/mnt/gdrive
cd ~/mnt/gdrive
Google Driveの中身が見えていればOK。