文件系统是否兼容所有操作系统?


48

我定期使用Linux和Mac OS X,有时必须使用Windows。我需要在所有三个驱动器上使用闪存驱动器,并且需要一个可以在所有驱动器上正常工作的文件系统。ext在Mac或Windows上均不起作用,HFS +在Windows(或Linux上)上不起作用,NTFS在Mac上是只读的,而FAT在所有操作系统上都很烂。是否有一个在所有操作系统上都能正常运行的文件系统?我希望它可以在没有驱动程序或没有其他安装的情况下工作,因此可以在任何计算机上使用。


2
答案是:跨平台文件系统
Marco

@MarcoI'd like it to work without drivers or additional installations, so it can be used on any computer.
tkbx 2012年

1
如果您想要大于4GiB的文件,则只有一种选择,即UDF。
Marco

@Marco我在GParted中看不到该如何创建UDF分区?
tkbx

1
mkudffs起包udftools
Marco

Answers:


31

UDF是候选人。它可以在Linux> = 2.6.31,Windows> = Vista,MacOS> = 9以及许多BSD上即时使用。

注意: UDF具有不同的版本,并非所有平台都同样支持该版本,请参见Wikipedia-Compatibility

可以使用mkudffs软件包中的工具在Linux上创建UDF udftools


等一下,Vista和更高版本会在闪存或常规硬盘上识别UDF吗?上次尝试时,我以为XP认为它仅用于光学介质。那是好消息。
psusi

我没有要测试的窗口,但我认为它对两者都适用。如果操作系统包含用于读取UDF的驱动程序,那么为什么不将其用于特定的存储后端技术是什么原因?如果普通磁盘是闪存驱动器,会发生什么?好吧,我想在那种情况下它有时会起作用。
Marco

1
我假设相同的东西,但是上次尝试时,Microsoft愚蠢地拒绝在硬盘/闪存驱动器上识别它,即使它们可以在cdrom上也是如此。
psusi 2012年

1
@Marco恐怕对于Windows而言,不能保证“具有fs驱动程序” =>“将在任何介质上工作”的含义。为什么这是另一个问题,但是我只是不认为这是理所当然的。它将期望它能用于DVD-RAM。
peterph

6
自2006年9月以来,由于CVE-2006-4145内核已禁用大于1Gb的写入范围。为了写入大于1Gb的文件,应更新UDF驱动程序以为文件写入更多数据区。直到现在(2015年)还没有发生过,因此多年来,Linux UDF甚至比FAT32还要糟糕。
Zart 2015年

15

不用麻烦,使用FAT32。没有其他兼容的可能性。从2.6.xy版本开始的Linux不再存在NTFS问题,但是Mac OS确实存在问题……也许您可以在闪存中创建更多分区,但这实际上不是一个很好的解决方案。

其他解决方案:尝试想象您有4GB闪存。将其拆分为2个分区。1)带有免费软件的FAT32便携式应用程序可以访问所有其他FS类型。2)通用分区,可以是您想要的任何内容-NTFS,ReiserFS(如果需要真正的安全性和加密)或其他任何东西。多亏了闪存的第一个分区,由于程序已存储在闪存的FAT32分区中,因此您可以轻松地从任何操作系统读取/写入数据。

更好的解决方案:忘记使用闪存驱动器。通过网络使用Dropbox或其他工具。它们是在计算机之间共享文件的最简单方法之一。

编辑:谢谢您的纠正:我在这里写评论之一:“最大大小取决于所选的群集大小。对于FAT32,群集大小从512B到4KB,限制实际上是从2TB到16TB(也在Wikipage上提到)。 ” 是的,请原谅我的错误。

谢谢彼得


1
不,那不是事实。FAT32仅将最大文件大小限制为4GB,但是我已经看到FAT32分区的大小超过200GB。因此,FAT32的最大大小为每个分区512GB。看这里:en.wikipedia.org/wiki/File_Allocation_Table
MIrra

1
@MIrra但是我的640GB硬盘是FAT32 ...
tkbx

3
@MIrra的最大大小取决于所选群集的大小。对于FAT32,集群大小从512B到4KB,限制实际上是从2TB到16TB(也在Wikipage上提到)。
peterph

1
具有此技能水平的任何人都永远不必接触任何不受信任的第三方存储(例如Dropbox)。只需在您的服务器上使用sshfs即可,它应该可以立即使用并完成。是的,有许多Windows的SSHFS客户端,具有正常的挂载功能。
Evi1M4chine 2015年

1
是的,你是对的。Dropbox不再是安全的解决方案,因为我们知道更好的解决方案可能是例如在您自己的服务器上安装了owncloud,或者像Evi1m4chine所说的那样使用sshfs客户端。
MIrra

11

由于您已将其切到OS X和Windows支持的文件系统中,所以恐怕最不常见的是FAT32。如果您可以放宽要求并使用FUSE接受,则exFAT可能是一个选择-它受专利保护,因此直到2029年或直到Microsoft按免版税方式授予专利之前(以先发生者为准),它才可以进入内核。


5
现在,我只是想知道为什么苹果和微软不能摆脱他们的专有技术并支持ext。
tkbx

@tkbx这对他们来说意味着更多的工作(从头开始获得这样的代码使其达到他们的标准),我猜并没有多少用户在抱怨(并且“很多”的意思是“可能引起不良宣传的大公司用户”) 。那些抱怨的人通常决定使用某种开源解决方案作为附件(也就是说,不需要任何其他软件就可以使其工作)。
peterph

8
另外,我们希望2029
Windows。– tkbx

5

我建议exFAT。原因如下:

  • 它可以在RW中工作(与NTFS不同,它不同于Mac OSX上的只读支持),自Windows XP以来它就包含在Windows中,自Mac OS X 10.6起(雪豹)就包含在Mac OSX中,并且afaik所有的GNU / Linux发行版都包括将其存储在默认存储库中。
    截至2017年,甚至Android设备,iOS设备(iPhone和iPad)以及一些智能电视都支持它。
  • 它不支持文件的权限和所有权(与ext2 / 3/4,NTFS和HFS +不同),这是一件好事,因为它们在您经常连接到多台不同计算机的闪存驱动器上会很烦人。
  • 它支持大磁盘和大文件系统而不会浪费空间,并且支持大于4GB的文件(与FAT32不同)。它支持文件和目录名称中的几乎所有Unicode字符(与FAT32不同)
  • 它足够简单,可以快速(不同于NTFS)和可靠(不同于FAT32)。
  • 借助SDXC卡,exFAT成为存储容量超过32 GB的SD和micro SD卡的标准,因此可以期望在最新的相机,便携式摄像机,智能手机和游戏机中都支持它。因此,即使您不认为不需要它,也可能已经有一个或多个设备正在使用它或已准备就绪。

不幸的是,exFAT的专利禁止将其包含在主线Linux内核中,因此您需要手动安装exFAT的实现,以在系统中添加对其的支持。无论如何,一旦您安装了它,系统将能够使用常规机制来安装或卸载它。

大多数发行版都提供安装FUSE实现的程序包,该实现正常且完美无缺。我将它用于闪存驱动器,SD卡和外部USB磁盘,对此我感到满意。

我希望FUSE文件系统比本机文件系统慢,但瓶颈通常在硬件中,而不是在文件系统中(通常闪存驱动器本身比文件系统驱动器慢),因此对于“正常”使用它根本不是问题。

要在Ubuntu和Debian上使用exFAT,您只需要安装exfat-fuseexfat-utils软件包:

sudo apt-get install exfat-fuse exfat-utils

1
macOS的exfat驱动程序没有Windows上的全功能,在Mac上,该驱动器通常设置了脏标志,因此,下次插入时可能需要等待数小时(在多TB驱动器上)因为fsck_exfat必须完成检查。exfat的linux驱动程序是用户级的,通常会导致较高的CPU。有一个内核模式的exfat linux驱动程序,但这不是官方的,可能有问题。
ccpizza

的确,exfat是专有的(但是最近Microsoft似乎愿意解决这个问题),当前的Linux和MacOS实现都有局限性,但是恕我直言,它仍然是实现互操作性的最佳现代文件系统。
盖洛斯

1
同意,鉴于目前缺乏更好的替代exfat,这目前最低的公分母,即使在android设备上也可以使用(使用OTG电缆,您可以连接格式化为exfat的闪存和HDD驱动器)。它缺乏符号链接和权限支持,与NFS不兼容,但可以用于数据存储。在Mac上,设置脏位可能会有问题;我在这里描述了一种解决方法:superuser.com/a/1491743/65975
ccpizza
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.