在 Linux 掛載 OneDrive — NetDrive 的實驗性 Ubuntu 版本

閱讀時間 6 分鐘 provider-guide onedrive linux
Alex
AlexPrincipal Engineer
在 Ubuntu 上使用 NetDrive 的實驗性 Linux 版本,將個人 OneDrive 或 OneDrive for Business 掛載為一般的 Linux 掛載點。

某建置伺服器運行 Ubuntu,每次發行前都需要從共用的 OneDrive for Business 資料庫讀取一批規格文件,而在無頭主機上安裝微軟自家的同步客戶端並不是真正可行的選項。NetDrive 的 Linux 版本繞過了這個問題:它會在一般的掛載點掛載 OneDrive 帳號,因此執行 cat /mnt/onedrive/specs/release-notes.md 的腳本讀到的是微軟伺服器上的即時檔案,而不是有人忘了同步的過期本機副本。

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

在 Ubuntu 上掛載 OneDrive

NetDrive 讓 Google Drive、OneDrive、S3、SFTP、WebDAV 等在 Windows 與 macOS 上顯示為原生磁碟機 — 不需同步,也不需完整下載。

  • 支援 Ubuntu 16.04 及以上版本
  • 個人 OneDrive 與 OneDrive for Business 可同時並存
  • 檔案隨選串流 — 不會預先下載
WindowsmacOS
下載 NetDrive for Linux →

免費試用。提供終身與訂閱方案。

在此情境下,掛載點為何勝過同步資料夾

微軟的 OneDrive 同步客戶端是圍繞著「保持本機鏡像最新」設計的,這代表它會想在任何操作之前先下載檔案——在筆電上這是合理的取捨,但在一台只需要從一個總共數十 GB 的共用資料庫中讀取三個檔案的 Linux 建置主機上,就顯得不太合適。掛載省去了「先下載全部」這一步。NetDrive 會透過掛載點直接對 OneDrive 帳號解析每一次讀寫,因此腳本的 open() 呼叫會取得目前的遠端檔案,而不需要事先執行同步。

NetDrive 自第一個版本起就支援 OneDrive,並將 OneDrive for Business 視為與個人 OneDrive 不同的獨立連線類型——它使用微軟現代化的 API,並擁有自己的設定,因此一個工作帳號與一個個人帳號可以同時掛載,彼此互不干擾。

NetDrive 將雲端儲存帳號掛載為本機磁碟機——這正是 Linux 版本在掛載點上提供的核心互動

在 Ubuntu 上安裝 NetDrive

NetDrive 的 Linux 版本並未透過 Ubuntu 的套件庫發布,因此安裝流程是透過 GitHub,而非 apt

  1. 前往 github.com/NetDrive/installer,取得符合你 Ubuntu 版本的發行版。
  2. 依照安裝程式儲存庫的發行說明操作——在 NetDrive 能掛載任何東西之前,必須先安裝驅動元件。
  3. 安裝 NetDrive 套件本身。
  4. 啟動 NetDrive。首次執行會載入驅動元件,依系統設定不同,可能會要求 sudo 權限。

最低支援版本為 Ubuntu 16.04。更新是以 GitHub 發行版的形式提供,而非 apt upgrade;而且 Linux 版本掛著 NetDrive 自家的實驗性標籤——Windows 與 macOS 才是測試最完整的平台,所以這比較適合建置主機或開發機,而不建議未經自行測試就用於正式環境中承載關鍵任務的用途。

逐步操作:在 Ubuntu 上連接 OneDrive

  1. 開啟 NetDrive 的 Drive Manager,然後點擊 + Add Drive
  2. 若為個人微軟帳號,選擇 OneDrive;若為 Microsoft 365 工作帳號,則選擇 OneDrive for Business

在磁碟機連線清單中顯示的 NetDrive OneDrive 供應商標誌

  1. 透過在預設瀏覽器中開啟的 OAuth 流程登入。 若是沒有安裝瀏覽器的無頭主機,可以從另一台已登入同一帳號的機器完成一次性授權,或是使用 X-forwarded 連線。
  2. 設定掛載點——例如 /mnt/onedrive,或任何你有寫入權限的空目錄。
  3. 點擊 Connect。 NetDrive 會向微軟進行驗證,並在該路徑掛載此帳號。

目錄清單會在你第一次瀏覽資料夾時從 OneDrive API 取得;個別檔案要等到真正被開啟時才會下載。

從終端機驗證掛載狀態

在把腳本指向這個路徑之前,先確認掛載確實成功,而不要只信任圖形介面:

# Confirm the mount is listed
mount | grep onedrive

# Or just try listing it
ls /mnt/onedrive

確認雲端磁碟機在掛載後成功連線

如果清單顯示為空,先回頭檢查 OAuth 步驟——在無頭主機上,瀏覽器流程被中斷是 OneDrive 連線未能完成最常見的原因,遠比任何與掛載點相關的問題更常見。若是 OneDrive for Business,請特別確認你選的是 Business 連線類型而非個人 OneDrive;兩者使用不同的登入流程,無法互相驗證對方的帳號。

Linux 版本需要留意的事項

  • 獨立的發行節奏——Linux 驅動元件有自己的發行排程,因此在 Windows 或 macOS 上釋出的修正不會自動在同一週內抵達 Linux。
  • 沒有 apt 整合——安裝與更新都來自 GitHub 發行版,而非 Ubuntu 的預設套件庫。
  • Windows 與 macOS 才是經過強化的目標平台——NetDrive 官方指引將 Linux 視為實驗性平台。CI 執行器或個人開發機每天讀取 OneDrive 幾次是合理的用途;若要用於無人值守的正式環境流程,則值得先徹底測試再依賴它。

結語

在 Ubuntu 上掛載 OneDrive,讓無頭或桌面版 Linux 主機獲得與 NetDrive 在 Windows 與 macOS 上相同的掛載點存取能力,其安裝程式來自 GitHub 而非 apt。若想了解在測試更完整的平台上使用同一供應商,請參見 Mount OneDrive on Windows;若想了解 Linux 版本上的另一種連線類型,請參見 Mount Google Drive on Linux;若想了解更全面的 Linux 概況,請參見 NetDrive on Ubuntu Linux

— Alex, NetDrive