Za pomocą jakiego narzędzia powinienem sformatować dysk twardy jako UDF?

32

(Jest to kontynuacja „ Jaki jest identyfikator partycji / typ systemu plików dla UDF? ”)

Znam dwa sposoby sformatowania dysku twardego jako UDF:

  • Windows Vista lub nowszy: „format x: /fs:UDF ” (nie używaj /q!)
  • Linux: „mkudffs --media-type=hd --blocksize=512 /dev/sdx

Problem polega na tym, że „inny” system operacyjny w ogóle nie rozpoznaje dysku jako sformatowanego: po prostu odmawia zamontowania go, bez względu na to, jakie polecenia spróbuję.

Jak sformatować dysk twardy jako UDF, aby zarówno Windows, jak i Linux mogły go używać?

EDYCJA: zaktualizowałem polecenia, teraz wynik powinien działać w dowolnym systemie operacyjnym.

skolima
źródło
UDF został zaprojektowany dla mediów optycznych, może to jest problem?
Chopper3
1
Polecenie, które dajesz, działa świetnie w systemie Linux. Sformatowałem na Karmic i mogę czytać i pisać zarówno pod Windows 7, jak i Karmic.
Matt Joiner
4
Nie zapomnij najpierw wyzerować MBR (dd if = / dev / zero of = / dev / sdx bs = 512 count = 1), aby uniknąć pomyłki z pozostałą tablicą partycji (ponieważ UDF nie używa pierwszego sektora).
CesarB
1
Dzięki Skolima, to jest świetne. Pa pa FAT32. Muszę tylko uważać, aby trzymać się wersji UDF 2.01 i rozmiaru bloku 512 i mam idealną partycję dysku twardego współużytkowaną przez Linux i Windows.
MarcH

Odpowiedzi:

17

Okazuje się, że /qwinowajcą było użycie przełącznika w systemie Windows: umożliwia on „szybki format”, tzn. Proces formatowania trwa w tle przy każdym zapisie na dysku. Po zakończeniu dysk jest obsługiwany przez system Linux w porządku.

skolima
źródło
Z drugiej strony formatowanie przy pomocy mkudffs Linuksa wydaje się być zakończone w kilka sekund.
MarcH
Właściwie musiałem zrobić szybki format w Win7 po utworzeniu systemu plików z mkudffs w Linuksie. Bez tego system Windows nadal chciał sformatować dysk. Skończyło się to utworzeniem 5 MB pustego miejsca na końcu dysku, z jakiegokolwiek powodu. Ale przynajmniej teraz działa w obu systemach operacyjnych.
DanMan
Odpowiadając sobie: te 5 MB może być blokiem metadanych w najnowszych wersjach UDF.
DanMan
1
Totalnie źle! Szybkie formatowanie NIE jest „kontynuacją formatowania w tle”. To tylko inicjalizacja systemu plików bez formatowania ścieżek.
Anixx,
6

Podczas formatowania UDF jedną rzeczą, której nie można wystarczająco podkreślić, jest to, jak ważne jest użycie odpowiedniego rozmiaru bloku podczas formatowania UDF. Jak wyjaśniono tutaj , użycie skonfigurowanego rozmiaru bloku, który nie odpowiada rozmiarowi sektora fizycznego, prawdopodobnie oznacza, że ​​niektóre systemy operacyjne nie będą w stanie wykryć dysku jako prawidłowego UDF.

Zainspirowany powyższą odpowiedzią (i innymi moimi badaniami / testami) napisałem skrypt automatyzujący proces formatowania w UDF - z wykorzystaniem odpowiednio wykrytego rozmiaru sektora. Zobacz format-udf na GitHub . Ważne funkcje:

  • Formatuje dysk blokowy (dysk twardy lub dysk Flash) w Universal Disk Format (UDF)
    • Wersja UDF 2.01 stosowana dla maksymalnej kompatybilności
    • Pierwsze 4096 sektorów jest zerowanych, aby usunąć istniejący MBR (niezbędny do prawidłowego wykrywania UDF)
  • Powstały system plików można odczytać / zapisać w wielu rodzinach systemów operacyjnych (Windows, OS X i Linux)
  • Działa na każdym systemie operacyjnym posiadającym środowisko Bash

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:

  • wybierz odpowiednie narzędzie do formatowania w oparciu o system operacyjny i środowisko ( mkudffsw systemie Linux)
  • automatycznie wykrywa i wypełnia wszystkie parametry niezbędne do formatowania (w tym blocksize)
  • zmaksymalizuj kompatybilność systemu operacyjnego (zobacz tabelę kompatybilności na stronie GitHub)
  • daje maksymalny zestaw funkcji (i minimalne ograniczenia), którego szuka pytający
j0nam1el
źródło
5

Jak pogodziłeś swoje odkrycie w poprzednim pytaniu (że system plików UDF powinien zostać utworzony na całym dysku, a nie na partycji) z tym poleceniem systemu Windows („format x: / fs: UDF”)? W moich próbach system Windows podaje tylko litery dysków do partycji.

Jeśli chodzi o formatowanie dla zgodności, myślę, że klucz ma rozmiar bloku. Ponieważ większość dysków twardych i pamięci flash USB ma rozmiar 512 bajtów, miałem największą kompatybilność podczas tworzenia FS o tym rozmiarze bloku. Myślę, że format.com używa tego rozmiaru bloku, a mkudffs ma przełącznik poleceń do zmiany rozmiaru bloku. Mogłem zmusić system OS X i Windows do zamontowania systemu plików tylko wtedy, gdy korzystałem z bloków 512-bajtowych. Starsze wersje Linuksa zakładały rozmiar bloku 2048, ale zawsze można zamontować z „-o bs = 512”.

Problem dotyczący całego dysku vs. partycji nadal powoduje problemy ze zgodnością. System Windows nie podłącza się podczas formatowania całego dysku, a system OS X nie wykracza poza numer typu partycji podczas określania systemu plików, co zmusza mnie do ręcznego zamontowania. Linux nie dbał o to, o ile nadałem mu odpowiednią nazwę urządzenia (sda vs sda1).

Podsumowując, najbardziej zgodną konfiguracją, jaką znalazłem, jest pojedyncza partycja typu 06 (FAT16), sformatowana za pomocą UDF o rozmiarze bloku 512. Działa automatycznie w systemie Windows i trochę ręcznej interwencji w systemie Linux i OS X.

Szymon, Szymek
źródło
3
Próbowałem innego eksperymentu. Tym razem użyłem pamięci flash USB zamiast dysku twardego. Sformatowany przy użyciu „mkudffs --media-type = hd --blocksize = 512 / dev / sda”, działa bezproblemowo w systemach Linux, OS X i Vista. Szkoda, że ​​system Windows wydaje się dopuszczać formaty bez partycji na nośnikach USB, ale nie na dyskach twardych.
Simon
Zdecydowanie chcesz zachować ten sam rozmiar bloku, aby uniknąć przedwczesnego noszenia pamięci flash, patrz: lwn.net/Articles/428584
MarcH