我的电脑上有两个硬盘,其中一个/dev/sda
安装了 Ubuntu,另一个/dev/sdb
仅用于存储。
我将运行 Samba 来共享空间。我尝试格式化/dev/sdb
没有分区的,这似乎对我的目的很有帮助。但我还想知道我是否应该为整个创建至少一个主分区/dev/sdb
并使用/dev/sdb1
。
有人知道性能/稳定性是否存在差异吗?
答案1
从技术上讲,您可以在磁盘设备本身上创建文件系统(例如,没有编号的 /dev/sdb),因为它只是一个块设备。如果对磁盘进行分区,那么“唯一”的区别是,您将拥有多个块设备及其元数据的位置。但我不建议在磁盘设备上创建文件系统,因为大多数工具都希望文件系统位于分区上,而如果您在 /dev/sdb 上创建文件系统,设备上没有任何东西可以保存有关文件系统的元数据,因为没有分区表,通常其中包含文件系统类型。这使得工具几乎不可能看到文件系统,这有点冒险。另外:一两年后,您还记得您在上面放置了什么类型的文件系统吗?
您不需要对外部 USB 硬盘进行分区(和格式化),因为它们交付时通常已经格式化。
答案2
Samba(或任何其他处理文件的工具)不应该关心共享目录是否属于分区上的文件系统、直接在设备上还是在远程计算机上;或者是否存在于磁盘或内存中的常规文件中;或者即使它因目录中某处的挂载点而跨越多个文件系统。
(注意:一般来说,一些工具可能会被设置为避免下降到另一个文件系统,但这与您的问题无关。)
规则是:如果您能够以正确的权限挂载文件系统,那么 Samba 应该能够使用它。操作系统的工作是关注底层如何工作,而不是 Samba。
性能/稳定性有任何差异吗?
就你的情况而言,我预计不会有什么不同,因为直接使用文件系统/dev/sdb
没什么特别的。事实上,这将绕过一个抽象层,因此理论上你甚至可以提高性能,但我猜这种提升可以忽略不计。
我现在能想到的缺点有:
那些希望在设备上有分区表的实体未来可能会遇到问题。Samba 绝对不是这些实体之一。您和其他管理员(如果有的话)才是。两年后,您的无分区设置可能会让某些人感到“WTF?”。
如果您需要做我们首先要分区的事情,那么将来就会遇到麻烦:从逻辑上将一个块设备拆分成几个。当您决定需要两个分区时,缩小现有分区并为另一个分区腾出空间将相当容易……如果存在现有分区的话!无分区设置将需要更多工作、更多知识和洞察力,并且会给您更多机会搞砸它。
现在想象一下将上述两个结合起来。考虑到这个形象,我建议你采用它,/dev/sdb1
因为这是最不令人惊讶的事情。