FAT broken in 2.6.7-bk15
Quoted 22 lines
Quoted 6 lines
Ok after some further research I figured this out. My last working version of the Linux Kernel was 2.6.7 which worked with my rescue system. I now applied the bk* patches upwards to check which one caused the issue and I figured that this happened between bk3 to bk4 (so the problem occoured with the bk4 patch). The diskimage was created with mtools 3.9.9 and worked perfectly before.
Ah, my fault. I changed the handling of "codepage" options, but it wasn't mentioned on changelog at all. (Sorry, I didn't notice this changes.)
Now, the codepage option recognizes only real NLS codepage module. (It uses
FAT_DEFAULT_CODEPAGE, notNLS_DEFAULT. AndFAT_DEFAULT_CODEPAGEonly recognizes the numbers.)Previously, it recognized/loaded all NLS modules via
CONFIG_NLS_DEFAULT, if it can't load the nls_cp437.ko or specified codepage.But this is seriously wrong. For example, if fatfs using the nls_utf8.ko for codepage, it will store the wrong 8.3-alias to disk. (At least, windows can't read this. And several peoples reported this problem.)
Quoted 4 lines
Anyway, could you please check FAT_DEFAULT_CODE/FAT_DEFAULT_IOCHARSET and
NLS_xxxin your .config.Yes, this should be done automatically by config system. However...
Yeah here the .config snipplet. But I still wonder how this influences mounting an msdos or vfat partition. Unfortunately I am no expert in FAT related stuff but I assume that textual stuff stored in a filesystem shouldn't affect mounting and unmounting. The only thing NLS changes in a filesystem is special charakters for filenames but it doesn't change the technical structure of the FS itself so in worst case I only get some strange characters shown in filenames.
#
# DOS/FAT/NT Filesystems
#CONFIG_FAT_FS=mCONFIG_MSDOS_FS=mCONFIG_VFAT_FS=mCONFIG_FAT_DEFAULT_CODEPAGE=437CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"CONFIG_NTFS_FS=m
# CONFIG_NTFS_DEBUG is not setCONFIG_NTFS_RW=y
#
# Native Language Support
#CONFIG_NLS=yCONFIG_NLS_DEFAULT="iso8859-15"
# CONFIG_NLS_CODEPAGE_437 is not set
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not setCONFIG_NLS_CODEPAGE_850=m
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
# CONFIG_NLS_ASCII is not set
# CONFIG_NLS_ISO8859_1 is not set
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not setCONFIG_NLS_ISO8859_15=m
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
# CONFIG_NLS_UTF8 is not set
Quoted 2 lines · Ali Akcaagac
Yeah here the .config snipplet. But I still wonder how this influences mounting an msdos or vfat partition. Unfortunately I am no expert in FAT related stuff but I assume that textual stuff stored in a filesystem shouldn't affect mounting and unmounting. The only thing NLS changes in a filesystem is special charakters for filenames but it doesn't change the technical structure of the FS itself so in worst case I only get some strange characters shown in filenames.
Do you have both nls_cp437 and nls_iso8859_1 modules loaded?
Jesse
Signature · 1 line
Jesse Stockall <[email protected]>
Quoted 4 lines · Ali Akcaagac
The only thing NLS changes in a filesystem is special charakters for filenames but it doesn't change the technical structure of the FS itself so in worst case I only get some strange characters shown in filenames.
No, it's very unuseful. Probably it can't lookup, and it has possible of filesystem corruption if you write.
If you want to do it, just read/write the partition directly.
Quoted 2 lines
CONFIG_FAT_DEFAULT_CODEPAGE=437CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
You configured these, so fatfs will try to use it.
Quoted 4 lines
#
CONFIG_NLS_CODEPAGE_437is not setCONFIG_NLS_CODEPAGE_850=m
#CONFIG_NLS_ISO8859_1is not setCONFIG_NLS_ISO8859_15=m
But you didn't install these. So fatfs couldn't do what you specified, then fatfs logged it and returns error.
Looks like you want to the following config.
CONFIG_FAT_DEFAULT_CODEPAGE=850CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-15"
Signature · 1 line
OGAWA Hirofumi <[email protected]>