dlaczego zamontowany wolumin vfat rozróżnia małe i wielkie litery?

1

Mam dziwną obserwację. Podłączyłem system plików vfat w następujący sposób:

mount -t vfat -o loop vfat.vol mnt

Spodziewałem się, że wielkość liter nie będzie uwzględniana. I tak długo, jak długo długość nazwy pliku nie przekracza 8! Nie mogę utworzyć dwóch różnych plików: x1234567 i X1234567, ale mogę utworzyć x12345678 i X12345678! Jest w 100% odtwarzalny za pomocą prostej komendy echo „abc”> filename. Co tu się dzieje? Jak sprawić, by objętość tłuszczu w 100% nie uwzględniała wielkości liter?

ardabro
źródło

Odpowiedzi:

2

Dzieje się tak, ponieważ nazwy plików dłuższe niż 8 znaków nie są obsługiwane przez FAT bezpośrednio, ale przez rozszerzenie LFN . FAT nie uwzględnia wielkości liter, dlatego nie można tworzyć plików x1234567ani X1234567plików. Jednak podczas tworzenia plików o długich nazwach tworzone są krótkie nazwy plików oraz wpis LFN, który zawiera pełną nazwę.

Kiedy tworzysz pliki x12345678i X12345678, pliki te otrzymują krótkie nazwy, takie jak X12345~1i X12345~2, które są poprawne i różne nazwy FAT. Linux ma luźne podejście do sprawdzania unikatowości wpisów LFN, więc ostatecznie tworzysz dwa wpisy, które są rozróżniane tylko według wielkości liter; coś, na co Windows nie pozwoli. Jest to jednak ograniczenie (a raczej funkcja) systemu Windows, a nie systemu plików FAT.

Sidenote: Założę się, że możesz również utworzyć plik o nazwie CONlinux na woluminie FAT.

Zobacz dokumentację vfat, aby uzyskać informacje o opcjach montowania, które określają, jak linux powinien działać z nazwami plików.

Dmitrij Grigoriew
źródło
Ok, więc uważam to za błąd w sterowniku Linux. Dzięki.
ardabro