CIFSとのファイルシステム互換性

CIFSとのファイルシステム互換性

私はRaspberry Piを音楽ファイルサーバーとして使用してきましたが、気に入らません。現在の設定sambaでは、私のRPiのサーバーとWD PassportでフォーマットされたUSBドライブを使用していますvfat。私のSonos音楽システム用のライブラリは次のとおりです。 Sonosはドライブをインストールし、私が選択できるようにメニューに見つけたすべての音楽をリストします。

ほとんどの場合、SonosインターフェイスはRPi Sambaサーバーとシームレスに動作しているようです。しかし、私のMacOSではうまく動作しません。私は音楽ライブラリを維持するためにMacを使用していますが、2つの主な問題があります。

  1. 音楽ライブラリから削除して追加するには、Samba設定でユーザー権限を変更する必要があります。
  2. Mac FinderアプリケーションのRPiでSambaの音楽共有を閲覧すると、多くの「欠落とアーティファクト」が表示されますが、CIFSを使用してNetjearNASでまったく同じフォルダを閲覧した場合は、下の画像を参照してください。

ここに画像の説明を入力してください。

友人は NetgearNAS を Sonos システムのファイルサーバーとして使用します。非常に安定して動作し、「アーティファクト」はFinderに表示されません。彼のNetgearNASはCIFSCIFSのみを使用するように設定されています。私のRPiでCIFSを試してみたいのですが、これまでの調査結果は混乱だけ重み付けました。

最後に、私の質問は次のとおりです。

  1. SMBとCIFSは密接に関連しているようですが、「同じもの」ですか?そうでなければ違いは何ですか?

  2. ext4一部のソースではCIFSをファイルシステム(などがファイルシステムという意味でFAT32)として参照し、他のソースはそれをネットワークプロトコルとして参照します。 CIFS拡張子がないため、mkfsCIFSをファイルシステムに呼び出す参照が誤解を招くようです。それとも何か抜けましたか?

  3. CIFSが単純なネットワークプロトコルであれば、特定のファイルシステムに制限されますか?つまり、CIFSでFAT32またはext4を使用できますか? CIFSが使用するファイルシステムがクロスプラットフォームサーバープロトコルとして使用するのに影響しますか?

答え1

脂肪組織ネットワーク使用やマルチユーザー環境にはまったく適していない非常に限られたファイルシステム(古代のMS-DOSファイルシステム)。つまり、互換性を最大にするには、USBサムドライブ以外のものと一緒にVFATを使用しないでください。

デフォルトでは、すべての問題は、MacOSがSMB / CIFSを介して拡張属性、ファイル権限などをVFATに保存しようとしますが、VFATはこれらをサポートせず、非常に長いファイル名またはUTF-8をサポートしていないという事実に由来します。ファイル名または現代のユーザーが興味を持っているもの。

USBドライブで実際の一般的なLinuxファイルシステム(ext4、xfs)を使用すると、すべてがうまくいきます。これにより、ファイルの欠落、権限エラー、アーティファクトなどの問題が確実に解決されます。

その他の質問について:

  • SMBとCIFSは同じMicrosoftネットワークファイルシステム(サーバーメッセージブロックプロトコル)。 CIFSは実際にはCIFSの最初のバージョン(SMBバージョン1.0)であり、最新バージョン(SMB v. 2.0、3.0、3.1、...)に置き換えられたため、ここには少し混乱があります。ただし、Linuxでは、何らかの理由で最初のバージョンを「smbfs」と呼び、最新バージョンを「cifs」と呼びます。とにかく、LinuxとMacOSの間に違いはなく、両方を交換することができます。

  • SMB/CIFSの例ネットワークファイルシステムとの直接的な関係はまったくありません詰まったファイルシステムこれはファイル抽象化と一般I / Oモードを提供するという点でファイルシステムですが、すべてのネットワークファイルシステム(NFS、SMB、WebDAV、AFP...)を使用してすべてのデータのファイルを共有できます。ブロックファイルシステム(FAT32、ext4、HFS+、xfs、NTFS、ZFS...)。

  • さまざまなブロックファイルシステムは、さまざまな機能(直接IO、POSIX ACL、Windows ACL、拡張属性、ファイルストリーム、「空」ファイル、ファイルバージョン管理、メタデータバージョン管理、サブボリューム、ボリュームスナップショットなど)を提供します。 。様々なネットワークファイルシステムも様々な機能を提供する。ネットワークファイルシステム機能が基本ブロックファイルシステムにマッピングされる方法は非常に多様であり、無限の混乱、苦痛、およびバグの原因である。

たとえば、Windowsから派生したCIFSはデフォルトでWindows ACLを使用しますが、残念ながら、ほとんどのUnix / LinuxファイルシステムのPOSIX ACLに1対1マッピングされません。 Sambaは拡張属性を使用して実際のWindows ACLを保存することによってこの問題を解決します。ただし、基本ブロックファイルシステムがWindows ACLをサポートしていない場合プロパティ、問題が発生します。

答え2

いくつかの質問にお答えします。

まず、CIFSはSMBプロトコルのバージョンです。たとえば、参照してください。SMB Wikiページ

2番目の質問は、ファイルシステムとネットワークプロトコルについてです。 CIFS/SMB はネットワークプロトコルです。ファイルシステムはLinuxの世界から来ています。mount他のファイルシステムと同じように(権限を想定して)共有ファイルに透過的にアクセスできます。したがって、mount.cifsこの特定のプロトコルのインストールプロセスを処理するプログラムがあります。

3番目の質問によると、ネットワークプロトコルは基本ファイルシステムとは関係ありません。これは(通常の方法で)有線でデータを転送する方法のみを指定します。データは、ハードドライブ(ファイルシステムとも呼ばれます)から直接インポートしたり、動的に作成したりできます(エクスポートしたり、フォルダにインポートしたり/procする/sysとどうなるか考えてください...)。

ただし、このプロトコルは特定のユースケースを念頭に置いて設計されています。私が知る限り、これはFATシステムです。 Linux/Unix で拡張権限を許可するように拡張が作成されました。ここでは、何が可能か、何が実装されているかについて少し疲れました(特にサーバーとクライアントの両方で共通の最大プロトコルバージョンを見つける必要があるため)。他のコンピュータの異なるソフトウェアバージョンがここで動作する可能性がありますが、わかりません。


追加の調査が必要な基本情報を提供するのではなく、あなたが提起したいくつかの質問に答えます。

あなたの「行方不明とアーティファクト」はコードページ/文字セットの問題によって引き起こされます。 ASCII以外の文字でのみ発生します。そうですか?今はどのように設定されているのか分かりません。まず、USBデバイスのファイルが正しい名前でファイルシステムに書き込まれていることを確認できますか?次に、RPiがファイルも読み取ることができることを確認します(CIFSなしで、sshまたは直接接続されたモニタ/キーボードを使用してそのファイルを読み取ることができます)。

さまざまな基本ファイルシステムはファイル名にさまざまな文字セットをサポートしているため、ファイル名を異なる方法で処理するようにSMBを構成できます。これはできるだけ多くの基本ファイルシステムをサポートする機能です(参考資料を参照man smb.conf)。エンコードが間違っていると仮定すると、これはクライアントのインストールの問題かもしれません。したがって、システムを構築し、各ステップを検証することから始めましょう。

前述のユーザー権限の問題に関しては、認証されたアクセス(ユーザー+パスワード)が必要であり、デフォルト権限を持つデフォルトユーザーを使用するようにsamba / cifsサーバーを構成してください。それ以外の場合、リポジトリは問題です。再び下から上へ:

  • USBメモリーのファイルはどのユーザー/グループに属していますか?彼らはvfat所有者なしで横になっています。したがって、Linuxカーネルはマウントオプションに従ってファイルにユーザーを適用します。
  • すべてのファイル/フォルダがこのユーザーに属していることを確認してください(再度Rpiでssh / Terminal Accessを使用)。
  • 新しく作成されたファイル(端末で)が同じ権限を受け取っていることを確認してください。そうでない場合は、インストール構成(インストールオプションuid、、、gidおよび可能であれば)umaskを使用してください。望むより。dmaskfmaskman mount
  • SMB/CIFSでファイル/フォルダを作成し、UID/GID/権限を確認します。ゲスト専用アクセスの場合は、Samba設定()の合計でcreate mask十分です。そうでない場合は、問題をさらに詳しく説明する必要があります。directory maskman smb.conf

関連情報