很奇怪的FAT32文件列表问题

很奇怪的FAT32文件列表问题

我正在 NAS(有 USB 端口)上安装 FAT32 驱动器,当我ls在驱动器根目录上使用命令时遇到一个奇怪的问题:

ls: cannot access ???²é?u.g: Input/output error
ls: cannot access ?f$?â?.k: Input/output errorPuTTY
ls: cannot access ?21ï??é.ìk?: Input/output error
ls: cannot access ºq`{??ùê.?zï: Input/output error
ls: cannot access +?l`æ~2?.]9: Input/output error
ls: cannot access ??j.é: Input/output error
ls: cannot access ëégö²?è.?« Input/output error
?.¢??: Input/output error
ls: cannot access ??d?¬«ëc.?½f: Input/output error
ls: cannot access ?r??%f.o??: Input/output error
ls: cannot access b}?çb¼=u.?c·: Input/output error
}??..÷p½: Input/output error
ls: cannot access u?;e?j?.

我不知道为什么“PuTTy”被扔到第二行。这是我用来访问NAS的客户端,我运行的是最新版本,但我不明白它与命令有什么关系ls。这样持续一段时间,然后开始列出不存在的文件以及以下文件:

�?=?^Oaa�.h?=
?*ab^G^S??.?^[?
a?cw??^?*.=?$
�??a�h��.?�?
??a�?^_j!.?i?
�?a?m??^U.a^G^?
apps
??^Q??a?y.�?z

我正在运行 Debian/Lenny(现在),但在我的 NAS 上切换到 Debian 之前我也遇到了同样的问题。我不确定我之前运行的是哪个发行版,我认为这是一个自定义版本。

当我插入驱动器时,sdcsdc1出现在/dev目录中。我无法挂载sdc,但是可以成功挂载sdc1。这些是我尝试用来安装的命令:

mount /dev/sdc1 /USB
mount -t vfat /dev/sdc1 /USB
mount -o umask=0 -t vfat /dev/sdc1 /USB

# Additional
mount -t vfat -o codepage=850 /dev/sdc1 /USB
mount -t msdos -o codepage=850 /dev/sdc1 /USB
mount -t vfat -o codepage=869 /dev/sdc1 /USB
mount -t vfat -o codepage=850,iocharset=iso8859-7 /dev/sdc1 /USB
# ... and combinations of codepage 850, 869, 437 (the common ones)
# ... and combinations of utf8, iso8859-7, iso8859-1
# ... and additional flags such as umask=0, rw

如果我在命令后检查日志ls,结果如下:

$ dmesg | tail
FAT: Filesystem panic (dev sdc1)
    invalid access to FAT (entry 0x8c31db6e)
FAT: Filesystem panic (dev sdc1)
    invalid access to FAT (entry 0xee786bb9)
FAT: Filesystem panic (dev sdc1)
    invalid access to FAT (entry 0x2f16a272)
FAT: Filesystem panic (dev sdc1)
    invalid access to FAT (entry 0xa8ee938e)
FAT: Filesystem panic (dev sdc1)
    invalid access to FAT (entry 0x6df5a84f)

老实说,我的 Linux 知识并不是那么丰富——它主要局限于基本的管理任务。当然,如果我将驱动器插入 Windows (7),它就可以正常工作。

也许值得一提的最后一点是,我记得必须使用特殊工具来格式化驱动器,因为它太大,Windows 无法对其进行格式化。

编辑

仔细检查驱动器后,所有文件似乎都存在 - 那么 linux 是从哪里获取所有这些垃圾的呢? Windows 的根目录下只有几个文件和文件夹。难道是数据没有得到妥善处理?

编辑2

我的笔记本电脑上的 Ubuntu 也有同样的问题。和文件资源管理器都ls显示这些奇怪的文件列表。

答案1

这看起来像是代码页问题。在手册页中查找mount- 在各fat部分中,有一个codepage=您可以使用的设置。

还要看看iocharset=设置。 (并在网上搜索两者。)

答案2

我的猜测是文件系统已损坏或者数据可能已加密/压缩。

答案3

在 Windows 机器上,运行chkdsk /f /r - 这对我有用。fsck如果您无权访问 Windows 计算机,您可以以 root 身份运行。我丢失了所有包含奇怪文件的目录。

相关内容