我正在尝试将6GB文件复制到USB闪存驱动器,但不会复制。
我正在尝试将6GB文件复制到USB闪存驱动器,但不会复制。
Answers:
这是由于FAT32限制。大于4GB的文件无法存储在FAT32卷上。将闪存驱动器格式化为exFAT或NTFS将解决此问题。
警告:备份您的数据。格式化将删除设备上的所有数据。
ext3
也是一种选择
如果您不想重新格式化USB驱动器或将其设为FAT32,则可以将大文件拆分为多个部分。大多数存档管理器都带有split选项,命令行中有split
,例如,针对您的情况:
split -b4294967295 /path/to/input.file /path/to/pen/drive/output.file.
请参阅man split
完整的文档。这将创建以下文件:
4,0G output.file.aa
1,6G output.file.ab
的文件大小output.file.aa
比赛正是你的FAT32格式的USB驱动器,这是最大文件大小4 Gibibyte(GIB,这是不一样的技嘉GB)减去1个字节。
感谢Gilles所做的重要补充。
您需要先合并其各个部分,然后才能再次访问该文件。在Linux系统上,您可以执行以下操作:
cat output.file.* > input.file
如果您担心这可能会错误地对文件进行排序,那么In Bash中的通配符扩展是否一定能正常进行?
Windows系统上的相应命令是:
copy /b output.file.aa+output.file.ab input.file
连同许多其他有用的GNU实用程序split
也可以安装在Windows中,请参阅Win32的GNU实用程序。
split
即使没有GiB和GB之间的区别,我也会赞成。但是我会为此派遣一名男生……
split
正是为此目的而存在的,并且接收端并不需要这样做。FAT32是USB驱动器的通用语言。
-b 4095M
会简单得多,并且可以达到与bc
命令相同的效果。在Bash中,也可以使用shell算术:$(((4<<30)-1))
。
检查了不同的方案和文件系统,以考虑替代方案
如果打算仅在Ubuntu(和其他Linux发行版)上使用驱动器,则最好使用Linux文件系统,例如ext4。这样,您可能会获得更高的读/写速度(取决于哪个进程是瓶颈),并且您将在所有权和权限方面获得更高的灵活性。
gparted
来创建ext4文件系统。Windows在linux文件系统上有问题,我认为MacOS在linux文件系统和NTFS上都有问题。因此,如果您希望读写具有“完全兼容性”,则仅保留FAT32,UDF和exFAT。
FAT32的文件大小限制为4GiB(千兆字节,基数2)。
可以dosfsck
使用软件包随附的,在Ubuntu中进行维护dosfstools
,
sudo apt-get install dosfstools
sudo dosfsck -a /dev/sdxn # least destructive option
sudo dosfsck -r /dev/sdxn # more powerful option
其中x是驱动器号,n是分区号,例如/dev/sdb1
驱动器b中的第一个分区。
UDF可能缺少修复文件系统的工具,
如何创建和使用UDF:将UDF用作USB记忆棒的FAT的后继产品
因此,假设您的USB记忆棒是/dev/sdx
:
安装套件 udftools
sudo apt-get install udftools
使用gparted
或创建一个分区表和一个分区gnome-disks
用危险擦拭目标分区的第一个兆字节dd
(仔细检查命令行!)
sudo dd if=/dev/zero of=/dev/sdx1 bs=1M count=1
运行mkudffs
,
sudo mkudffs -b 512 --media-type=hd --lvid=my-label /dev/sdx1
擦除分区的第一个兆字节以擦除先前的文件系统信息(或其他剩余数据),以防止在使用UDF格式化USB棒后将其检测为FAT。
这-b 512
是为了强制文件系统块大小等于UDF规范要求的USB记忆棒的物理块大小。如果您幸运地拥有一个具有合适块尺寸的USB记忆棒,请对其进行调整。
之后,您的USB记忆棒将可用于GNU / Linux和其他免费操作系统的读写,当然也可用于Windows的当前版本(对于过时的XP只读)和MacOS。
exFAT是另一种选择。与 FAT32和 UDF相比,它是新的,并且声称效果很好
我已经开始在Ubuntu中测试exFAT。当我有更多使用经验时,我打算编辑此答案。让我们从以下链接开始,
ExFAT是Microsoft的专有文件系统,针对
嵌入式系统,因为它是轻量级的并且更适合于具有低内存和低功耗要求的解决方案,并且可以在固件中实现。
和此命令行在 Ubuntu中安装对exFAT的[读/写]支持
sudo apt-get install exfat-utils exfat-fuse
可以使用以下命令行在Windows和MacOS 以及Linux中创建
sudo mkfs.exfat -n YOUR-LABEL /dev/sdxi
例如,其中x
是驱动器号和i
分区号/dev/sdb1
。
可以在Windows中维护。
我的第一个测试结果:
md5sum
,速度受到USB系统的限制)。因此,如果您想从Ubuntu和Windows获得完全的读/写访问权限,我建议您使用NTFS,它具有日记功能,并且经过调试和完善,是Windows的[专有]文件系统。(也可以使用exFAT。)
gparted
来创建NTFS文件系统。在MacOS中,可以使用FAT32,UDF和exFAT。
您还可以将ext4与解决方法结合使用,将Ubuntu Server与虚拟机中的SSH服务器结合使用。(我认为相同的解决方法也适用于Windows。)当您打算通过驱动器及其文件系统访问许多文件时,这可能是值得的,但对于小型USB2 Pendrive而言可能不是。
看到这个链接,
有一个类似的问题,并且不愿意重新格式化USB记忆棒,我只是使用了一个存档器。或多或少的所有现代GUI(例如File Roller,7Zip等)或CLI都允许拆分存档文件。将分割限制设置在FAT边界(大约4GB)以下,为提高速度,您可以选择较低的压缩率,甚至可以选择“存储”,即完全不压缩,瞧!
如果可以访问Windows计算机,则可以不格式化就转换USB记忆棒文件系统。您应该使用Windows命令行,如下所示:按Win + R
,键入cmd
-> OK
,在打开的窗口中输入命令convert X: /FS:ntfs
where X:
是已安装USB记忆棒的字母。不到一分钟的时间就可以准备好了。请享用。