FAT文件系统挂载错误处理

本文为您介绍Alibaba Cloud Linux 2和Alibaba Cloud Linux 3系统中挂载FAT文件系统报错“fat: utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!”的原因和解决方案。

问题现象

采用-o iocharset=utf8挂载参数挂载FAT文件系统时,系统内核日志中会报如下错误。

fat: utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!

原因分析

在使用-o iocharset=utf8挂载时,FAT文件系统可能出现码表相关错误。Linux内核的FAT文件系统通过-o iocharset=挂载选项指定的码表或者FAT文件系统默认NLS码表CONFIG_FAT_DEFAULT_IOCHARSET(Alibaba Cloud Linux 3中默认为ascii)来完成这种大小写转换。

当使用-o iocharset=utf8挂载选项时,会使用内核的UTF-8 NLS码表,但由于内核NLS API不支持非固定8-bit编码(例如UTF-8编码),因此该码表没有实现大小写转换功能,导致-o iocharset=utf8下FAT文件系统的大小写转换工作无法正常进行。

解决方案

在FAT挂载时使用-o utf8=1挂载选项。

以挂载/dev/vdb到/mnt目录下为例。

mount -o utf8=1,iocharset=ascii /dev/vdb /mnt
说明

Alibaba Cloud Linux系统与其他系统(例如Windows)做数据交换时避免使用UTF-8编码。