Linux + OceanAudio でリモートのフォルダを扱うときは CIFS (Samba)を使うほうがいい

さて、これも自分向けメモではあるがきっと数カ月後には忘れているだろうから記録する。

状況

どんな状況かといいうと LM22.1 (Ubuntu 24.04) の Cinnamon デスクトップでリモートの CIFS (Windowsのファイル共有)フォルダをマウントすると gvfs でマウントされる。最近のデスクトップでは同じようなものも多いと思う。

gvfs でマウントすると CIFS でマウントした場合とはパスが異なる。これが原因で gvfs 経由のファイルアクセスには失敗することがある。具体的には

gvfs の例
/run/user/1000/gvfs/smb-share:server=192.168.1.xx,share=datafolder

cifs の例
/mnt/shared/datafolder

こんな感じで “,” や “:” などが意図しない場所に存在するために gvfs を考慮していないアプリだと上手く動作しないことがあるらしい。

要するに fopen() なんかに gvfs のパスをそのまま渡しても単に失敗するのだと推測される。

そんな場合は、素直に mount -t cifs でマウントすればいい。

$ sudo mount -t cifs -o uid=$(id -u),gid=$(id -g),file_mode=0777,dir_mode=0777,username=USER //SERVERl/PATH /mnt/MOUNT

コマンドの以下の部分は、適宜環境に合わせる必要がある

USER: リモートの共有フォルダにアクセスする際のユーザー名

SERVE: リモートの共有フォルダのサーバーアドレス

PATH: 共有フォルダのパス

MOUNT: マウントしたいフォルダ名

ちょっと長いのでスクリプトにしておいたほうがいいと思う。

Views: 0