exFAT (Extended File Allocation Table), znany również jako FAT64, jest systemem plików stworzonym przez Microsoft na potrzeby nośników zewnętrznych. Został zawarty w następujących systemach operacyjnych: Windows Embedded CE 6.0, Windows Vista z dodatkiem Service Pack 1, Windows 7 i Windows Server 2008. Jest on bardzo popularny na pamięciach przenośnych, dla których został zaprojektowany. Jego zaletą w stosunku do FAT32, to rozmiar pojedynczego pliku wynoszący 16 eksabajtów, a także rozmiar klastra, który można zwiększyć do 32 MB.
Wraz z jego wprowadzaniem firma MS oczywiście nie udostępniła specyfikacji, ani wersji dla innych systemów, przez co trzeba było rozpracować samemu. Dzięki temu w ciągu kilkunastu miesięcy udało się zrobić działające narzędzia i sterowniki, które pozwalają na odczyt i zapis, ale formatownie póki co jest niedostępne.
Instalacja pod Ubuntu
Abyśmy mogli używać urządzenia z systemem plików exFAT, potrzebne nam będzie repozytorium: ppa:relan/exfat, oraz dwa pliki, jakie się w nim znajdują: fuse-exfat, exfat-utils. Pierwszy z nich odpowiada za odczyt i zapis na pamięci przenośnej z system plików exFAT. Drugi pakiet to zestaw narzędzi konsolowych.
Używanie
Po włożeniu pamięci do portu USB, system wykryje i zamontuje urządzenie, po czym wyświetli nam okno z zawartością.
dumpexfat
Aplikacja odpowiada za wyświetlenie informacji o systemie plików na danym urządzeniu. Oto składnia polecenia:
[bash]dumpexfat <urządzenie>[/bash]
Opcje to:
- s – podaje informacje na temat super bloków. Przydatne podczas bardzo zniszczonych systemów plików
- u – podaje informacje na temat używanych sektorów, zaczynając od 0 i oddzielając je spacjami. Przydane podczas robienia kopii zapasowych
- v – podaje wersję programu i prawa autorskie
exfatfsck / fsck.exfat
Program odpowiada za sprawdzanie systemu plików exFAT.
[bash]exfatfsck <opcje> <urządzenie>[/bash]
Opcje:
- v – podaje wersję programu i prawa autorskie
exfatlabel
Nadaje urządzeniu etykietę lub nazwę. Maksymalna długość wynosi 15 znaków.
[bash]exfatlabel <opcje> <urządzenie> <nazwa>[/bash]
Opcje:
- v – podaje wersję programu i prawa autorskie
mkexfatfs / mkfs.exfat
Program odpowiada za formatowanie urządzenia na system plików exFAT.
[bash]mkexfatfs <opcje> <urządzenie>[/bash]
Opcje:
- [ -i volume-id ] – jest to 32 bitowy heksadecymalny numer. Domyślnie jest on tworzony na podstawie czasu systemowego
- [ -n volume-name ] – nazwa urządzenia, do 15 znaków. Domyślnie nie jest nadawana żadna etykieta
- [ -p partition-first-sec‐tor ] – Pierwszy sektor partycji, zaczynając od początku całego dysku. Super-blok w exFAT posiada pole dla tej wartości, ale jest ono jedynie opcjonalne. Domyślna wartość wynosi 0.
- [ -s sectors-per-cluster ] – liczba fizycznych sektorów na klaster. Wartość musi być potęgą dwójki, jednakże mniejszą niż 32MB. Domyślna wartość to 4KB, jeżeli wolumin jest mniejszy niż 256MB, 32KB, jeżeli wielkość jest między 256MB – 32GB, oraz 128KB dla woluminów większych, niż 32GB.
- [ -v ] – podaje wersję
Przede wszystkim obwarowanie licencyjne powoduje, że wsparcie nigdy nie znajdzie się oficjalnej linii kernela. Taki sposób postępowania z klientami to wielki FAIL Microsoftu, bo z jednej strony sami wspierają Linuxa lub instalację na maszynach wirtualnych, a z drugiej oferują klientowi narzędzie Windows‐only.
I to jest właśnie prawdziwe oblicze MS. Niby coś robią dla wszystkich a jednak dla siebie. Swego czasu użytkownicy walczyli z ntfs, dzisiaj z exFAT.
A skoro fsck dla exfat tylko nas informuje o błędach to równie dobrze mogło by go nie być :P Choć liczę, że nibawem naprawa błędów zostanie zaimplementowana :)
PS. Jesteś pewny, że nie ma żadnych szans na mainline?
Nie jestem :) Ale to tylko od MS zależy, czy zmienią licencjonowanie. Póki co problem stanowią Stany Zjednoczone, gdzie stworzenie takiego kernela wiązałoby się z naruszeniem prawa patentowego, a chyba wszyscy wiedzą jakie go test bagno.
Lada chwila obok exFAT kolejnym problemem okaże się być ReFS…
To niech ameryka sobie używa okrojonego kernela czy każdego innego softu, skoro lubią niewolnictwo.
Ja poproszę wersję kernela dla (jeszcze) wolnych ludzi.
Jakiś osobny branch?
A czy ja twierdzę, że to jest fajne? Może niewolnictwem bym tego nie nazwał, ale z grubsza mam zbieżne poglądy. Nie wiem jaki wygląda kwestia wybranych dystrybucji, ale mogę się założyć, że wybrane mają domyślnie zainstalowane te pakiety lub dostępne w repozytorium.
W Archu są dostępne przez AUR pakiety wprowadzające wsparcie exFAT. Założę się, że w Gentoo jest podobnie.
Jednak rosyjscy programiści nie tacy kiepscy są.
„Dzięki temu w ciągu kilkunastu miesięcy udało się zrobić działające narzędzia i sterowniki, które pozwalają na odczyt, ale zapis póki co jest niedostępny.”
„Pierwszy z nich odpowiada za odczyt i zapis na pamięci przenośnej z system plików exFAT.”
Co tu jest nie tak?
Już zwracałem na to uwagę Autorowi poprzez formularz zgłaszania błędów w artykułach, ale nic to nie dało. Podobnie zresztą jak w przypadku innych artykułów Pana Michała…
Już poprawione. Po prostu od piątku rana nie mieliśmy dostępu do internetu i dlatego nie mogłem nic zrobić. Proszę się nie denerwować.
Przy okazji, byłbym wdzięczny za podpisywanie się, kto zgłasza błąd :)
Pidpisywać się? Ok :)
Ja pierdole, spam nawet tutaj
Ale walczymy dzielnie ;-)
[…] sterownika FUSE, który działa w przestrzeni użytkownika. Jakiś czas temu opisaliśmy działanie exFAT pod Linuksem, do którego warto zajrzeć. Póki co nie ma graficznego narzędzia do […]
[…] także rozmiar klastra, który można zwiększyć do 32 MB. Do tej pory istniały jedynie projekty fuse-exfat i exfat-utils, które korzystały z […]
[…] FFADO, a użytkownicy posiadający pamięci przenośne z FAT64 mogą z nich korzystać, dzięki exfat-fuse. Dodano obsługę tabletów i smartfonów […]
[…] Thus, natomiast Calamares pojawi się dopiero w stabilnym wydaniu serii Manjaro 0.9. Dodano natywną obsługę systemu plików exFAT oraz PacMan 4.2. Zaktualizowano wszystkie pakiety dostępne bezpośrednio po instalacji […]
[…] ExFAT […]