绕过FAT32 4GB文件大小限制
我最近买了一个32GB的U盘,格式化为FAT32。我把它插到电脑上,试图复制一部电影,但是文件超过了4GB,由于FAT32的4GB文件大小限制,它不允许我复制文件。
我想知道是否有办法让我的U盘格式化,这样我的U盘就可以有大于4GB的文件,并且可以在我的PC、Mac和PS3上工作。
我最近买了一个32GB的U盘,格式化为FAT32。我把它插到电脑上,试图复制一部电影,但是文件超过了4GB,由于FAT32的4GB文件大小限制,它不允许我复制文件。
我想知道是否有办法让我的U盘格式化,这样我的U盘就可以有大于4GB的文件,并且可以在我的PC、Mac和PS3上工作。
在FAT文件系统中,您不能存储大于4GB的文件。4GB这个关卡是FAT的一个硬性限制:文件系统使用32位字段来存储文件大小,以字节为单位,2^32字节=4GiB(实际上,真正的限制是4GiB减去一个字节,或者说4 294 967 295字节,因为你可以有零长度的文件)。exFAT通过使用64位字段存储文件大小解决了这个问题,但这并不能真正帮助你,因为它需要重新格式化分区。例如,在Linux上,你可以做类似于:
$ truncate -s 6G my6gbfile
$ split --bytes=2GB --numeric-suffixes my6gbfile my6gbfile.part
$ ls
my6gbfile my6gbfile.part00 my6gbfile.part01
my6gbfile.part02 my6gbfile.part03
$
这里,我用truncate
创建了一个6GiB大小的稀疏文件。(用你自己的文件代替就可以了。)然后,我把它们分成大约2GB大小的段,最后一个段比较小,但在我能想到的任何情况下都不会有问题。你也可以用--bytes=2GB
来代替--number=4
,如果你想把文件拆成四个大小相等的块,那么每个块的大小是1 610 610 612 736字节,即约1.6GiB。
要合并它们,只需使用cat
(concat
enate):
$ cat my6gbfile.part* > my6gbfile.recombined
确认二者完全相同:
$ md5sum --binary my6gbfile my6gbfile.recombined
58cf638a733f919007b4287cf5396d0c *my6gbfile
58cf638a733f919007b4287cf5396d0c *my6gbfile.recombined
$
这可以在任何最大文件大小限制下使用。
**许多文件存档程序也支持将文件分割成多部分存档文件;早些时候,这用于将大的存档装到软盘上,但现在它也可以用来克服最大文件大小的限制。文件存档器通常也支持 “存储 "或 "无压缩 "模式,如果你知道文件的内容不能被进一步无损压缩,就可以使用这种模式,就像已经压缩过的档案、电影、音乐等的情况一样;当使用这种模式时,压缩后的文件只是作为一个容器,给你提供了文件分割的能力,而实际的数据只需复制到存档文件中,节省了处理时间。
不幸的是,没有办法将4GB的文件复制到FAT32文件系统中。而快速谷歌说你的PS3只能识别FAT32文件系统。也许在移动它们之前把它们切成碎片,或者压缩它们。
延伸到Michael的想法,许多压缩工具/格式支持 “存储 "模式,实际上不做任何压缩。大多数相同的实用程序也支持将文件拆分成多个存档。将这两者结合起来,你可以拆分一个文件,而不需要浪费大量的时间来压缩它,尤其是当它是不可压缩的数据时。我自己也用过这种技术来克服你所遇到的确切问题。对于非技术性用户来说,它也比较简单。(不是每个人都知道如何处理cat
文件,但几乎每个人都能打开一个zip文件。)它也很明显地表明这是一个多部分的文件,因为文件是这样格式化的。松散的文件可能看起来不像多部分文件,尤其是当它们不知怎么丢失了文件名的时候。
当然,如果你真的想能在独立的文件上工作,这就不太奏效了。如果你没有任何 "划痕空间 "来写最终文件,这可能会很重要。在这种情况下,你应该直接拆分文件。
以下是Linux上使用zip拆分文件的一个例子:
zip -0 -s 3g out.zip foobar
# "-0" sets the compression level to 0, or store
# "-s 3g" sets the split size to 3 GB
# Add "-r" if "foobar" is a directory
# The output will be "out.zip", and "out.z01", "out.z02", and so on...
如果你更喜欢GUI,我的方法是7-Zip。
另一个没有说明的选择是使用分区。一个USB闪存盘最常被操作系统当作硬盘来处理。调整FAT32分区的大小,并做一个足够大的exFAT(或其他支持文件系统)分区,以容纳文件。
如果你曾经需要在U盘上原地访问大文件,这可能是最好的解决方案。如果你需要做的只是传输文件,并且不介意将其复制到硬盘上使用,那么分割的解决方案可能会更好。
如果你的USB驱动器被设置为 “超级软盘",这将无法工作,但这种情况越来越少见。你可以通过使用fdisk或gparted等分割工具将 "超级软盘 "转换为硬盘格式。但是,这可能需要将文件复制下来,转换,再复制回来,然后让驱动器重新启动。
你有试过HFS+吗?它是Mac上使用的文件系统。不要笑。它似乎可以在Xbox上工作,所以值得一试。 Get Past The 4GB File Limit On An External Hard Drive For The Xbox360
它可能会被实现,因为它也被用于(一些)广泛流行的iPod上,所以即使是M$ Xbox360似乎也可以读取它。如果在PC上使用适当的软件,IF在PS3上也可以使用,那么就可以得到一个通用的解决方案。
如果这一点还没有说过/发现的话—-使用Filezilla将大文件FTP到外部硬盘,即使硬盘是Fat32,也是可以的。
这个方法对我来说很管用
1.如果是iso或者压缩文件,你只需要复制粘贴在里面就可以了(我的意思是,你的iso文件大小为5Gb,当你挂载的时候,里面有6个文件,你只需要复制里面的6个文件,而不是iso文件)
如果是rar,解压后再复制
2.这个方法的规则,里面的每个文件都在4gb以下
1.如果是4gb以上,但不是iso文件,就把它压缩成一部分。如果是4GB以上的文件,但不是iso文件,也不是压缩后的文件,就把它压缩成一部分。这个方法的规则:每一个部分低于4GB
3.将Fat32系统转换为Ntfs
你可以使用FFMPEG将文件分割成可以播放的部分,而不会丢失数据。
例如:8GB的视频是1小时,所以我会将视频分割成3个(可以是2个,为了安全起见,使用3个);所以我会使用
ffmpeg -i original-video.mp4 -ss 00:00:00 -t 00:20:00 -codec copy Part01.mp4
ffmpeg -i original-video.mp4 -ss 00:20:00 -t 00:20:00 -codec copy Part02.mp4
ffmpeg -i original-video.mp4 -ss 00:40:00 -t 00:20:00 -codec copy Part03.mp4
ffmpeg命令。-i : 输入文件 -ss : 开始时间 -t : 长度 -codec : 要使用的编解码器 copy : 1:1拷贝的源文件
这里,你仍然可以在PS3上使用,在电脑上你可以把mp4和ffmpeg合并成一个文件
我发现,使用Adobe Bridge(如果你可以使用)可以绕过我们服务器上的4GB限制。这可以通过 “拖放 "从操作系统的启动器中 "拖放 "到Bridge客户端窗口来完成。在我工作的地方,这对大的(15GB以上)视频文件很适用。
FAT32对每个文件的列出方式有一个硬限制(32位字段为文件大小)。但是,绕过这个限制的应用程序会使用更多的字段。理论上,这可以绕过硬限制,但需要将下一个字段紧接在第一个字段之后,并将第一个字段的末尾和下一个字段的开头连接起来,好像它是文件的一部分一样(它读取该末尾扇区,并从第二个字段中获得另一个文件位域信息),这通常由PC操作系统处理,但并不总是如此。
还有一些程序将600MB到2GB的文件分块移动,并使用标志位,然后使用多个位域来分块,虽然都被看成是一个文件,但在adobe软件中就是这样,尤其是视频文件。它对文件进行分段,并为每段视频/音频创建一个位场,由操作系统作为一个文件读取。这些文件只是一个简单的封装文件,是一个包裹着一组图像的文件夹,或者说是快速缓存到内存中进行播放的样本。DVD标准的VOB是另一个很好的例子,说明了这一点的来源和原因。它被切割成大块的快速缓存文件,用于在DVD播放机上播放。他们使用旧的UDF1或joliet格式,它借用了HFS,但主要是使用FAT能力的列表。文件大小的限制大概是2GB,主要是为了DVD播放器机顶盒的缓存速度。大多数情况下都是在这个限制的1/10到1/5之间,而且复用的音频和视频大块缓存在一起的速度非常快,用于播放。
这个问题的答案并不复杂,但也不是一刀切。针对具体问题,用一个分割器程序;WinRar、7zip都很不错,而且有gui。答案很简单,效果很好。操作系统(操作系统)会设置文件使用多字段,多块,但合并后会被看成一个文件。对于很多压缩后的视频文件(几乎所有的格式都是通过这样或那样的算法压缩后的格式),FAT的读取速度足够快,可以在大多数智能电视上播放,或者是最小的操作系统主机系统(PS34、XBOX等)。其他文件,如ISO等,除非是DVD格式的视频,否则就没有这样的能力,毕竟DVD是一种大量缓存的格式。对于游戏的ISO,可以检查一下ntfs,以及其他一些你的电脑可以建立在U盘上的格式,然后在没有拆分动作的情况下尝试一下。
正如OP说的 “对于PS3来说,答案只能和FAT32有关,因为PS3只有FAT32。对于Linux用户来说,答案可以在EX4分区格式化中找到,当然也可以用Windoze的NTFS。通过Samba将文件从EX4移动到NTFS很简单。如果移动一个文件需要 "跳槽 "的话,你真的应该考虑一下 "我的分区格式化得当吗?"来处理我经常需要处理的文件?话虽如此,但如果身边有多台电脑可以处理你所需要的东西,也是一件好事。(这句话来自于刚刚用FAT32格式化了一个USB 32GB加密狗的人,10分钟后才发现我需要在上面存储一个15GB的.img文件,不得不把所有的东西都搬走,改变分区格式,然后把所有的东西都搬回上面)。