2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Ubuntu ServerにGoogle Driveをマウント(rclone)

Last updated at Posted at 2025-05-18

はじめに

  • 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
    スクリーンショット 2025-05-18 13.35.51.png
    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。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?