Коротка відповідь: Я б запропонував використовувати MBR id 0x07 для розділів UDF.
Довга відповідь:
Linux не піклується про ідентифікатори розділів MBR і ігнорує його (*).
Windows 2000 і новіші версії можуть призначити лист диска деякому розділу з id PartitionType лише тоді, коли IsRecognizedPartition (PartitionType) є істинним. Більше того, для не-FT розділів повинно бути встановлено, що IsFTPartition (PartitionType) є помилковим (інакше цей розділ виявляється як FT, а не як звичайний FAT / NTFS / UDF / ...).
Умова IsRecognizedPartition (PartitionType) &&! IsFTPartition (PartitionType) застосовується для цих ідентифікаторів розділів MBR: 0x01, 0x04, 0x06, 0x07, 0x0B, 0x0C, 0x0E (**). Що означає, що Windows 2000 (і новіші) можуть розпізнавати та використовувати розділ UDF, якщо ідентифікатор розділу MBR є одним із таких. Мабуть, немає інших обмежень, і будь-яка підтримувана файлова система приймає розділ з будь-яким із цих ідентифікаторів MBR. Це означає, що ці MBR-ідентифікатори не використовуються для виявлення файлової системи.
Але є деякі рекомендації від Microsoft, коли слід використовувати конкретний PartitionType :
- 0x01 - первинний розділ FAT12 або логічний диск (менше 32 680 секторів в обсязі)
- 0x04 - розділ або логічний привід FAT16 (32 680–65,535 секторів або 16 МБ – 33 МБ)
- 0x06 - розділ BIGDOS FAT16 або логічний диск (33 Мб - 4 ГБ)
- 0x07 - Файлова система, що встановлюється (розділ NTFS або логічний диск)
- 0x0B - розділ FAT32 або логічний диск
- 0x0C - розділ FAT32 або логічний диск з використанням розширень BIOS INT 13h (***)
- 0x0E - розділ BIGDOS FAT16 або логічний привід за допомогою розширень BIOS INT 13h (***)
А також значення Microsoft:
- 0x01 - Вказує розділ з 12-бітовими записами FAT.
- 0x04 - Вказує розділ з 16-бітовими записами FAT.
- 0x06 - Вказує величезний розділ MS-DOS V4.
- 0x07 - Вказує розділ IFS.
- 0x0B - Вказує розділ FAT32.
- 0x0C - Windows 95/98: Вказує розділ, який використовує розширені послуги INT 13.
У Вікіпедії можна знайти також деякі рекомендації:
- 0x01 - CHS / LBA - DOS 2.0+ - FAT12 як основний розділ на першому фізичному диску 32 Мб ... (інше використовуйте замість 0x06)
- 0x04 - CHS / LBA - DOS 3.0+ - FAT16 з менш ніж 65536 секторами (32 Мб) ... (інше використовувати 0x06 замість цього)
- 0x06 - CHS / LBA - DOS 3.31+ - FAT16B з 65536 або більше секторами. Він повинен знаходитися на перших фізичних 8 ГБ диска ... (інше використовуйте 0x0E замість цього). Також використовується для томів FAT12 і FAT16 в первинних розділах, якщо вони не містяться в перших фізичних 32 Мб диска.
- 0x07 - CHS / LBA - OS / 2 1.2+, Windows NT / CE - IFS / HPFS / NTFS / exFAT / QNX
- 0x0B - CHS / LBA - DOS 7.1+ - FAT32 з CHS адресацією
- 0x0C - LBA - DOS 7.1+ - FAT32 з LBA
- 0x0E - LBA - DOS 7.0+ - FAT16B з LBA
Для повного переліку ідентифікаторів, ось деяка інформація про старих системах, які не підтримують розділ жорсткого диска у форматі UDF.
Windows NT 4.0 і пізніші версії можуть призначити букву диска лише розділам з ідентифікатором MBR: 0x01, 0x04, 0x06, 0x07.
На базі DOS Windows (95, 98 та ME) можна призначити букву диска лише розділам з ідентифікаторами MBR: 0x01, 0x04, 0x06, 0x0B, 0x0C, 0x0E. MS-DOS сам може отримати доступ до лише розділів з ідентифікаторами MBR: 0x01, 0x04, 0x06. Зауважте, що ці системи використовують ідентифікатор розділу MBR для виявлення файлової системи. Ідентифікатор розділу MBR повинен відповідати файловій системі на розділі.
Висновок:
Подивіться на розмір розділу: 0x01 та 0x04 слід використовувати лише для розділів у перших 32 Мб диска. 0x06 лише в перших 8 Гб диска. 0x0B - це адресація CHS, яка має обмеження на 8 ГБ дисків. Тож без таких обмежень залишаються лише ідентифікатори: 0x07, 0x0C та 0x0E. Оскільки 0x0C і 0x0E використовуються для розділів FAT, я б запропонував вибрати 0x07 . Це означає для розділів IFS (Instalable File System) і відповідно до Вікіпедії, Microsoft додала підтримку UDF в API 2000 IFS для Windows 2000. Використання 0x0C або 0x0E призведе до того, що системи на базі DOS показують цей розділ як FAT, навіть він буде форматований як UDF. Розділи з MBR id 0x07 приховані в цих системах. Вони не підтримують UDF, тому кращий вибір як 0x0C або 0x0E.
GPT:
Макет розділів GPT не входить до цього питання, але він має подібну проблему, як MBR. Немає GUID розділу (еквівалент GPT для ідентифікатора MBR), призначений для UDF. Оскільки Windows XP x64 підтримує UDF і може розпізнавати розділ даних GPT лише за допомогою GUID EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (Microsoft Basic Data Partition), це єдиний можливий вибір для GPT.
Джерела:
(*) Є один виняток: для виявлення розширених розділів MBR використовуються ідентифікатори MBR 0x05, 0x0F та 0x85.
(**) Визначення цих двох викликів можна знайти у файлі WinIoCtl.h, оскільки вони оголошені як макроси C.
(***) Розширення BIOS INT 13h означає використання LBA замість CHS.