Ubuntu環境でpCloudのマウントを自動化する
pCloudクラウドストレージの設定
pCloudとは
pCloudは、スイス発のクラウドストレージサービスで、高いセキュリティとプライバシー保護を特徴としています。ユーザーは一度の支払いで生涯利用できる買い切りプランを選択でき、追加料金が発生しない点が魅力です。
pCloudのアカウントを作成する
以下を参考にするなどして、pCloudのアカウントを作成しておいてください。
pCloud Appの設定
pCloud AppのAppImageファイルを実行するため、事前にGear Leverをインストールしておきます。
pCloud Appは、デスクトップアプリとして仮想ドライブのように機能します。これにより、PCのディスクスペースをほとんど使用せずにファイルを管理でき、簡単にアップロードやダウンロードが可能になります。
以下からpcloud
(pCloud AppのAppImageファイル)を任意のディレクトリにダウンロードします。
Gear Leverからpcloud
を開いて、アプリを立ち上げます。
pCloudのアカウントを選択するよう要求されますので、指示に従って設定を進めます。正しく設定されるとアプリが立ち上がって、~/pCloudDrive/
ディレクトリ内にpCloudがマウントされます。
Rcloneによるマウント設定
pCloudのマウントをCLIで実行するにはRcloneを使用するのが良さそうです。
Rcloneのインストール
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とは
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
参考
本記事は、以下の記事を参考にさせて頂きました。
Discussion