本文為您介紹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編碼。