Po nie skopiowaniu pliku większego niż 4G na mój dysk flash USB 8G sformatowałem go jako ext3. Chociaż do tej pory działa mi to dobrze, spowoduje to problemy, jeśli chcę go użyć do skopiowania plików do osoby, która nie korzysta z systemu Linux.
Zastanawiam się nad sformatowaniem go jako UDF , co, mam nadzieję, pozwoliłoby na odczyt (a być może nawet zapisanie) na trzech najpopularniejszych systemach operacyjnych (Windows, MacOS i Linux), bez konieczności instalowania dodatkowych sterowników . Jednak z tego, co już znalazłem w Internecie, wydaje się, że istnieje kilka małych problemów związanych z parametrami, które są używane do utworzenia systemu plików, co może zmniejszyć kompatybilność (ale większość stron, które znalazłem, dotyczą nośników optycznych, a nie pamięci flash USB dyski).
Chciałbym wiedzieć:
- Jakiego narzędzia należy użyć do utworzenia systemu plików? (Do tej pory znalazłem
mkudffs
igenisoimage
, imkudffs
wydaje się być najlepszym rozwiązaniem.) - Których parametrów należy używać z wybranym narzędziem, aby uzyskać maksymalną kompatybilność?
- Jaka jest zgodność z najpopularniejszymi wersjami tych trzech systemów operacyjnych UDF?
- Czy używanie UDF jest rzeczywiście najlepszym pomysłem? Czy istnieje inny system plików, który miałby lepszą kompatybilność bez żadnych problematycznych ograniczeń, taki jak limit rozmiaru pliku FAT32 4G i bez konieczności instalowania specjalnych sterowników na każdym komputerze, który go dotknie?
Odpowiedzi:
Najpierw całkowicie wyzerowałem dysk przed utworzeniem systemu plików UDF za pomocą:
Ma to na celu uniknięcie resztek superbloków lub innych metadanych, które mogłyby mylić wykrywanie systemu plików w systemie operacyjnym (co najmniej konieczne powinno być zerowanie pierwszego sektora, aby usunąć tablicę partycji; kilka pierwszych sektorów nie jest używanych przez UDF, a resztki tablica partycji może naprawdę mylić rzeczy). Możesz także użyć
count=1
przełącznika na komendzie dd, aby szybciej zerować tylko pierwsze 512 bajtów dysku (gdzie MBR zwykle znajduje się w środku), chociaż nie zostało to przetestowane.Aby utworzyć system plików, użyłem polecenia:
mkudffs
polecenie będzie dostępne na dystrybucjach Linuksa opartych na Debianie (takich jak Ubuntu) po zainstalowaniuudftools
pakietu:Domyślną blocksize za
mkudffs
to 2048, co jest złe dla napędu flash USB (który używa 512-bajtowych sektorów). Ponieważ rozmiar bloku jest używany do znajdowania metadanych systemu plików, użycie niewłaściwego rozmiaru bloku może spowodować, że nie zostanie on rozpoznany jako system plików UDF (ponieważ kotwica nie będzie tam, gdzie oczekuje sterownik systemu plików). Zauważ, żemkudffs
strona podręcznika jest niepoprawna; 512 jest prawidłową wartością rozmiaru bloku (a kod wyraźnie ją akceptuje).Użyłem również całego dysku zamiast partycji; powinno to być bardziej kompatybilne.
Wynik moich dotychczasowych testów:
bs=512
opcjimount
, ponieważ niepoprawnie używał 2048 zamiast rozmiaru sektora urządzenia (naprawiono w zatwierdzeniu 1197e4d ).Chociaż do tej pory nie próbowałem utworzyć w nim pliku większego niż 4G, nie widzę powodu, dla którego nie miałby działać.
Biorąc pod uwagę, że działał doskonale na wszystkich najnowszych systemach operacyjnych (tylko do ręcznego montowania w systemie Linux, co nie będzie już potrzebne, gdy tylko Ubuntu 9.10 i Fedora 12 będą dostępne), i działał tylko do odczytu w Windows XP (co było zaskoczeniem dla mnie; spodziewałem się, że w ogóle nie rozpozna systemu plików), użycie UDF zamiast FAT32 lub NTFS w dużych dyskach flash USB wydaje się dobrym pomysłem.
źródło
dd if=/dev/zero of=/dev/sdb bs=1M
, co pozostawia go bez tablicy partycji.CesarB wykonał świetną robotę, docierając do sedna problemu. Jedną z rzeczy, których nie można wystarczająco podkreślić, jest to, jak ważne jest użycie odpowiedniego rozmiaru bloku podczas formatowania UDF.
Zainspirowany postem CesarB (i innymi badaniami / testami) napisałem skrypt automatyzujący proces formatowania w UDF - przy użyciu odpowiednio wykrytego rozmiaru sektora. Zobacz format-udf na GitHub . Ważne funkcje:
Z powodu ostatniego punktu tego skryptu, który napisałem, nie można używać w systemie Windows. Jednak skrypt będzie działał w systemach OS X i Linux. Po wykonaniu tej czynności system Windows powinien być w stanie magicznie wykryć nowo sformatowany dysk UDF.
Aby bezpośrednio odpowiedzieć na zadane pytania, format-udf:
źródło
hdparm
nazywa się „logicznym rozmiarem sektora”, to jednostka adresowania używana przez protokół SATA, podczas gdy „fizyczny rozmiar sektora” jest wewnętrzną sprawą napędu. Dla mnie bardziej sensowne jest to, że „bloki fizyczne” w specyfikacji UDF naprawdę oznaczają „bloki logiczne” Linuksa.mkudffs
bezpośrednio; Mam na myśli dodanie nowej--best-block-size
opcji domkudffs
.Wydaje mi się, że pamiętam, że to zrobiłem, problem, który znalazłem, polega na tym, że wersja Linuksa zainstalowałem ją tylko do odczytu, ponieważ sterownik nie został zbudowany dla r / w. Działa w systemie Windows i myślę, że Mac.
Tak, trudno znaleźć dobre rozwiązanie. Przez jakiś czas miałem zewnętrzny dysk z partycją fat32, która miała sterowniki dla Win i Mac, partycję Mac i dużą partycję ext3. Działało, ale oznaczało instalację sterowników. Ciekawą sztuczką było to, że był również bootowalny na komputerze Mac (fw i usb), musisz zostawić miejsce i zrobić notatki, a następnie możesz dodać partycje za pomocą wiersza poleceń i tablicy partycji Mac.
Świat potrzebuje darmowego, uniwersalnego systemu plików. ZFS byłby dobrym wyborem. :-)
źródło
Pieter Wuille napisał narzędzie do partycjonowania i formatowania dysku w celu utworzenia układu UDF, który będzie zgodny zarówno z Windows (> = Vista, tylko do odczytu dla XP), MacOS X 10.5, Linux 2.6.30+:
Alternatywnie:
źródło
Aby osiągnąć maksymalną kompatybilność, powinieneś używać mkudffs z projektu udftools przynajmniej w wersji 2.0. Nie są wymagane żadne specjalne parametry, wszystko jest automatycznie wykrywane.
Istnieją 3 duże ograniczenia:
Systemy Microsoft Windows nie rozpoznają niewymiennego dysku twardego, jeśli nie ma on tablicy partycji MBR lub GPT.
Systemy Apple Mac OS X nie rozpoznają systemu plików UDF na partycjonowanym dysku.
Prawdopodobnie wszystkie systemy (oprócz najnowszych jąder Linuksa) nie rozpoznają systemu plików UDF, jeśli rozmiar bloku UDF nie odpowiada rozmiarowi sektora logicznego dysku.
Narzędzie mkudffs od wersji 2.0 obsługuje wszystkie 3 ograniczenia. Podczas formatowania niewymiennych dysków twardych tworzy „fałszywą” tabelę MBR, która rozpoczyna się w sektorze 0 i obejmuje cały dysk. Tak więc system plików UDF można odczytać z pierwszej partycji (wymagany w systemie Microsoft Windows) lub z całego dysku (wymagany w systemie Apple Mac OS X). Więcej informacji na stronie podręcznika użytkownika mkudffs 2.0.
źródło
NTFS, z NTFS-3G możesz pisać do niego za pomocą Linuksa i spojrzeć na http://macntfs-3g.blogspot.com/ dla twojego Maca.
źródło
Istnieją sterowniki dla systemu Windows (i Mac), które mogą uzyskać dostęp do partycji EXT3, dzięki czemu można sformatować go w EXT3 i używać go (ze sterownikami) w dowolnym miejscu. Innym sposobem byłoby użycie archiwizatora do przechowywania dużego pliku w dwóch lub więcej plikach do 4 GB każdy. W ten sposób możesz korzystać z systemu plików FAT32, który jest uniwersalny. Na komputerze hosta musisz rozpakować archiwum, aby z niego skorzystać, ale jest to sposób na zrobienie tego bez sterowników. Użyj archiwizatora w formacie RAR, ponieważ działa on na systemach Windows, Linux i Mac, chociaż myślę, że format ZIP mógłby również działać. Ale poszedłbym z kierowcami. Po zainstalowaniu możesz zrobić wszystko bez ograniczeń. W komputerze użyłem Ext2Fsd dla pełnego dostępu EXT2, EXT3 i EXT4 oraz Macdrive dla pełnego dostępu do formatu MacOS. Z pewnością istnieją podobne narzędzia dla systemów Linux i MacOS, aby uzyskać pełny dostęp do partycji NTFS itp. Jeśli potrzebujesz tylko dostępu do odczytu, nie potrzebujesz żadnych sterowników, Linux i MacOS obsługują czytanie partycji NTFS, więc sformatuj USB jako NTFS! Jeśli wszystkie te komputery są w tej samej sieci, wszystko jest łatwiejsze! Utwórz format USB i udostępnij go w sieci. Inne komputery nie powinny mieć problemu z dostępem do niego!
źródło