Filesystem in Userspace の略。Linux カーネル機能のひとつで、ユーザー空間(特権なし)のプログラムが独自のファイルシステムを実装してマウント可能にする仕組み。カーネル空間にドライバを書かなくて済むため、新しい / 特殊なファイルシステムを安全かつ手軽に提供できる。
仕組み
[アプリケーション] ── ls ──→ [Linux カーネル]
↓ FUSE モジュール経由
[FUSE クライアント(ユーザー空間)]
↓
[リモート / 暗号化 / 仮想ストレージ]
通常のファイルシステムはカーネル空間で動くが、FUSE は VFS 層 → FUSE モジュール → ユーザー空間プログラム の経路でリクエストを処理する。
代表的な FUSE 実装
| ツール | 用途 |
|---|---|
| rclone | Google Drive / S3 / OneDrive 等 70+ クラウドストレージ |
| sshfs | SSH 経由でリモートファイルシステムをマウント |
| ntfs-3g | NTFS 読み書き |
| encfs | 暗号化ファイルシステム |
| gocryptfs | 暗号化ファイルシステム(後継) |
| borgmount | Borg バックアップアーカイブのマウント |
| glusterfs | 分散ファイルシステム |
マウント解除
fusermount -u <mount-point> # 通常のアンマウント
fusermount -uz <mount-point> # lazy アンマウント(プロセスが掴んでいても可)
umount コマンドでも解除可能だが、fusermount の方が FUSE 固有の状態をきれいに片付ける。
--allow-other オプション
デフォルトでは FUSE マウントは マウントを実行したユーザーしか見えない。Docker コンテナや他ユーザー・systemd サービスから見えるようにするには --allow-other を付ける必要がある。/etc/fuse.conf で user_allow_other も有効化が必要:
sudo bash -c 'echo "user_allow_other" >> /etc/fuse.conf'
libfuse2 と libfuse2t64
Ubuntu 24.04 以降は libfuse2t64(time_t 64-bit 対応版)に変更されている。AppImage 形式で配布される Electron アプリ(Obsidian など)も libfuse を使うため、libfuse2 を案内する古い情報源には注意。
sudo apt install -y libfuse2t64
関連記事
- Ubuntu データ層 — rclone Drive + QNAP NAS + Obsidian Vault — シリーズ第 5 回(rclone マウント・AppImage の libfuse 依存)