Zenn
☁️

Ubuntu環境でpCloudのマウントを自動化する

2024/12/28に公開

pCloudクラウドストレージの設定

pCloudとは

https://www.pcloud.com/

pCloudは、スイス発のクラウドストレージサービスで、高いセキュリティとプライバシー保護を特徴としています。ユーザーは一度の支払いで生涯利用できる買い切りプランを選択でき、追加料金が発生しない点が魅力です。

pCloudのアカウントを作成する

以下を参考にするなどして、pCloudのアカウントを作成しておいてください。

https://www.pcloud.com/ja/help/general-help-center/how-do-i-create-a-pcloud-account

pCloud Appの設定

pCloud AppのAppImageファイルを実行するため、事前にGear Leverをインストールしておきます。

https://zenn.dev/ats030/articles/setup-gearlever-on-ubuntu

pCloud Appは、デスクトップアプリとして仮想ドライブのように機能します。これにより、PCのディスクスペースをほとんど使用せずにファイルを管理でき、簡単にアップロードやダウンロードが可能になります。

以下からpcloud(pCloud AppのAppImageファイル)を任意のディレクトリにダウンロードします。

https://www.pcloud.com/ja/download-free-online-cloud-file-storage.html

Gear Leverからpcloudを開いて、アプリを立ち上げます。

pCloudのアカウントを選択するよう要求されますので、指示に従って設定を進めます。正しく設定されるとアプリが立ち上がって、~/pCloudDrive/ディレクトリ内にpCloudがマウントされます。

Rcloneによるマウント設定

pCloudのマウントをCLIで実行するにはRcloneを使用するのが良さそうです。

Rcloneのインストール

https://zenn.dev/ats030/articles/install-rclone-on-ubuntu

RcloneにpCloudを登録する

以下のコマンドでRcloneにpCloudのリポジトリを登録します。

rclone config

以後、以下のように設定していきます。

No remotes found, make a new one?
n) New remote
s) Set configuration password
q) Quit config
n/s/q>

nを入力して、新しい接続先を設定します。

Enter name for new remote.
name>

pcloudを新しい接続先名に設定します。

Choose a number from below, or type in your own value.
...
33 / Pcloud
   \ (pcloud)
...
Storage>

接続先のストレージとしてpCloudを選択します。今回は33を入力しました。

Leave blank normally.
Enter a value. Press Enter to leave empty.
client_id>

空欄のままEnterを入力します。

Leave blank normally.
Enter a value. Press Enter to leave empty.
client_secret>

空欄のままEnterを入力します。

Edit advanced config?
y) Yes
n) No (default)
y/n>

nと入力するか、空欄のままEnterを入力します。

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>

ブラウザが使用できる場合

yと入力するか、空欄のままEnterを入力します。

ブラウザが立ち上がって、ログイン画面が表示されます。

正しくログインが行われると、コンソール上で以下の質問が続けられます。

Keep this "pcloud" remote?

y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d>

yと入力するか、空欄のままEnterを入力します。

ブラウザが使用できない場合

SSH接続などでブラウザが使用できない場合、nと入力します。

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 "pcloud"
Then paste the result.
Enter a value.
config_token>

ブラウザが使用できる他のPCで、以下のコマンドを入力します。

rclone authorize "pcloud"

ブラウザが立ち上がって、ログイン画面が表示されます。

正しくログインが行われると、コンソール上で以下のように表示されます。

...
Paste the following into your remote machine --->
<SECRET_TOKEN>
<---End paste

元のPCのコンソールで、config_token> の後ろに<SECRET_TOKEN>の部分を入力します。

Configuration complete.
Options:
- type: pcloud
Keep this "pcloud" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> 

yと入力するか、空欄のままEnterを入力します。


Current remotes:

Name                 Type
====                 ====
pcloud               pcloud

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を入力して環境から出ます。

Rcloneのテスト

以下のコマンドで、RcloudからpCloudの情報を取得してみます。

rclone lsd pcloud:

pCloudのホームディレクトリ内のディレクトリの一覧が表示されれば、登録は正しく行われています。

pCloudのマウントテスト

(pCloud Appのほうで生成されるディレクトリと同じ)~/pCloudDrive/ディレクトリを作って、そこにRcloneのmountコマンドでpCloudをマウントするようにします。

sudo mkdir ~/pCloudDrive/
sudo chmod +x ~/pCloudDrive/
rclone mount pcloud: ~/pCloudDrive/ --daemon --cache-dir ~/.local/var/rclone/ --vfs-cache-mode full

~/pCloudDrive/ディレクトリを開くと、RcloneによってpCloudのホームディレクトリにアクセスできるようになっていることが確認できます。

/usr/sbin/内のmountコマンドは、-t FSTYPEオプション毎に/bin/mount.FSTYPEが呼び出されるようになっています。 そこで、rcloneについて、以下のシンボリックリンクを張ることで、 mountコマンドでrcloneを呼び出すことが出来るようになります。

sudo rm -r /sbin/mount.rclone
sudo ln -s /usr/bin/rclone /sbin/mount.rclone

シンボリックリンクが貼れたら、mountコマンドでマウントしてみます。

mount pcloud: ~/pCloudDrive/ -t rclone -o cache-dir="/home/<ユーザー名>/.local/var/rclone/",vfs-cache-mode=full

以上の様に、rclone mountコマンドは、 mountコマンドで置き換える事ができるようになりました。 つまり、システムは、mountコマンドを使って、 他のファイルシステムと同様にpCloudをマウント出来るようになったということです。

systemdによる自動マウント設定

Ubuntu起動時にmountコマンドが実行されてpCloudがマウントされるようにするため、systemdを使用します。

systemdとは

https://systemd.io/

systemdは、Linuxシステムの起動と管理を担うソフトウェアです。従来のinitシステムに代わり、高速な起動や柔軟なプロセス管理を実現し、多くの主要Linuxディストリビューションで採用されています。systemdは「ユニット」と呼ばれる単位でサービスを管理し、設定ファイルを通じて統一的なシステム管理を可能にします。

systemdのユニットファイル

systemdでは、各設定の単位を「ユニット」と呼ぶことになっています。ユーザー用のユニットファイルは、~/.config/systemd/user/ディレクトリ以下に配置します。

ユニットファイルは、そのファイル名がマウントポイントのパスを表します。今回の例では「/home/<ユーザー名>/pCloudDrive/」がマウントポイントになります。そのため、ユニットファイルを以下のようなコマンドで作成して編集します。

sudo nano ~/.config/systemd/user/home-<ユーザー名>-pCloudDrive.mount

このファイルの中身は以下の内容を入力します。

[Unit]
After=network-online.target
[Mount]
Type=rclone
What=pcloud:
Where=/home/<ユーザー名>/pCloudDrive/
Options=vfs-cache-mode=full,cache-dir=/home/<ユーザー名>/.local/var/rclone/
[Install]
WantedBy=default.target

systemdのユニットの起動と終了のテスト

手動でのユニットの起動は、systemctlコマンドで行います。

systemctl --user start /home/<ユーザー名>/pCloudDrive/

また、手動でのユニットの終了は以下のコマンドで行います。

systemctl --user stop /home/<ユーザー名>/pCloudDrive/

ユニットの自動起動

Ubuntu起動時に自動でマウントしてくれるようにするため、以下のコマンドを実行しておきます。

systemctl --user enable home-<ユーザー名>-pCloudDrive.mount

その後、以下のコマンドでUbuntuを再起動します。

sudo reboot

再起動後、pCloudが~/pCloudDrive/フォルダに自動でマウントされているはずです。

ユニットの実行状況の確認と停止

また、ユニットの状況については、systemctl statusコマンドで確認できます。

systemctl --user status /home/<ユーザー名>/pCloudDrive/

自動マウントを停止したい場合は、systemctl disableコマンドを使用します。

systemctl --user disable home-<ユーザー名>-pCloudDrive.mount

参考

本記事は、以下の記事を参考にさせて頂きました。

https://neko-mac.blogspot.com/2022/03/rclone.html

https://neko-mac.blogspot.com/2022/03/rclone_22.html

GitHubで編集を提案

Discussion

ログインするとコメントできます