System plików FAT i Linux - FAT filesystem and Linux

Linux ma kilka systemów plików sterowniki do File Allocation Table (FAT) format systemu plików. Są one powszechnie znane pod nazwami używanymi w mountpoleceniu do wywoływania określonych sterowników w jądrze: msdos , vfat i umsdos .

Historia i wsparcie

Większość głównych dystrybucji Linuksa, w tym RedHat, SuSE i Debian, nie używa umsdos, aby umożliwić instalację Linuksa na woluminie dysku FAT. Jednak kilka dystrybucji to robi. Należą do nich takie dystrybucje, jak Phat Linux, który instaluje się w C:\PHATsystemie DOS przez rozpakowanie pliku ZIP i uruchamia się przez uruchomienie skryptu COMMAND.COM o nazwie LINUX.BATi ZipSlack .

Projekt UMSDOS został zapoczątkowany w 1992 roku przez Jacquesa Gelinasa i udostępniony w sieci w styczniu 1994 roku jako łatka. Został włączony do standardowej dystrybucji począwszy od jądra 1.1.36. UMSDOS został usunięty z jądra Linux 2.6.11 z powodu braku konserwacji. UVFAT, rozszerzenie UMSDOS do używania struktur danych Windows dla długich nazw plików zamiast własnych, zostało przerwane przed wydaniem. Powinny działać w jądrach 2.4.x.

Wcześniejsze dystrybucje Linuksa, które wykorzystywały UMSDOS, to MuLinux , Monkey Linux i Winlinux 2000.

Porównanie funkcji

Wszystkie sterowniki systemu plików Linux obsługują wszystkie trzy typy FAT, a mianowicie FAT12 , FAT16 i FAT32 . Różnią się między innymi zapewnieniem obsługi długich nazw plików , poza strukturą nazw plików 8.3 oryginalnego formatu systemu plików FAT, oraz zapewnieniem uniksowej semantyki plików, która nie istnieje jako standard w formacie systemu plików FAT, na przykład uprawnień do plików . Sterowniki systemu plików wzajemnie się wykluczają. W danym momencie do zamontowania dowolnego woluminu dysku można użyć tylko jednego. Tak więc wybór spośród nich zależy od tego, jakie długie nazwy plików i semantyki uniksowej obsługują oraz jaki użytek chce się zrobić z woluminu dyskowego.

msdos

Sterownik systemu plików msdos nie zapewnia dodatkowej semantyki plików uniksowych ani obsługi długich nazw plików. Jeśli system plików dysku FAT jest zamontowany przy użyciu tego sterownika, widoczne będą tylko nazwy plików w wersji 8.3, żadne długie nazwy plików nie będą dostępne, ani żadne struktury danych długich nazw plików na woluminie dysku nie będą utrzymywane. Sterownik systemu plików vfat zapewnia obsługę długich nazw plików przy użyciu tych samych struktur danych dyskowych, których system Microsoft Windows używa do obsługi długich nazw plików VFAT na woluminach w formacie FAT, ale nie obsługuje żadnej dodatkowej semantyki plików uniksowych. Sterownik systemu plików umsdos zapewnia obsługę długich nazw plików i dodatkową semantykę plików uniksowych. Robi to jednak za pomocą struktur danych na dysku, które nie są rozpoznawane przez żadne sterowniki systemu plików dla systemów operacyjnych innych niż Linux.

umsdos

Kluczową zaletą umsdos spośród trzech jest to, że zapewnia pełną semantykę plików Uniksa. Dlatego może być używany w sytuacjach, w których pożądane jest zainstalowanie Linuksa i uruchomienie go z woluminu dysku FAT, który wymaga dostępności takiej semantyki. Jednak Linux zainstalowany i uruchomiony z takiego woluminu dyskowego jest wolniejszy niż Linux zainstalowany i uruchomiony z woluminu dyskowego sformatowanego na przykład w formacie systemu plików ext2 . Co więcej, o ile program narzędziowy nie jest regularnie uruchamiany za każdym razem, gdy ktoś przełącza się z systemu Windows na system Linux, pewne zmiany wprowadzone w plikach i katalogach na dysku przez system Windows spowodują komunikaty o błędach o niedostępnych plikach w systemie Linux.

vfat

vfat , chociaż brakuje mu pełnej semantyki plików Uniksa i możliwości zainstalowania i uruchomienia Linuksa z woluminu dysku FAT, nie ma wspomnianych wcześniej wad umsdos, jeśli chodzi o proste udostępnianie danych na woluminie dysku FAT między Linuksem a innymi systemami operacyjnymi systemy takie jak Windows. Jego struktury danych są takie same, jak te używane przez system Windows dla długich nazw plików VFAT i nie wymaga uruchamiania narzędzia do synchronizacji, aby zapobiec rozłączeniu struktur danych systemu Windows i Linux. Z tego powodu w większości sytuacji jest to najbardziej odpowiedni ze sterowników systemu plików FAT systemu Linux.

Sterownik FSDrive Długie nazwy plików Semantyka plików uniksowych Komentarz
msdos Nie Nie Tylko nazwy plików 8.3
vfat TAk Nie Używa tych samych struktur danych, których używa system Windows
umsdos TAk TAk Może obsługiwać Linuksa; może wymagać konserwacji podczas przełączania systemu operacyjnego

Cechy wspólne

Jak wspomniano wcześniej, wszystkie sterowniki systemu plików Linux obsługują wszystkie trzy rozmiary tabeli alokacji plików: 12-bitową, 16-bitową i 32-bitową. Inne wspólne cechy, które obsługują, to różne opcje montowania w systemie Linux (określone za pomocą -oopcji mountpolecenia):

uid oraz gid
Te dwie opcje mówią sterownikowi systemu plików, aby ustawić (domyślnie, w przypadku umsdos ) identyfikator użytkownika właściciela i identyfikator grupy na pojedynczą, określoną wartość dla wszystkich plików w woluminie. Oba identyfikatory są podane jako wartości liczbowe (jakie znajdują się w /etc/passwdpliku). Na przykład, aby określić sterownikowi systemu plików vfat , że wszystkie pliki i katalogi mają mieć identyfikator właściciela 745 i identyfikator grupy 15, mountpolecenie zostanie wywołane jako . Sterowniki systemu plików Linux nie obsługują obecnie haseł do plików/katalogów na woluminach FAT12/FAT16/FAT32 i uprawnień dostępu wielu użytkowników do świata/grupy/właściciela dla praw odczytu/zapisu/usuwania/wykonywania na woluminach FAT12/FAT16, jak zaimplementowano w różnych systemy operacyjne z rodziny Digital Research, w tym DR-DOS , PalmDOS , Novell DOS , OpenDOS , FlexOS , Concurrent DOS , Multiuser DOS , System Manager oraz REAL/32 .mount -t vfat -o uid=745,gid=15
umask
Ta opcja ustawia maskę umask tak, aby była stosowana globalnie do wszystkich plików w woluminie. Na przykład, aby określić sterownikowi systemu plików vfat , że żaden dostęp „grupowy” lub „inny” nie ma być dozwolony, mountpolecenie zostanie wywołane jako .mount -t vfat -o umask=077
conv
Ta opcja określa semantykę konwersji zawartości pliku . Możliwe jest, że sterowniki systemu plików konwertują konwencje nowego wiersza w plikach, między zakończeniem LF a zakończeniem CRLF, w locie, podczas odczytu i zapisu plików. Domyślnie ta konwersja jest całkowicie wyłączona. Sterowniki systemu plików mogą wykonać konwersję dla niektórych plików, próbując automatycznie wykryć, które pliki mają zostać przekonwertowane na podstawie części rozszerzenia nazwy pliku lub globalnie dla wszystkich plików. Te trzy poziomy konwersji są określone odpowiednio jako conv=b(dla "binarny"), conv=a(dla "automatycznego wykrywania") i conv=t(dla "tekstu"). Dwie ostatnie opcje niosą ze sobą nieodłączne ryzyko uszkodzenia danych w plikach nietekstowych. Brak konwersji jest domyślnie.

umsdos

Struktura danych

Sterownik systemu plików umsdos FAT przechowuje wszystkie dodatkowe informacje związane z semantyką plików uniksowych w tym, co dla innego sterownika systemu plików FAT wydaje się być zwykłym plikiem w każdym katalogu i podkatalogu o nazwie --LINUX-.---.

W przypadku braku tego pliku w dowolnym katalogu, a zatem domyślnie, sterownik systemu plików umsdos zapewnia taką samą semantykę, jak sterownik systemu plików msdos dla katalogu: tylko nazwy plików 8.3 i bez dodatkowej semantyki plików uniksowych. Aby włączyć dodatkowe możliwości sterownika umsdos , konieczne jest utworzenie tego pliku w katalogu i zsynchronizowanie jego wewnętrznych danych z normalnymi danymi FAT dla wszystkich istniejących już wpisów w katalogu. Odbywa się to za pomocą narzędzia o nazwie umssync.

Jest to program narzędziowy, który jest uruchamiany w każdym katalogu na woluminie dysku za każdym razem, gdy użytkownik przełącza się z systemu Windows na system Linux, aby sterownik systemu plików umsdos uwzględniał wszelkie zmiany wprowadzone w plikach i katalogach przez system Windows do swojego prywatnego struktury danych w swoim --LINUX-.---pliku. Domyślnie umssyncnarzędzie tworzy --LINUX-.---pliki w katalogach, jeśli jeszcze nie istnieją, w wyniku czego taki plik znajduje się w każdym katalogu na woluminie dysku. Podczas przełączania między Windows a Linux takie zachowanie nie jest często uważane za pożądane. Dlatego normalnym trybem działania podczas wywoływania umssyncpo przełączeniu z systemu Windows na Linux (co zwykle odbywa się poprzez uruchomienie narzędzia w czasie rozruchu systemu Linux ze skryptu startowego) jest zastosowanie -copcji polecenia, która zapobiega tworzeniu nowych --LINUX-.---plików w katalogach, które jeszcze ich nie posiadają.

Instalowanie Linuksa na FAT

Jak wspomniano, umsdos pozwala na zainstalowanie Linuksa na woluminie dysku w formacie FAT, a następnie jego ładowanie i uruchamianie. Zaletą tego jest to, że pozwala na używanie Linuksa na komputerze, na którym DOS jest już zainstalowany, bez konieczności ponownego partycjonowania dysku twardego . W takim scenariuszu Linux nie jest ładowany bezpośrednio z rekordu rozruchowego woluminu . Zamiast tego DOS jest najpierw ładowany , a loadlin lub linld są używane do ładowania Linuksa z DOS.

Konwencja takiej instalacji jest taka, że katalog główny systemu Linux jest podkatalogiem katalogu głównego woluminu rozruchowego DOS , np C:\LINUX. . Różne katalogi najwyższego poziomu w Linuksie są więc dla DOS-a katalogami takimi jak C:\LINUX\ETC(for /etc), C:\LINUX\BIN(for /bin), C:\LINUX\LIB(for /lib) i tak dalej. Sterownik systemu plików umsdos automatycznie dołącza przed C:\LINUX\wszystkimi ścieżkami. Lokalizacja katalogu głównego systemu Linux jest przekazywana do sterownika systemu plików umsdos w pierwszej kolejności poprzez opcję loadlinpolecenia. Na przykład loadlinzostanie wywołany za pomocą wiersza poleceń, takiego jak loadlin c:\linux\boot\vmlinuz rw root=c:\linux.

Instalacja Linuksa w takim katalogu w pierwszej kolejności polega po prostu na rozpakowaniu plików z archiwum do tego katalogu i jego podkatalogów. Taka instalacja również ogólnie wymaga użycia pliku wymiany, a nie partycji wymiany dla Linuksa, jednak jest to związane z chęcią niezmieniania partycji dysku twardego i nie ma związku z samym sterownikiem systemu plików umsdos .

Dostęp do woluminów w formacie FAT bez obsługi jądra

Chociaż sterowniki systemu plików w jądrze umożliwiają dostęp do plików i katalogów na woluminach sformatowanych w systemie FAT w normalny sposób, można to również zrobić bez obsługi sterowników jądra, używając programów narzędziowych tworzących pakiet narzędzi mtools . Podobnie jak sterownik systemu plików vfat FAT, mountlo zapewnia obsługę długich nazw plików przy użyciu tych samych struktur danych dysku, których używa system Microsoft Windows.

Alternatywnie można użyć jednego ze sterowników systemu plików FUSE — FatFuse, FuseFat lub mountlo.

System plików nakładek POSIX

Współczesnym odpowiednikiem UMSDOS jest POSIX Overlay Filesystem (posixovl). Działa w FUSE.

Zobacz też

Bibliografia

Dalsza lektura