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.


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.


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

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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.