Linux で OneDrive for Business をマウント — NetDrive 実験的ビルド

読了目安 7 分 provider-guide onedrive linux
Casey
CaseyProduct Manager
NetDrive の実験的な Linux ビルドで OneDrive for Business を Ubuntu のマウントポイントとしてマウント。Azure AD サインイン、インストール手順、確認方法を解説。

あるデータエンジニアは、Ubuntu マシン上で ETL スクリプトを保守しており、財務チームが OneDrive for Business に保管している参照用スプレッドシートを読み込む必要がある。現状ではブラウザ経由で各ファイルを手動でダウンロードし、財務チームが元ファイルを編集するたびに再アップロードするしかない。NetDrive の Linux ビルドを使えば、その同じ OneDrive for Business ライブラリを通常の Ubuntu マウントポイントとしてマウントできるため、cron ジョブの open() 呼び出しは古いローカルコピーではなく最新のファイルに直接届く。

NetDrive drive manager showing Google Drive, S3 and pCloud mounted as drive lettersMounted clouds appearing as native drives in Windows File Explorer

Linux で OneDrive for Business をマウント

NetDrive を使えば Google Drive、OneDrive、S3、SFTP、WebDAV などが Windows と macOS でネイティブドライブとして表示されます — 同期も、まるごとダウンロードも不要です。

  • OneDrive for Business が通常の Ubuntu マウントポイントとして表示される
  • ファイルはオンデマンドでストリーミング — 同期クライアント不要、事前の全ダウンロードも不要
  • Microsoft 365 の職場または学校アカウントに対応
WindowsmacOS
Download NetDrive for Linux →

無料トライアル。永久ライセンスとサブスクリプションプランあり。

Linux マシンになぜこれが必要か

OneDrive for Business は、個人の Microsoft アカウントではなく Azure AD を通じて認証される、職場または学校アカウント紐付けの Microsoft 365 ドキュメントストアだ。Microsoft は Linux 向けのネイティブな OneDrive 同期クライアントを提供していないため、それらのファイルを必要とする Linux ワークステーションや CI ランナーは、手動でのブラウザダウンロードか、Windows を使うチームメイトに添付ファイルを転送してもらうしかないことが多い。NetDrive は最初のリリース以来 OneDrive for Business をサポートしており、同じ接続タイプが Linux ビルドでも利用できる — ライブラリはマウントポイントを通じて Microsoft のサーバーに対して直接読み取りを解決するため、最新状態を保つためのローカル同期フォルダは不要だ。

NetDrive がクラウドストレージアカウントをローカルドライブとしてマウントしている様子 — Linux ビルドがマウントポイントで提供するのと同じ基本的な動作

Ubuntu への NetDrive のインストール

NetDrive for Linux は Ubuntu のパッケージリポジトリには含まれていないため、インストールは GitHub 経由で行う。

  1. github.com/NetDrive/installer にアクセスし、使用している Ubuntu のバージョンに合ったリリースをダウンロードする。
  2. そのリポジトリのリリースノートに従う — NetDrive が何かをマウントできるようになる前に、ドライバコンポーネントをインストールする必要がある。
  3. NetDrive パッケージ本体をインストールする。
  4. NetDrive を起動する。初回起動時にドライバコンポーネントが読み込まれ、sudo を求められることがある。

サポートされる最小バージョンは Ubuntu 16.04 だ。アップデートは apt upgrade ではなく GitHub リリースとして配布される。Linux は NetDrive 自身の比較ページ全体で使われているのと同じ「実験的」というラベルが付いており、Linux 上の OneDrive for Business マウントは、自分で十分にテストせずに無人の本番ジョブを任せるようなものではなく、開発用ワークステーションや CI ランナーに適したものとして扱うべきだ。

手順: Ubuntu で OneDrive for Business に接続する

  1. NetDrive の Drive Manager を開き+ Add Drive をクリックする。
  2. 接続タイプの一覧から Select OneDrive for Business を選択する — 個人用 OneDrive とは別に表示されている。

NetDrive のドライブ接続リストに表示される OneDrive for Business プロバイダーのロゴ

  1. 既定のブラウザで開く Azure AD の OAuth フローを通じて、Microsoft 365 の職場または学校アカウントでサインインする。ブラウザがインストールされていないヘッドレスの Ubuntu マシンでは、同じアカウントにサインインした別のマシンから一度だけの認可を完了させる。
  2. /mnt/onedrive-business のようなパス、または書き込み権限のある任意の空ディレクトリをマウントポイントとして設定する
  3. Click Connect すると、NetDrive が認証を行い、そのパスにライブラリをマウントする。

依存する前にマウントを確認する

GUI だけを信用せず、ターミナルからマウントが実際に成立したことを確認する。

# Confirm the mount is listed
mount | grep onedrive

# Or just try listing it
ls /mnt/onedrive-business

マウント後にクラウドドライブが正常に接続されたことを確認している様子

最初の試行で一覧が空で返ってきても、マウントが失敗したと即断せず少し待ってみてほしい — 大きなドキュメントライブラリはルートを読み込むのに数秒かかることがある。それでも空のままであれば、まず Azure AD サインインの手順を再確認すること。ブラウザフローの中断は、ヘッドレスマシンで OneDrive for Business 接続が完了しない最も一般的な原因だ。

Linux ビルドで想定しておくべきこと

  • リリースサイクルが別— Linux ドライバコンポーネントは独自のスケジュールで保守されているため、Windows や macOS に入った修正が同じ週のうちに Linux にも届くとは限らない。
  • apt との統合なし— インストールとアップデートは Ubuntu の標準パッケージマネージャーではなく GitHub リリースを通じて行われる。
  • Windows と macOS が本番想定のターゲット— NetDrive 自身のガイダンスではこれらを本番運用に耐えるものとして扱っており、Linux は実験的というラベルが付いている。たまにファイルを読む程度の開発用ワークステーションや CI ランナーであれば妥当な選択だが、OneDrive for Business アクセスに依存する無人の本番ジョブは、自分のハードウェアで十分にテストする価値がある。

まとめ

Ubuntu で OneDrive for Business をマウントすれば、apt ではなく GitHub 上に置かれたインストーラーを通じて、NetDrive が Windows と macOS で提供しているのと同じドライブ形式のアクセスを Linux マシンでも得られる。より十分にテストされたプラットフォームで同じプロバイダーを使う方法については、Mount OneDrive for Business on Windows with NetDrive または Mount OneDrive for Business on macOS with NetDrive を参照。Linux 全般については NetDrive on Ubuntu Linux を参照。

— Casey, NetDrive