UDF的分区ID /文件系统类型是什么?


10

在UDF格式的CD / DVD / Blu-Ray上使用cfdisk进行检查可能很简单,但是我手边都没有。

我已经在USB硬盘驱动器上创建了UDF格式的分区,以便在Linux和Windows计算机之间共享数据(FAT无法处理4GB文件,NTFS访问权限支持在Linux下不稳定)。我现在只有一个问题-Windows将文件系统类型ID设置为“ 83”(“ Linux”)时拒绝挂载该分区。我已经看了很多遍,找不到应该放在那里的数字?

(后续:“ 我应使用哪种工具将硬盘驱动器格式化为UDF? ”)


2
我认为通过在CD,DVD或Blu-Ray上执行cfdisk不会获得任何有意义的结果。分区由MBR的几个字节设置,而MBR恰好存在于硬盘和笔式驱动器中,而不是软盘或光学介质中。
朱利诺2009年

Answers:


9

答案是分区类型06(FAT16)。不要问我为什么,请问Microsoft。


5年多以后,这个简单的答案极大地帮助了我。谢谢“ user48160”,无论您现在身在何处!
JakeGould 2015年

6

事实证明,没有用于UDF的分区表,也没有分配分区ID。该文件系统必须跨整个磁盘才能被Windows识别。将硬盘驱动器格式化为UDF不会触及现有的分区表(请注意-它将包含过时的信息,并且如果使用它来安装驱动器,则会破坏数据!)。

出于好奇,UDF 2.5和更高版本为元数据创建了单独的分区(每个磁盘一个或两个)。但是,这些分区在标准DOS分区表中也不可见。


1
只需格式化为UDF即可,而我的硬盘上的(MBR)逻辑分区之一和Windows 7都没有问题
MarcH 2011年

@MarcH:那么Windows或某些工具将哪个分区ID报告为具有该分区?(很难提问题,很抱歉,如果它的
格式

@Juaco向下滚动以获取答案。或看看BOOTICE。
MarcH 2012年

一些分区工具可让您创建没有文件系统的分区。正是您需要在Windows中为其分配驱动器号,然后再对其进行UDF格式化。
DanMan

3

简短答案:我建议使用MBR ID 对UDF分区 0x07


长答案:

Linux并不关心MBR分区ID,而忽略它(*)。

当且仅当IsRecognizedPartition(PartitionType)为true时,Windows 2000及更高版本才能将驱动器号分配给ID为PartitionType的某个分区。此外,对于非FT分区,必须保留IsFTPartition(PartitionType)为false(否则分区检测为FT,而不是普通的FAT / NTFS / UDF / ...)。

条件IsRecognizedPartition(PartitionType)&&!IsFTPartition(PartitionType)适用于以下MBR分区ID:0x01、0x04、0x06、0x07、0x0B,0x0C,0x0E(**)。这意味着,如果MBR分区ID是其中之一,则Windows 2000(和新版)可以识别和使用UDF分区。可能没有其他限制,任何受支持的文件系统都可以接受具有任何MBR ID的分区。这意味着这些MBR ID不用于检测文件系统。

但是,当使用特定的PartitionType时,Microsoft 有一些建议

  • 0x01-FAT12主分区或逻辑驱动器(卷中少于32,680个扇区)
  • 0x04-FAT16分区或逻辑驱动器(32,680–65,535扇区或16 MB–33 MB)
  • 0x06-BIGDOS FAT16分区或逻辑驱动器(33 MB–4 GB)
  • 0x07-可安装的文件系统(NTFS分区或逻辑驱动器)
  • 0x0B-FAT32分区或逻辑驱动器
  • 0x0C-使用BIOS INT 13h扩展(***)的FAT32分区或逻辑驱动器
  • 0x0E-使用BIOS INT 13h扩展名(***)的BIGDOS FAT16分区或逻辑驱动器

而且还意味着微软:

  • 0x01-指定具有12位FAT条目的分区。
  • 0x04-指定具有16位FAT条目的分区。
  • 0x06-指定MS-DOS V4巨大分区。
  • 0x07-指定一个IFS分区。
  • 0x0B-指定FAT32分区。
  • 0x0C-Windows 95/98:指定使用扩展INT 13服务的分区。

在Wikipedia上也可以找到一些建议:

  • 0x01-CHS / LBA-DOS 2.0+-FAT12作为磁盘的第一个物理32 MB中的主分区...(否则使用0x06)
  • 0x04-CHS / LBA-DOS 3.0+-FAT16少于65536个扇区(32 MB)...(否则请使用0x06)
  • 0x06-CHS / LBA-DOS 3.31+-具有65536或更多扇区的FAT16B。它必须驻留在磁盘的第一个物理8 GB中……(否则请使用0x0E)。如果主分区中的FAT12和FAT16卷不位于磁盘的前32 MB物理磁盘中,也可用于它们。
  • 0x07-CHS / LBA-OS / 2 1.2 +,Windows NT / CE-IFS / HPFS / NTFS / exFAT / QNX
  • 0x0B-CHS / LBA-DOS 7.1+-带有CHS寻址的FAT32
  • 0x0C-LBA-DOS 7.1+-带有LBA的FAT32
  • 0x0E-LBA-DOS 7.0+-带有LBA的FAT16B

要完成ID列表,以下是一些有关不支持UDF格式的硬盘分区的较旧系统的信息。

Windows NT 4.0和更早版本只能将驱动器号分配给MBR ID为0x01、0x04、0x06、0x07的分区。

基于DOS的Windows(95、98和ME)只能将驱动器号分配给具有MBR ID的分区:0x01、0x04、0x06、0x0B,0x0C,0x0E。MS-DOS本身只能访问具有MBR ID:0x01、0x04、0x06的分区。请注意,这些系统使用MBR分区ID来检测文件系统。MBR分区ID必须与分区上的文件系统匹配。

结论:

查看分区大小:0x01和0x04仅应用于前32MB磁盘中的分区。仅在前8GB磁盘中为0x06。0x0B用于CHS寻址,最多可使用8GB磁盘。因此,没有此类限制的只有id:0x07、0x0C和0x0E。因为0x0C和0x0E用于FAT分区,所以我建议选择0x07。这是指IFS(可安装文件系统)分区,根据Wikipedia的介绍,Microsoft在Windows 2000 IFS API中增加了对UDF的支持。使用0x0C或0x0E会使基于DOS的系统将该分区显示为FAT,即使将其格式化为UDF。在这些系统上隐藏了MBR ID为0x07的分区。它们不支持UDF,因此最好选择0x0C或0x0E。

GPT:

GPT分区布局是没有这个问题的,但是它具有与MBR类似的问题。没有为UDF分配分区GUID(等效于MBR id的GPT)。因为Windows XP x64支持UDF,并且只能使用GUID EBD0A0A2-B9E5-4433-87C0-68B6B72699C7(Microsoft基本数据分区)来识别GPT数据分区,所以它是GPT的唯一选择。

资料来源:

(*)有一个例外:MBR ID 0x05、0x0F和0x85用于检测扩展的MBR分区。
(**)这两个调用的定义可以在WinIoCtl.h文件中找到,因为它们被声明为C宏。
(***)BIOS INT 13h扩展意味着使用LBA代替CHS。


该页面指示0x0E分区必须小于2 GiB。这意味着对于UDF,它必须是0x07或0x0C。后者对我来说听起来更好,尤其是当您阅读链接的页面时。令人印象深刻的研究,脱颖而出!
Milind R

2

在我处理的CD和DVD上,没有分区表。在USB硬盘驱动器上,您已将分区表写入媒体。我怀疑如果将整个驱动器格式化为不带分区表的UDF磁盘,Windows将不会出现问题。

您没有说出USB驱动器的大小,并且您可能不愿意将整个驱动器指定为UDF,您可以尝试将分区类型设置为fdisk为NTFS或其他MS“受支持”类型之一。


我还从同一驱动器引导Linux,因此我需要一个分区具有grub支持的格式。我刚刚发现grub2(实验性的)可以从UDF引导Linux,因此我将尝试这样做。
skolima,2009年

0

我有同样的问题。我的USB硬盘为320GB。分区表如下所示:

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版本。Windows XP及更高版本可以读取1.5和1.5。Linux当然可以正确读取它。Windows却感到困惑。它将分区识别为NTFS,然后假定它是原始分区。

我在pendrive上对UDF进行的实验表明,系统倾向于将UDF与FAT相混淆。他们将UDF解释为FAT。它必须具有很大的相似性,因为我可以看到随机字符的目录结构。Linux说该磁盘已损坏,但它不拒绝使用它。

我认为USB驱动器不很好地支持UDF(至少1.5版)。


1
如果该介质曾经具有FAT,则可能会残留导致UDF与FAT混淆的介质。在使用UDF进行格式化之前,您应确保FAT已擦除/清零。
osvein
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.