Який тип ідентифікатора розділу / файлової системи для UDF?


10

Це, мабуть, банально перевірити за допомогою cfdisk на форматі CD / DVD / Blu-Ray у форматі UDF, але я не маю жодної з них під рукою.

Я створив розділ у форматі UDF на жорсткому диску USB для обміну даними між комп'ютерами Linux та Windows (FAT не обробляє файли 4 Гб, підтримка прав доступу до NTFS не стабільна в Linux). Зараз у мене є лише одна проблема - Windows відмовляється монтувати розділ, оскільки для типу файлової системи встановлено значення "83" ("Linux"). Я роздивився доволі обширно і не можу знайти, яке число мені туди поставити?

(далі: " За допомогою якого інструменту я повинен форматувати жорсткий диск як UDF? ")


2
Я не думаю, що ви отримаєте якісь значущі результати від виконання cfdisk на CD, DVD або Blu-Ray. Розділи встановлюються декількома байтами MBR, які, як буває, існують на жорстких дисках і ручках, а не на дискетах чи оптичних носіях.
Джуліано

Відповіді:


9

Відповідь - тип розділу 06 (FAT16). Не запитуйте мене, чому, запитайте Microsoft.


Через 5 років ця проста відповідь надзвичайно допомогла мені. Дякую "user48160", хто б і де б ви не були зараз!
JakeGould

6

Виявляється, немає таблиці розділів для UDF і не призначений їй ідентифікатор розділу. Ця файлова система повинна охоплювати весь диск в нерівності, щоб розпізнати Windows. Форматування жорсткого диска під час UDF не торкається існуючої таблиці розділів (будьте обережні - він буде містити застарілу інформацію, і якщо ви змонтуєте свій диск, використовуючи його, ви знищите дані!).

Як цікавість - UDF 2.5 і новіші створюють окремі розділи (один або два на диск) для метаданих. Однак ці розділи також не відображаються в стандартній таблиці розділів DOS.


1
Щойно відформатований як UDF один із (MBR) логічних розділів на моєму жорсткому диску і Windows 7 не мав з цим проблем
MarcH

@MarcH: тож про який ідентифікатор розділу Windows чи якийсь інструмент повідомляють про розділ? (У мене виникли проблеми сформулювати питання, вибачте, якщо він погано сформований)
ата

@Juaco прокрутіть униз для відповіді. Або подивіться на BOOTICE.
Марч

Деякі інструменти розділення дозволяють створювати розділи без файлової системи. Саме те, що вам потрібно, щоб призначити йому букву диска в Windows, а потім відформатувати UDF.
DanMan

3

Коротка відповідь: Я б запропонував використовувати 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.


На цій сторінці вказується, що розділи 0x0E повинні бути меншими за 2 Гб. Що означає, що для UDF вона повинна бути або 0x07, або 0x0C. Останнє для мене звучить краще, особливо коли ви читаєте пов’язану сторінку. Вражаючі дослідження, шапки геть!
Milind R

2

У компакт-дисках та DVD-дисках, з якими я маю справу, немає таблиці розділів. На вашому жорсткому диску USB ви написали таблицю розділів на носії. Я підозрюю, що якщо ви форматуєте весь диск як диск UDF без таблиці розділів, Windows не матиме проблем із його встановленням.

Ви не кажете, якого розміру має ваш USB-накопичувач, і, можливо, ви не хочете присвячувати весь диск як UDF, ви можете спробувати встановити тип розділу за допомогою fdisk як NTFS або одного з інших типів MS, що підтримуються.


Я також завантажую Linux з того самого диска, тому мені потрібен один розділ формату, підтримуваного grub. Я щойно дізнався, що grub2 (експериментальний) може завантажувати Linux з UDF, тому я спробую це.
skolima

0

У мене така ж проблема. Мій жорсткий диск USB - 320 Гб. Таблиця розділів виглядає так:

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

Розділ sda5 є версією UDF. 1.5 і має читати Windows XP і вище. Linux, звичайно, читає його належним чином. Однак Windows заплутана. Він розпізнає розділ як NTFS, а потім припускає, що це сирий розділ.

Мій експеримент з UDF на pendrive показав мені, що системи, як правило, помиляються UDF з FAT. Вони трактують UDF як FAT. Це має бути досить велика подібність, тому що я бачу структуру каталогів випадкових символів. Linux каже, що диск пошкоджений, але він не відмовляється ним користуватися.

Я думаю, що UDF (принаймні rev 1.5) не підтримується на USB-накопичувачах.


1
Якщо в середовищі, де використовується FAT, можуть виникнути залишки, що спричиняють плутання UDF з FAT. Ви повинні переконатися, що FAT витирається / нулюється перед форматуванням у форматі UDF.
osvein
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.