【Linux / OneDrive】LinuxでクラウドストレージのOneDriveをマウントする

変更履歴

Rev. 0.7 : 2024年03月04日
新規作成

1 はじめに

Microsoft 365のサブスクリプションを利用すると、
1TBものの容量のクラウドストレージのMicrosoft OneDrive (以降、単にOneDriveと記す)を
利用できるようになります。

これだけの容量だとWindowsだけで使うのはもったいなく、
Linuxのようにドライブとしてマウントできて、コマンドラインベースで利用できないものかと思っていました。

探してみたらrcloneというツールが見つかりましたので、
本記事でその使い方を紹介したいと思います。

rclone(rsync for cloud storage)は、40以上のクラウドストレージで、
コマンドライン環境よりファイルの操作ができるようになるオープンソースソフトウェアです。
Microsoft OneDriveの他にも、 Google DriveAmazon S3Dropboxなどとも連携できます。

rcloneを使うことで、クラウドストレージに対して以下が可能になります。

・ ファイルのコピー
・ フォルダーの同期
・ ローカルからクラウドストレージへファイルの移動
・ クラウドストレージをネットワークドライブとしてローカルにマウント

本記事では、
RHELなどのLinuxおけるrcloneのインストールと OneDriveのマウントの方法について示します。

つい最近(2024/02/05)、下に示すような記事を公開されているのを見つけましたので、
よければご覧になってみてください。

無料でGoogleドライブ・FTPなど70以上のストレージサービスに対応している
ファイル転送・同期アプリ「Rclone」を使ってみたレビュー

2 rcloneのインストールとコンフィギュレーション(設定)

bashスクリプトでダウンロード・インストールする方法もありますが、
本記事では全てのステップを手動で行う手順を示します。

他のインストール方法については、本家の下に示すページをご覧ください。

Install | RCLONE

2.1 インストール

2.1.1 Fetch and unpack

まず、パッケージのダウンロードと解凍は、以下に示すように行います。

$ curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
$ unzip rclone-current-linux-amd64.zip

2.1.2 Copy binary file

展開されたバイナリファイルを所定のディレクトリ“/usr/bin”にコピーし、
ファイルのオーナーとパーミッションを変更します。

$ cd rclone-*-linux-amd64
$ sudo cp rclone /usr/bin/
$ sudo chown root:root /usr/bin/rclone
$ sudo chmod 755 /usr/bin/rclone

2.1.3 Install manpage

最後にmanファイルを所定のディレクトリにコピーし、
mandb”コマンドで“man”コマンドにおいて表示されるマニュアルの索引情報を更新します。

$ sudo mkdir -p /usr/local/share/man/man1
$ sudo cp rclone.1 /usr/local/share/man/man1/
$ sudo mandb

2.2 OneDriveアクセストークン

rcloneMicrosoft OneDriveにアクセスするためには、 OneDriveアクセストークンが必要です。

OneDriveのアクセストークンが未取得であれば、
コンフィグレーションの最後の方のステップでアクセストークンを取得するために、
WebブラウザでOneDriveサインインが求められます。

sshなどのリモート端末からコンフィグレーションを行なった場合は、
後に記す2.3.7項で示すようにOneDriveへのサインインURLが表示されますので、
インストール先LinuxマシーンでそのURLでブラウザを開けば処理を継続することができます。

下に示すように、インストール先Linuxマシーンで、
コンフィグレーションに先立ってOneDriveアクセストークンだけを作成しておくこともできるようです。

$ rclone authorize “<remote storage>”

<remote storage>   リモートストレージの名前

この場合、OneDriveアクセストークンが表示されたら、
自らの手で記録保存、後にこの保存したOneDriveアクセストークン
configファイルに追加編集する必要があります。

2.3 Configuration(コンフィギュレーション)

rcloneのコンフィギュレーション(configuration: 設定)は、
sshなどで接続したリモート端末から行なうのではなく、
対象のLinuxマシーンのGUI環境で行なう方がスムーズなのかもしれません。

途中、OneDriveアクセストークンを取得するために、
Webブラウザが立ち上がる必要があるからです。

rcloneにおけるOneDriveのコンフィギュレーションについては、 下に示すページに詳細が記載されています。

Microsoft OneDrive / Configuration

2.3.1 コンフィギュレーションの開始

【configの開始】
コンフィギュレーションは、下に示すように“config”オプションを付けてrcloneを開始します。

$ rclone config

【configファイルのパス】
configファイルは、デフォルトでは次のパスに作成されます。

~/.config/rclone/rclone.conf

2.3.2 リモートストレージの名前

初めてコンフィギュレーションを行なう場合は、
No remotes found, make a new one?”と聞かれます。
以前コンフィユレーション立ち上げたけど何も設定しなかった場合は、
図2.3-1のように表示されるのかもしれません。

最初の問い合わせに、「New remote」の“n”を入力します。
name>”の問い合わせに、リモートストレージの名前を入力します。
ここで入力した名前は、以降Linuxからアクセスする際の名前となります。

2.3.3 リモートストレージの種類

リモートストレージの名前を設定すると、
オンラインストレージのサービス名がずらっと表示されます。
Storage>”では、「OneDrive」を示す番号である99を入力します
(何番になるかは、rcloneのバージョンによって異なるようです)。

2.3.4 クライアントID、クライアントシークレット

client id>”、“client secret>”では、何も入力せずにENTERキーを押下します。

2.3.5 リージョン

region>”では、「[Microsoft Cloud Global」の“1”を選択します。

2.3.6 advanced config

こちらは、デフォルトとして推奨されている「No」を選択します。

2.3.7 OneDriveの認証とアクセストークンの取得

Webブラウザを通じて、連携先サービスの認証をします。
y”を入力すると認証用のブラウザが起動して、
認証完了後OneDriveのアクセストークンが取得されます。

OneDriveアクセストークンの取得が完了すると、 図2.3-7のような表示が出ます。

Webブラウザが起動しない時は、手動でWebブラウザを立ち上げ、
rcloneコンフィギュレーション・ログ中に表示されている“http://127.0.0.1:53682~”のURLを
開きます。

コンフィギュレーション中に、OneDrive認証を行なわずアクセストークンを取得しなかった場合、
後に“rclone authorize“リモートストレージ名”とアクセストークンを取得して、
configファイルに追加編集する方法もあります
(“リモートストレージ名”は、 コンフィギュレーション中で決めた任意のデバイス名です)。

この時、configファイルのフォーマットの知識が必要ですが、
見ていただければすすぐにお分かりになると思いますので、
configファイルのフォーマットの説明は本記事では割愛します。

2.3.8 接続タイプ

OneDrive Personal or Business」を示す“1”を入力して次へ。

2.3.9 使用するドライブの選択

使用するドライブを選択します。
複数の契約をされている方はIDが複数表示されているかもしれませんが、
1つしか表示されていなければ空欄のままENTERキーを押下すればOKです。

2.3.10 コンフィグレーション・データの保存

コンフィギュレーションが完了すると、図2.3-10に示すように
configファイルに保存する内容が表示され、保存することの確認が求められます。
y/e/d>”で“y”を入力して設定を保存します。

  最後に「Quit config」の“q”を入力して、コンフィギュレーションを終了します。

3 rcloneの使い方

本章では、rcloneの使い方を簡単に紹介します。
詳しくは、次のページをご覧いただければと思います。

Rclone Commands

3.1 rcloneの基本的な使い方

rcloneの基本的な使い方は、下に示すようになります。

下に、いくつかのコマンド使用例を示します。

1) クラウドストレージpathフォルダーの一覧を表示する。
$ rclone ls remote:path
2) “/local/path”のファイルをクラウドストレージのpathフォルダーにコピーする。
$ rclone copy /local/path remote:path
3) “/local/path”のローカルディレクトリを、
クラウドストレージのpathフォルダーに同期する。
$ rclone sync --interactive /local/path remote:pat

3.2 rcloneの主なコマンド

rcloneのコマンドは、bashにほぼ同じです。

表3.2-1によく使われるだろうと思われるコマンドを示します。

すべてのコマンドについては、下に示すページでご確認ください。

Rclone Command

4 自動マウント

rcloneのリモートドライブをLinuxマシーン起動時に自動でマウントする方法については、
次のページで詳しく説明されています。

Rclone as Unix mount helper

本記事は、このページからの抜粋となります。

4.1 マウントの設定ファイル

cifsnfsのように“mount -t cifs ...”、“mount -t nfs ...”とマウントできるようにするには、
まず下に示すように“/sbin/”配下に“mount.rclone”のンボリックリンクを作ります。

# ln -s /usr/bin/rclone /sbin//mount.rclone

次に、“/etc/systemd/system/”に、拡張子が“.mount”の設定ファイルを追加します。

設定ファイル名は、自動マウントしたいパスのフルパス名にしなければならないようです。
例えば、“/mnt/aaaa/bbbb”がマウント先であれば、“mnt-aaaa-bbbb.mount”のように
ディレクトリのスラッシュ“/”をハイフン“-”に置き換えたファイル名にします。

キャッシュ用ディレクトリがない場合は、併せて作っておきます。

# mkdir /var/cache/rclone

設定を追加したら、systemctlで対象サービスを起動します。

# systemctl start <path-to-mount>.mount

4.2 自動マウントの設定

自動マウントは、以下に示すいずれかの方法でできるようになります。

1. “/etc/systemd/system/”に“.automount”の拡張子で設定ファイルを作る
2. “/etc/fstab”に設定を追加する

本記事では、項番2のfstabに設定を追加する方法を例示します。

各フィールドの設定内容は、表4.2-1に示すようになっています。

下にリモートストレージonedriveを、
Linuxの”/home/onedrive”ディレクトリにマウントする例を示します。

onedrive: /home/onedrive rclone rw,noauto,nofail,_netdev,x-systemd.automount,args2env,vfs_cache_mode=writes, config=/root/.config/rclone/rclone.conf,cache_dir=/var/cache/rclone 0 0

図4.2-1に示すリモートストレージ名”onedriveOneDriveのフォルダーが、
図4.2-2に示すようにLinuxの“/home/onedrive”ディレクトリにマウントされます。

以上

本記事の元となっているWordで作成したPDFを
ページ最後に貼り付けました。

少しでも役に立てていただければ、うれしく思います。

このPDFファイルは、自由に配布されてもかまいません。
ただし、再配布の際には、
入手元著者名は明らかにしてください

なお、上のPDFファイルの内容、また本文中の記述に、
誤字や脱字、誤った内容の記述など見つかりましたら、
下に示すフォームでご連絡いただければ幸いです。

お問い合わせ