Jaki jest identyfikator partycji / typ systemu plików dla UDF?

10

Prawdopodobnie jest to trywialne sprawdzenie za pomocą cfdisk na płycie CD / DVD / Blu-Ray w formacie UDF, ale nie mam pod ręką żadnego z nich.

Utworzyłem partycję sformatowaną w formacie UDF na dysku twardym USB do udostępniania danych między komputerami z systemem Linux i Windows (FAT nie obsługuje plików 4 GB, obsługa praw dostępu NTFS nie jest stabilna w systemie Linux). Mam teraz tylko jeden problem - system Windows odmawia zamontowania partycji, ponieważ identyfikator typu systemu plików jest ustawiony na „83” („Linux”). Szukałem dość szeroko i nie mogę znaleźć numeru, który powinienem tam umieścić?

(kontynuacja: „ Jakim narzędziem należy sformatować dysk twardy jako UDF? ”)

skolima
źródło
2
Nie sądzę, aby można było uzyskać jakiekolwiek znaczące wyniki po uruchomieniu cfdisk na CD, DVD lub Blu-Ray. Partycje są ustawiane przez kilka bajtów MBR, które zdarzają się na dyskach twardych i pendrive'ach, a nie na dyskietkach lub nośnikach optycznych.
Juliano

Odpowiedzi:

9

Odpowiedzią jest typ partycji 06 (FAT16). Nie pytaj mnie dlaczego, zapytaj Microsoft.


źródło
Ponad 5 lat później ta prosta odpowiedź ogromnie mi pomogła. Dziękujemy „user48160” komukolwiek i gdziekolwiek jesteś teraz!
JakeGould,
6

Okazuje się, że nie ma tablicy partycji dla UDF i nie ma przypisanego identyfikatora partycji. Ten system plików musi obejmować cały dysk w celu rozpoznania przez system Windows. Sformatowanie dysku twardego jako UDF nie dotyka istniejącej tabeli partycji (uważaj - będzie zawierać nieaktualne informacje, a jeśli podłączysz go za pomocą, zniszczysz dane!).

Jako ciekawostkę - UDF 2.5 i nowsze tworzą osobne partycje (jedną lub dwie na dysk) dla metadanych. Jednak te partycje nie są również widoczne w standardowej tabeli partycji DOS.

skolima
źródło
1
Właśnie sformatowana jako UDF jedna z partycji logicznych (MBR) na moim dysku twardym, a Windows 7 nie miał z tym problemu
MarcH
@MarcH: więc jaki identyfikator partycji zgłasza system Windows lub jakieś narzędzie? (miał problem z sformułowaniem pytania, przepraszam, jeśli jest źle sformowane)
ata
@Juaco przewiń w dół, aby uzyskać odpowiedź. Lub spójrz na BOOTICE.
MarcH
Niektóre narzędzia do partycjonowania pozwalają tworzyć partycje bez systemu plików. Dokładnie to, czego potrzebujesz, aby przypisać mu literę dysku w systemie Windows, a następnie sformatować ją w UDF.
DanMan
3

Krótka odpowiedź: sugerowałbym użycie MBR id 0x07 dla partycji UDF.


Długa odpowiedź:

Linux nie dba o identyfikatory partycji MBR i ignoruje je (*).

Windows 2000 i nowsze wersje mogą przypisać literę dysku do niektórych partycji o identyfikatorze PartitionType tylko wtedy, gdy IsRecognizedPartition (PartitionType) jest prawdziwy. Co więcej, w przypadku partycji innych niż FT partycja IsFTP (PartitionType) musi mieć wartość false (w przeciwnym razie partycja jest wykrywana jako FT, a nie jako zwykły FAT / NTFS / UDF / ...).

Warunek IsRecognizedPartition (PartitionType) &&! IsFTPartition (PartitionType) stosuje się dla tych identyfikatorów partycji MBR: 0x01, 0x04, 0x06, 0x07, 0x0B, 0x0C, 0x0E (**). Co oznacza, że ​​Windows 2000 (i nowy) może rozpoznać partycję UDF i korzystać z niej, jeśli identyfikator partycji MBR jest jednym z nich. Prawdopodobnie nie ma innych ograniczeń i każdy obsługiwany system plików akceptuje partycję z dowolnym identyfikatorem MBR. Co oznacza, że ​​te identyfikatory MBR nie są używane do wykrywania systemu plików.

Istnieją jednak pewne zalecenia firmy Microsoft, kiedy należy zastosować określony typ partycji :

  • 0x01 - partycja podstawowa lub dysk logiczny FAT12 (mniej niż 32.680 sektorów w woluminie)
  • 0x04 - Partycja FAT16 lub dysk logiczny (32 268–65 535 sektorów lub 16 MB – 33 MB)
  • 0x06 - Partycja BIGDOS FAT16 lub dysk logiczny (33 MB – 4 GB)
  • 0x07 - Instalowalny system plików (partycja NTFS lub dysk logiczny)
  • 0x0B - partycja FAT32 lub dysk logiczny
  • 0x0C - Partycja FAT32 lub dysk logiczny z rozszerzeniami BIOS INT 13h (***)
  • 0x0E - Partycja BIGDOS FAT16 lub dysk logiczny z rozszerzeniami BIOS INT 13h (***)

A także znaczenie Microsoft:

  • 0x01 - określa partycję z 12-bitowymi wpisami FAT.
  • 0x04 - Określa partycję z 16-bitowymi wpisami FAT.
  • 0x06 - Określa ogromną partycję MS-DOS V4.
  • 0x07 - Określa partycję IFS.
  • 0x0B - określa partycję FAT32.
  • 0x0C - Windows 95/98: określa partycję, która korzysta z rozszerzonych usług INT 13.

Na Wikipedii można znaleźć także kilka rekomendacji:

  • 0x01 - CHS / LBA - DOS 2.0+ - FAT12 jako partycja podstawowa w pierwszych fizycznych 32 MB dysku ... (w przeciwnym razie użyj 0x06)
  • 0x04 - CHS / LBA - DOS 3.0+ - FAT16 z mniej niż 65536 sektorami (32 MB) ... (w przeciwnym razie użyj 0x06)
  • 0x06 - CHS / LBA - DOS 3.31+ - FAT16B z 65536 lub więcej sektorami. Musi znajdować się na pierwszych fizycznych 8 GB dysku ... (w przeciwnym razie użyj 0x0E). Używany również w przypadku woluminów FAT12 i FAT16 na partycjach podstawowych, jeśli nie znajdują się one w pierwszych fizycznych 32 MB dysku.
  • 0x07 - CHS / LBA - OS / 2 1.2+, Windows NT / CE - IFS / HPFS / NTFS / exFAT / QNX
  • 0x0B - CHS / LBA - DOS 7.1+ - FAT32 z adresowaniem CHS
  • 0x0C - LBA - DOS 7.1+ - FAT32 z LBA
  • 0x0E - LBA - DOS 7.0+ - FAT16B z LBA

Aby uzupełnić listę identyfikatorów, oto kilka informacji o starszych systemach, które nie obsługują partycji dysku twardego sformatowanej w UDF.

Windows NT 4.0 i starsze mogą przypisywać literę dysku tylko do partycji o identyfikatorze MBR: 0x01, 0x04, 0x06, 0x07.

System Windows oparty na systemie DOS (95, 98 i ME) może przypisać literę dysku tylko do partycji o identyfikatorach MBR: 0x01, 0x04, 0x06, 0x0B, 0x0C, 0x0E. Sam MS-DOS może uzyskiwać dostęp tylko do partycji o identyfikatorach MBR: 0x01, 0x04, 0x06. Należy zauważyć, że te systemy używają identyfikatora partycji MBR do wykrywania systemu plików. Identyfikator partycji MBR musi być zgodny z systemem plików na partycji.

Wniosek:

Spójrz na rozmiar partycji: 0x01 i 0x04 powinny być używane tylko dla partycji na pierwszych 32 MB dysku. 0x06 tylko w pierwszych 8 GB dysku. 0x0B dotyczy adresowania CHS, które ma limit na dyski 8 GB. Więc bez takich limitów są tylko identyfikatory: 0x07, 0x0C i 0x0E. Ponieważ 0x0C i 0x0E są używane dla partycji FAT, sugerowałbym wybranie 0x07 . Jest to przeznaczone dla partycji IFS (instalowalnego systemu plików) i według Wikipedii Microsoft dodał obsługę UDF do interfejsu API systemu Windows 2000 IFS. Użycie 0x0C lub 0x0E spowodowałoby, że systemy oparte na DOS pokazywałyby tę partycję jako FAT, nawet gdyby była sformatowana jako UDF. Partycje o identyfikatorze MBR 0x07 są ukryte w tych systemach. Nie obsługują UDF, dlatego lepszym wyborem jest 0x0C lub 0x0E.

GPT:

Układ partycji GPT nie wchodzi w zakres tego pytania, ale ma podobny problem jak MBR. Brak identyfikatora GUID partycji (odpowiednika GPT dla identyfikatora MBR) dla UDF. Ponieważ system Windows XP x64 obsługuje UDF i może rozpoznawać partycję danych GPT tylko z identyfikatorem GUID EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (Microsoft Basic Data Partition), jest to jedyny możliwy wybór dla GPT.

Źródła:

(*) Istnieje jeden wyjątek: identyfikatory MBR 0x05, 0x0F i 0x85 są używane do wykrywania rozszerzonych partycji MBR.
(**) Definicje tych dwóch wywołań można znaleźć w pliku WinIoCtl.h, ponieważ są one zadeklarowane jako makra C.
(***) Rozszerzenia BIOS INT 13h oznaczają użycie LBA zamiast CHS.

Pali
źródło
Ta strona wskazuje, że partycje 0x0E muszą być mniejsze niż 2 GiB. Co oznacza, że ​​dla UDF musi to być 0x07 lub 0x0C. To drugie brzmi dla mnie lepiej, zwłaszcza gdy czytasz linkowaną stronę. Imponujące badania, czapki z głów!
Milind R
2

Na płytach CD i DVD, z którymi mam do czynienia, nie ma tabeli partycji. Na dysku twardym USB zapisałeś tablicę partycji na nośniku. Podejrzewam, że jeśli sformatujesz cały dysk jako dysk UDF bez tablicy partycji, Windows nie będzie miał problemu z zamontowaniem go.

Nie mówisz, jaki jest rozmiar dysku USB i możesz niechętnie poświęcić cały dysk jako UDF, możesz spróbować ustawić typ partycji za pomocą fdisk jako NTFS lub jednego z innych typów obsługiwanych przez MS.

codeDr
źródło
Uruchamiam także Linuksa z tego samego napędu, więc potrzebuję jednej partycji, aby była w formacie obsługiwanym przez grub. Właśnie dowiedziałem się, że grub2 (eksperymentalny) może uruchomić Linuksa z UDF, więc spróbuję tego.
skolima,
0

Mam ten sam problem. Mój dysk twardy USB ma 320 GB. Tabela partycji wygląda następująco:

Disk /dev/sda: 320.0 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x44fdfe06

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1       27963   224612766    c  W95 FAT32 (LBA)
/dev/sda2           27964       38913    87955875    5  Extended
/dev/sda5           27964       33366    43399566    7  HPFS/NTFS
/dev/sda6           33367       38913    44556246   83  Linux

Partycja sda5 to wersja UDF rev. 1.5 i powinny być czytelne w systemie Windows XP i nowszych. Linux oczywiście czyta to poprawnie. Windows jest jednak zdezorientowany. Rozpoznaje partycję jako NTFS, a następnie zakłada, że ​​jest to partycja surowa.

Mój eksperyment z UDF na pendrive wykazał, że systemy mylą UDF z FAT. Interpretują UDF jako FAT. To musi być dość duże podobieństwo, ponieważ widzę strukturę katalogów losowych znaków. Linux twierdzi, że dysk jest uszkodzony, ale nie odmawia jego użycia.

Myślę, że UDF (przynajmniej wersja 1.5) nie jest dobrze obsługiwany na dyskach USB.


źródło
1
Jeśli medium miało FAT, mogą istnieć resztki powodujące pomylenie UDF z FAT. Przed formatowaniem za pomocą UDF należy upewnić się, że FAT jest wyczyszczony / wyzerowany.
osvein