FAT32 外部驱动器:没有剩余空间错误

FAT32 外部驱动器:没有剩余空间错误

使用 Ubuntu 14.04.1 LTS,我安装了一个用 FAT32 格式化的 1 TB USB 驱动器。

驱动器使用此命令安装(无错误):

sudo mount -t vfat /dev/sdc1 /media/jpgs/
  • 我创建一个名为“test”的文件夹
  • 我将图片复制到此文件夹中(每张图片约 5MB)
  • 复制约 20000 个文件后,系统抛出此错误: ... 设备上没有剩余空间

显然事实并非如此,因为我仍然可以创建一个新目录并将文件复制到其中......

根据这个问题:https://stackoverflow.com/questions/466521/how-many-files-can-i-put-in-a-directory,我应该能够在每个目录中放置 65,535 个文件。

我读过许多关于这个问题的问题,但找不到明确的解释和解决方案。

我已经使用不同版本的 ubuntu 和不同的驱动器对其进行了测试,但总是看到相同的错误。

当我将驱动器插入 Mac OSX 系统时没有问题。

fdisk、df、fsck 的结果:

$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sdc1             932G   63G  869G   7% /media/jpgs

$ fdisk -l
Disk /dev/sdc: 1000.2 GB, 1000202043392 bytes
255 heads, 63 sectors/track, 121600 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1      121601   976759749    b  W95 FAT32

fsck from util-linux-ng 2.17.2
dosfsck 3.0.9, 31 Jan 2010, FAT32, LFN
/dev/sdc1: 24068 files, 2059652/30516291 clusters

$ mount
/dev/sda1 on / type ext4 (rw,errors=remount-ro,acl)
proc on /proc type proc (rw,noexec,nosuid,nodev)
[...]
/dev/sdc1 on /media/jpgs type vfat (rw)

编辑:输出sudo dosfsck -v /dev/sdc1

fsck.fat 3.0.26 (2014-03-07)
fsck.fat 3.0.26 (2014-03-07)
Checking we can access the last sector of the filesystem
Boot sector contents:
System ID "BSD 4.4"
Media byte 0xf0 (5.25" or 3.5" HD floppy)
512 bytes per logical sector
32768 bytes per cluster
32 reserved sectors
First FAT starts at byte 16384 (sector 32)
2 FATs, 32 bit entries
122065408 bytes per FAT (= 238409 sectors)
Root directory start at cluster 2 (arbitrary size)
Data area starts at byte 244147200 (sector 476850)
30516291 data clusters (999957823488 bytes)
32 sectors/track, 255 heads
0 hidden sectors
1953519498 sectors total
Checking for unused clusters.
Checking free cluster summary.
/dev/sdb1: 24068 files, 2059652/30516291 clusters

答案1

注意:请记住,尽管 FAT32 下单个文件夹中的最大文件数为 65,534,但通过使用长文件名可以显著减少这一数量。

FAT32 最初是 DOS 文件系统,因此其限制源于使用 8.3 文件名(八个字符加上 3 个字符的扩展名)。

此外,媒体字节不正确。您永远不应该看到这种情况。这表明文件操作疯狂,这反过来又意味着软件混乱或硬件不稳定。您有:

System ID "BSD 4.4"
Media byte 0xf0 (5.25" or 3.5" HD floppy)

我希望看到:

System ID "mkfs.fat" if created under Ubuntu
Media byte 0xf8 (hard disk)

如果您知道如何使用 HEX 编辑器纠正这个问题,您可以这样做,但如果出现更多错误,可能会对底层数据造成危险,最好对驱动器进行映像处理(如果驱动器上有关键数据),以便可以从映像中恢复数据,然后在 Ubuntu 而不是 OSX 下重新格式化它。

答案2

您首先尝试使用此命令格式化您的 USB 驱动器

mkfs -t ext4 /dev/sdc

那也许有帮助。

确保您输入了正确的 USB 驱动器名称,它必须是 /dev/sdc。

相关内容