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.