Czy i czy UDF może być używany jako format dysku twardego?

32

Kilka razy ostatnio widziałem UDF jako rozwiązanie wieloplatformowego formatu dla dysku używanego w systemach Linux, Mac OS X i Windows XP i nowszych.

Szukałem tutaj i nie znalazłem tej samej sugestii (większość sugeruje ntfs-3g, który wydaje się kosztować i nie jest zainstalowany na komputerze Mac).

Więc moje pytanie brzmi: jak to się robi właściwie i czy ktoś to zrobił? Czy następnie zapełniłeś dysk i usunąłeś niektóre pliki, aby znaleźć miejsce, że wszystko działa jak prawdziwy format r / w, nawet jeśli wydaje się, że był to przede wszystkim format jednokrotnego zapisu?

Nazwij mnie szalonym, ale bardzo bym tego chciał, gdyby system UDF również automatycznie się zamontował i był zapisywalny przez zalogowanego użytkownika. To, czego próbowałem do tej pory (formatowanie udftools, jak wspomniano przez kicsyromy) nie spełnia tego życzenia.

dlamblin
źródło
1
Jedno wyjaśnienie: ntfs-3gjest bezpłatne. Jego kod źródłowy jest darmowy (tj. Dostępny bezpłatnie). Jest również wolny, jak w wolności . ntfs-3gjest sterownikiem NTFS w Ubuntu! Ręczne budowanie / instalowanie go w systemie OS X jest nieco techniczne , a Tuxera (jego programista) oferuje zastrzeżoną wersję płatnego oprogramowania, która jest zasadniczo bezpłatnym ntfs-3gsterownikiem zbudowanym i spakowanym w celu łatwej instalacji i użytkowania w systemie OS X. Bez dodatkowego sterownika system operacyjny X będzie odczytywał (a nie zapisywał) woluminy NTFS, więc masz rację, rozważając inny system plików.
Eliah Kagan
@EliahKagan Więc jeśli ntfs-3g jest „darmowy”, to dlaczego Apple nie zawarło go, aby umożliwić obsługę r / w dla NTFS?
user29020
@ user29020 Nie wiem, podczas gdy Apple zdecyduje się go nie dołączać, ale możesz to sprawdzić za darmo, pobierając kod źródłowy (obecnie ten plik ), rozpakowując go i widząc, że COPYINGplik jest GNU GPL . Może Apple nie chciał, aby praca integrowała go, więc można go bezproblemowo używać z Findera. Zobacz także tuxera.com/products/tuxera-ntfs-for-mac i sourceforge.net/projects/catacombae .
Eliah Kagan
1
@ user29020 Koszty pomocy technicznej (co jeśli jest trochę wadliwe)? Ograniczenia prawne? Bezpłatnie na licencji GNU GPL oznacza, że ​​można ją dodawać tylko do istniejących źródeł / plików binarnych, które z kolei są również dostępne na licencji GPL. (LGPL pozwoli na wykorzystanie go jako biblioteki przez inny kod inny niż GPL). Biorąc pod uwagę, że kod Apple jest w dużej mierze zastrzeżony i poza tym na mocy APSL, który nie jest licencją zgodną z GPL, jest to ograniczenie, którego muszą przestrzegać. gnu.org/philosophy/apsl.html
dlamblin

Odpowiedzi:

14

Nie.

Jesteśmy w 2015 r. W momencie udzielania odpowiedzi. Używam OSX Yosemite, Ubuntu 14.10 i podglądu technicznego systemu Windows 10 dla przedsiębiorstw na komputerze Mactel (Macmini 7,1).

Próbowałem zarówno UDF, jak i exFat. Używam Ubuntu do programowania i potrzebuję uprawnień w stylu uniksowym.

Wszystkie poprzednie przewodniki już nie obowiązują: sterowniki UDF ewoluowały i wszystkie systemy operacyjne zaakceptują partycję UDF, z większą liczbą problemów i niestabilności, niż potrafię wymienić.

  • Dysk UDF sformatowany w systemie Mac OS: nie można go zainstalować w systemie Windows 10.
  • Dysk UDF sformatowany w systemie Linux: nie można go zainstalować w systemie Windows 10.
  • Dysk UDF sformatowany w systemie Windows 10: montuje odczyt / zapis w systemie Linux, tylko do odczytu w OSX.

Jednak system Windows nie zezwala na określenie rozmiaru bloku podczas formatowania woluminu UDF, w wyniku czego rozmiar bloku logicznego może różnić się od rozmiaru bloku fizycznego dla partycji.

Nie jestem pewien, czy ma to związek z trudnościami z zamontowaniem go w trybie odczytu / zapisu w OSX, ale po usunięciu pewnej liczby plików w systemie Linux nigdy nie byłem w stanie ponownie zamontować dysku w OSX.

System wpada w panikę jądra i haniebnie się zawiesza.

To i różnorodne odpowiedzi na ten temat wskazują na niespójne wsparcie dla tego formatu w tym momencie.

Wydaje się, że istnieją sposoby na użycie woluminu NTFS w celu osiągnięcia równowagi między funkcjami nowoczesnego systemu plików, uprawnieniami w stylu uniksowym - być może uda mi się je ustawić - i montowaniem odczytu / zapisu we wszystkich systemach operacyjnych.

Mauro Colella
źródło
1
OSX jest oparty na BSD. Więc tak, to OSX Yosemite (10.10.2) doświadcza paniki jądra. Skończyło się na użyciu NTFS i NTFS 3d dla OSX.
Mauro Colella,
1
@Argo drugie odniesienie stwierdza: „-b 512 ma wymusić rozmiar bloku systemu plików równy rozmiarowi fizycznego bloku pamięci USB, zgodnie ze specyfikacją UDF. Dostosuj go, jeśli masz szczęście, że masz pamięć USB z bardziej odpowiedni rozmiar bloku ”. Pozwala to określić rozmiar bloku, ale należy go określić jako wymaganą wartość.
JDługosz
1
System Windows 10, który nie został zamontowany przez system OS X / OS X, nie został zainstalowany, wynika z różnicy w sposobie obsługi tabel partycji przez każdy system operacyjny. Windows 10: Potrzebuje jednego. Mac OS X: Wymaga, aby UDF znajdował się na gołym dysku, jako na całej partycji.
DrYak
2
Jest to narzędzie, formatowanie, które dba o incosistencies: github.com/JElchison/format-udf
velop
15

Ktoś przeprowadził badania dotyczące formatowania dysku flash za pomocą udf, aby można go było używać na jak największej liczbie systemów operacyjnych. Oto jego odkrycia (używane do być tam , teraz offline):

  • Windows 7 ma pełną obsługę do UDF v2.6, ale rozmiar bloku UDF musi być zgodny z rozmiarem bloku urządzenia bazowego (który dla urządzeń USB i większości dysków ma 512 bajtów; dyski „w formacie zaawansowanym” to 4096 bajtów). Najwyraźniej dysk musi być podzielony na partycje.

  • Linux 2.6.30 i nowsze obsługują UDF w pełni co najmniej do wersji 2.5.

  • Mac OS X 10.5 obsługuje UDF w pełni do UDF 2.01, ale tylko gdy jest używany na pełnym dysku, więc nie jest podzielony na partycje.

Jak wyjaśniono powyżej, w przypadku dysków twardych USB system Windows wymaga partycjonowania dysku. Z drugiej strony UDF działa tylko w systemie OS X, gdy jest używany na pełnym dysku (niepartycjonowany). Nieoczekiwanie, istnieje rozwiązanie, które działa zarówno na: dysk podzielony na partycje, jak i niepartycjonowany w tym samym czasie.

Tabele partycji DOS są przechowywane w bajtach 446-510 głównego rekordu rozruchowego. Ten główny rekord rozruchowy jest przechowywany w pierwszym sektorze na dysku, w sektorze 0. Zazwyczaj pierwsza określona partycja uruchomi kilka kilobajtów dalej. Wydaje się jednak możliwe zbudowanie tablicy partycji, której pierwsza partycja rozpoczyna się w sektorze 0, więc wynikiem jest partycja zawierająca samą tablicę partycji. Wydaje się, że programy do edytowania partycji nie chcą stworzyć takiej tabeli, ale przynajmniej ostatnie jądra Linuksa i Windowsa nie przeszkadzają.

Zaletą jest to, że UDF (przypuszczam celowo) nie wykorzystuje pierwszych kilku kilobajtów partycji lub dysku, na którym jest umieszczony, więc to miejsce może naprawdę służyć do przechowywania starszej tablicy partycji, odnosząc się do partycji obejmującej całość dysk. Niektóre testy pokazują, że to naprawdę działa w systemach Linux, Windows i Mac OS X:

  • Montuje się automatycznie w trybie odczytu i zapisu w systemie Linux 2.6.30+, Mac OS X 10.5+, Windows Vista +
  • Może być używany tylko do odczytu w systemie Windows XP i może być używany po zamontowaniu wiersza poleceń w systemie Linux 2.6.0+
  • Obsługuje duże pliki, uprawnienia UNIX, nazwy plików Unicode, dowiązania symboliczne, dowiązania twarde itp.

Skrypt poprawnie formatujący dysk: skrypt Perla lub skrypt Bash

Dan Benamy
źródło
12

Właśnie przetestowałem to na maszynie wirtualnej. Wygląda na to, że musisz (ponownie) utworzyć partycję w systemie Windows, przypisać jej literę dysku, ale nie formatuj jej w żadnym systemie plików. Następnie uruchom system Ubuntu i postępuj zgodnie ze wskazówkami, a powinien on działać do odczytu / zapisu.

Pamiętaj, aby wykonać kopię zapasową wszystkich swoich danych!

Najpierw zainstaluj narzędzia UDF:

sudo apt-get install udftools

Zastąp pierwszy blok niczym na partycji, którą chcesz sformatować do UDF ^:

sudo dd if=/dev/zero of=/dev/sdxN bs=512 count=1

I na koniec sformatuj do UDF ^:

sudo mkudffs --media-type=hd --blocksize=512 /dev/sdxN

^ gdzie:

  • x jest symbolem zastępczym litery aktualnie przypisanej do twojego dysku twardego

  • N jest symbolem zastępczym dla numeru partycji

Powodzenia i daj mi znać, czy ci się udało.

kicsyromy
źródło
Dzięki to odpowiada jak; Nadal chciałbym dowiedzieć się, czy działa wystarczająco dobrze w powyższym scenariuszu.
dlamblin
To działało idealnie dla mnie. Jedynym problemem jest to, że muszę ręcznie zamontować partycję w systemie Windows za pomocą Menedżera dysków. Poza tym mogę potwierdzić, że działa również z wieloma partycjami na dysku twardym (używam 1udf + 2ext4)
Nemo
Wydaje się, że kluczem jest tutaj utworzenie partycji, a następnie utworzenie tam systemu plików UDF. Jeśli nie utworzysz żadnej partycji, będzie działać w systemie Linux, ale nie będzie w systemie Windows (7). To moje doświadczenie.
DanMan
@ DanMan Dan wydaje się, że znalazł kogoś, kto rozwiązał ten problem i udostępnia skrypt do formatowania całego dysku za pomocą UDF dla Linux, Mac i Windows 7, a także tylko do odczytu w Win XP.
dlamblin
@kicsyromy: formatowanie partycji (sdxN) do UDF nie działało, wykonanie sudo mkudffs --media-type=hd --blocksize=512 /dev/sdd1wyświetla następujący komunikat o błędzie: trying to change type of multiple extents Udało mi się jednak sformatować UDF przy użyciu całego dysku (sdd), jak opisano tutaj: superuser.com/questions/39942/using- udf-on-a-usb-flash-drive
Tim Banchi