Sea*_*mus 1 filesystems samba cifs raspbian
我一直使用我的 Raspberry Pi 作为音乐文件服务器,但我对此并不满意。当前设置使用samba
我的 RPi 上的服务器以及格式为 WD Passport USB 驱动器vfat
。这是我的 Sonos 音乐系统的库:Sonos 安装驱动器,并在菜单中列出它找到的所有音乐供我选择。
大多数时候,Sonos 界面似乎可以与 RPi Samba 服务器顺利运行。然而,它在我的 MacOS 上运行得不太顺利。我使用 Mac 来维护音乐库,有两个主要的棘手问题:
一位朋友使用 NetgearNAS 作为他的 Sonos 系统的文件服务器。它工作非常可靠,并且“工件”不会出现在 Finder 中。他的 NetgearNAS 配置为使用CIFS
(且仅 CIFS)。我想在我的 RPi 上尝试 CIFS,但到目前为止我的研究只会增加我的困惑。
最后,我的问题:
SMB 和 CIFS 看似密切相关,但它们是“同一个东西”吗?如果不是,有什么区别?
一些来源将 CIFS 称为文件系统(在某种意义上ext4
,FAT32
、 等是文件系统),而其他来源则将其称为网络协议。由于 没有 CIFS 扩展名mkfs
,因此将 CIFS 称为文件系统的参考文献似乎会产生误导 - 或者我是否遗漏了某些内容?
如果CIFS只是一种网络协议,它是否仅限于特定的文件系统?即可以使用 FAT32 或 ext4 与 CIFS 吗?CIFS 使用的文件系统是否会影响其作为跨平台服务器协议的使用?
vfat是一个非常有限的文件系统,它完全不适合任何网络使用和任何多用户环境(它是古老的 MS-DOS 文件系统)。简而言之,除了 USB 拇指驱动器外,不要将 VFAT 用于任何其他设备,以获得最大兼容性。
基本上,您的所有问题都来自这样一个事实:MacOS 尝试通过 SMB/CIFS 向 VFAT 存储扩展属性、文件权限等,但 VFAT 不支持任何这些,也不支持很长的文件名或 UTF-8 文件名称或现代用户感兴趣的任何内容。
只需在 USB 驱动器上使用真正的、普通的 Linux 文件系统(ext4、xfs),一切都会好起来的。这肯定会解决文件丢失、权限错误、工件等问题。
关于其他问题:
SMB 和 CIFS 是同一事物的不同名称,即 Microsoft 网络文件系统(服务器消息块协议)。这里有些混乱,因为 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。如今,Samba 通过使用扩展属性来存储实际的 Windows ACL 来解决这个问题,但是如果底层块文件系统不支持xattr,您就会遇到问题。
归档时间: |
|
查看次数: |
3193 次 |
最近记录: |