MBR Partition Type Identifier

The “type” of partition is used by an operating system to determine what kind of file system(s) is/are likely to be included in a partition. (More discussion about filesystems may be found in the section about filesystems, and specifically its subsections about kind of file system(s) and determining which filesystem to use. )

Software which allows users to modify the value will often show a chart. However, such charts are not universally the same on all partition types. For partition types where such charts show different values, some implementations may be showoing less popular/common uses of the partition type identifier value.; Perhaps the reason is that the less popular use, being shown, had historically pre-dated the newer, more common usage. Therefore, web references are great to know about.

Here are some:

Windows and GPT FAQ, and earlier versions of that documentation (such as Microsoft Windows Hardware Dev Center: Windows and GPT FAQ Version 1.1 (as archived by the Wayback Machine @ Archive.org from Feburary 19, 2011)) say, “ IBM originally provided that coordination; today there is no single authoritative list of partition identifiers.” It seems that Microsoft is just rejecting the idea of any of the above lists being sufficiently “authoritative”.

[#dosprtyp]: Common partition types of DOS and similar (OS/2, Microsoft Windows)

(Information is also at: FAT's Partition “type” identifiers.)

Simple info about small drives

Microsoft KB Q69912: MS-DOS Partitioning Summary shows that type 0x01 is used for FAT12 which is used for drives under 16MB in size. (The article frequently refers to a 15MB maximum size. Microsoft KB Q151414: Win9x Partition Types Not Recognized by WinNT explains that type 0x01 is meant for FAT12 under 10MB, although that 10MB size seems less likely to be accurate. However, Q69912 notes in the MS-DOS 4.0 section that “15-MB size limitation extended in version 3.0.”, so maybe there was an even smaller limit before then.)

Microsoft KB Q69912: MS-DOS Partitioning Summary provides an overview of what is supported by various versions of operating systems, and shows that MS-DOS 3.0 supported type 0x04 is meant for FAT16 drives from 16MB to 32 MB (at least if it is not a logical drive in an extended partition).

For other types, it may be important to know whether LBA INT13h extensions should be used.

LBA INT13h support in Win9x

People using drives above 1,024 cylinders may need to use the INT13h extensions that provide support for LBA. Supporting these extensions may involve specifying a different partition type.

Commonly, the limit to stay within 1,024 cylinders x 16 Heads x 63 sectors per track x 512 bytes per track = 528,482,304 bytes (516,096 KB=504MB, and sometimes called the 528MB limit because it is a bit over 528 million bytes).

Type 0x0E is like 0x06 (FAT16 primary without INT13), and 0x0F is like 0x05 (Extended partitions), and the newer 0x0C is like 0x0B (FAT16 primary with INT13), but the higher-numbered types just listed indicate that LBA INT13h extensions should be used. For these partition types, Microsoft KB Q69912: MS-DOS Partitioning Summary indicates that software “should use the (LBA) INT13h extension's read/write functions to read from or write to the drive instead of the normal Cylinder/Head/SectorPerTrack (CHS) INT13h functions because the hard disk has more than 1024 cylinders and/or more than 16,711,680 sectors. Note that earlier versions of FDISK recognize these Windows 95 partitions as NON-DOS partitions.” (This isn't something that most software needs to worry about, since most software (like a common text file editor) will simply use the overhead of the operating system's support for using a specific filesystem.

(The following info info may sometime move to a section about hard drive limits.) Microsoft KB Q69912: MS-DOS Partitioning Summary refers to a maximum limit of 16,711,680 sectors, with half a kilobyte per sector, equates to 8,160 MB. However, hard drive geometry may end up meaning the maximum size is actually a bit under that. Most hard drives of at least this size will likely be using a geometry of 63 tracks (which are typically written out with a standard one-based count), and probably using 256 heads (also typically written out with a zero-based count, so the “head” identifiers would typically be head number zero through head number 255). With half-kilobyte sectors, this equates to 8,257,536 bytes (8,064 KB, a.k.a. 7.875MB) per cylinder. With a maximum of 1,024 cylinders (which may typically be written out with a zero-based count, so the maximum numbers are cylinder number 1,023) and 8,064KB per cylinder, the limit ends up being 8,064 MB (8,455,716,864 bytes). (If the geometry is using a 1-based count for heads and the hard drive reports only 255 heads instead of 256 heads, this would result in 255x63x512=8,225,280 bytes=8,032.5KB per cylinder. Again, 1024 cylinders means the maximum megabytes total equals the maximum kilobytes per cylinder. This would result in a limit of 8,032.5 MB.)

Partition type notes for OS/2

OS/2 does not support the 0x0f partition type. Andries Brouwer's “Partition types: Properties of partition tables”, section 2.12 (section called “Details for various operating systems”). “OS/2 FDISK does not know about type f, but accepts DOS Extended Partitions extending beyond cylinder 1023. When some other partition handler, like Partition Magic 4.0, changes the type of a large extended partition from 05 to 0f, OS/2 loses access.”

(It seems likely that OS/2 likely does not support the 0x0E type that Microsoft introduced when Microsoft dediced specific partition types for filesystems where LBA INT13h should be used.)

More details when using over 32MB

The next consideration for partitions of at least 32MB is whether the partition is going to be an extended partition or not. If so, the drive type is going to be 0x05 for a partition that is 1,024 cylinders or less, and 16,711,680 sectors or less. OS/2 will use 0x05 even for larger hard drives. Microsoft operating systems will not use 0x05 for larger hard drives. Microsoft KB Q69912: MS-DOS Partitioning Summary shows that Windows 95 and newer will use 0x0f for an extended partition that isn't expected to support FAT32. If the system is using LBA and is expected to use FAT32, Microsoft KB Q69912: MS-DOS Partitioning Summary Windows 95 Operating System Release 2 (Win95 OSR2) will use 0x0C. (However, that may be unclear: 0x0C might be for the actual data partition. Microsoft KB Q114841.)

For non-extended partitions, there are several partition types based on factors like the filesystem type and the partition size. For an “Installable filesystem” (“IFS”), including OS/2's HPFS, and including NTFS, the partition type of 0x07 may be used. For FAT32 filesystems that use LBA INT13h, the partition type is going to be 0x0C. Other FAT32 filesystems may use 0x0B.

For FAT16, the drive type is going to be 0x06 for a partition that is 1,024 cylinders or less, and 16,711,680 sectors or less. (It seems likely that OS/2 likely does not support the 0x0E type that Microsoft introduced when Microsoft dediced specific partition types for filesystems where LBA INT13h should be used. Therefore, 0x06 is likely used under OS/2 even for larger drives.) (Microsoft KB Q247804, which might be citing Linux, shows this partition type identifer may be given a name of something like FAT > 32M. Microsoft KB Q114841: Windows NT Boot Process and Hard Disk Constraints calls this partition type “BIGDOS”.) For FAT16 drives that exceed this size, Microsoft operating systems that support such drive sizes (Win95 OSR2 and later) will use 0x0E which is meant to indicate that INT13h (28-bit LBA extensions) should be used when accessing the drive.

Variations
Microsoft KB Q114841: Windows NT Boot Process and Hard Disk Constraints says, “When a partition is a part of a Fault Tolerant (FT) set, Windows NT sets the high bit of the System Indicator to distinguish it from non-FT partition of the same type. For example, an FT FAT partition has a System Indicator value of 0x86 and an FT NTFS partition has a System Indicator value of 0x87.” “When a member of an FT set is disabled, Windows NT sets the two highest bits. For example, a disabled FAT partition has a System Indicator value of 0xC6 and a disabled FT NTFS partition has a System Indicator value of 0xC7.”
List of identifiers

Many programs will contain a list of some popular partition types. (In some cases, this list of partition types might be implemented through various pre-existing menu options.) If there are any name mismatches between different programs, the names have no impact. What gets stored on disk, and used by software, is simply the bits that represent the partiion type's number.

[#obfdprtp]: Identifiers listed in OpenBSD's fdisk

From OpenBSD 4.4's fdisk:

Partition id ('0' to disable)  [0 - FF]: [6] (? for help) ?
Choose from the following Partition id values:
00 unused         20 Willowsoft     67 Novell         AB MacOS X boot
01 DOS FAT-12     24 NEC DOS        68 Novell         AF MacOS X HFS+
02 XENIX /        38 Theos          69 Novell         B7 BSDI filesy*
03 XENIX /usr     39 Plan 9         70 DiskSecure     B8 BSDI swap
04 DOS FAT-16     40 VENIX 286      75 PCIX           BF Solaris
05 Extended DOS   41 Lin/Minux DR   80 Minix (old)    C0 CTOS
06 DOS > 32MB     42 LinuxSwap DR   81 Minix (new)    C1 DRDOSs FAT12
07 HPFS/QNX/AUX   43 Linux DR       82 Linux swap     C4 DRDOSs < 32M
08 AIX fs         4D QNX 4.2 Pri    83 Linux files*   C6 DRDOSs >=32M
09 AIX/Coherent   4E QNX 4.2 Sec    84 OS/2 hidden    C7 HPFS Disbled
0A OS/2 Bootmgr   4F QNX 4.2 Ter    85 Linux ext.     DB CPM/C.DOS/C*
0B Win95 FAT-32   50 DM             86 NT FAT VS      DE Dell Maint
0C Win95 FAT32L   51 DM             87 NTFS VS        E1 SpeedStor
0E DOS FAT-16     52 CP/M or SysV   8E Linux LVM      E3 SpeedStor
0F Extended LBA   53 DM             93 Amoeba FS      E4 SpeedStor
10 OPUS           54 Ontrack        94 Amoeba BBT     EB BeOS/i386
11 OS/2 hidden    55 EZ-Drive       99 Mylex          EE EFI GPT
12 Compaq Diag.   56 Golden Bow     9F BSDI           EF EFI Sys
14 OS/2 hidden    5C Priam          A0 NotebookSave   F1 SpeedStor
16 OS/2 hidden    61 SpeedStor      A5 FreeBSD        F2 DOS 3.3+ Sec
17 OS/2 hidden    63 ISC, HURD, *   A6 OpenBSD        F4 SpeedStor
18 AST swap       64 NetWare 2.xx   A7 NEXTSTEP       FF Xenix BBT
19 Willowtech     65 NetWare 3.xx   A8 MacOS X
1C ThinkPad Rec   66 NetWare 386    A9 NetBSD
Partition id ('0' to disable)  [0 - FF]: [6] (? for help)

Sometime by OpenBSD 5.3's fdisk, the list has added type 27 and changes the name of type 7.

Partition id ('0' to disable)  [0 - FF]: [6] (? for help) ?
Choose from the following Partition id values:
00 unused         20 Willowsoft     66 NetWare 386    A9 NetBSD
01 DOS FAT-12     24 NEC DOS        67 Novell         AB MacOS X boot
02 XENIX /        27 Win Recovery   68 Novell         AF MacOS X HFS+
03 XENIX /usr     38 Theos          69 Novell         B7 BSDI filesy*
04 DOS FAT-16     39 Plan 9         70 DiskSecure     B8 BSDI swap
05 Extended DOS   40 VENIX 286      75 PCIX           BF Solaris
06 DOS > 32MB     41 Lin/Minux DR   80 Minix (old)    C0 CTOS
07 NTFS           42 LinuxSwap DR   81 Minix (new)    C1 DRDOSs FAT12
08 AIX fs         43 Linux DR       82 Linux swap     C4 DRDOSs < 32M
09 AIX/Coherent   4D QNX 4.2 Pri    83 Linux files*   C6 DRDOSs >=32M
0A OS/2 Bootmgr   4E QNX 4.2 Sec    84 OS/2 hidden    C7 HPFS Disbled
0B Win95 FAT-32   4F QNX 4.2 Ter    85 Linux ext.     DB CPM/C.DOS/C*
0C Win95 FAT32L   50 DM             86 NT FAT VS      DE Dell Maint
0E DOS FAT-16     51 DM             87 NTFS VS        E1 SpeedStor
0F Extended LBA   52 CP/M or SysV   8E Linux LVM      E3 SpeedStor
10 OPUS           53 DM             93 Amoeba FS      E4 SpeedStor
11 OS/2 hidden    54 Ontrack        94 Amoeba BBT     EB BeOS/i386
12 Compaq Diag.   55 EZ-Drive       99 Mylex          EE EFI GPT
14 OS/2 hidden    56 Golden Bow     9F BSDI           EF EFI Sys
16 OS/2 hidden    5C Priam          A0 NotebookSave   F1 SpeedStor
17 OS/2 hidden    61 SpeedStor      A5 FreeBSD        F2 DOS 3.3+ Sec
18 AST swap       63 ISC, HURD, *   A6 OpenBSD        F4 SpeedStor
19 Willowtech     64 NetWare 2.xx   A7 NEXTSTEP       FF Xenix BBT
1C ThinkPad Rec   65 NetWare 3.xx   A8 MacOS X
id ('0' to disable)  [0 - FF]: [6] (? for help)

The names for partition types A5, A6, and A9 reflect operating systems. They, and probably A8/AB/AF (and maybe B7/B8), all use FFS(2)/UFS(2). These systems are fairly unique in that very similar, or even fully compatible, filesystems may use different partition types depending on what operating system is expected to boot. Partition type 83 has traditionally been Ext2. Partition type 83 has been used for Extfs (Ext2fs) and ReiserFS. Partition 7 might best be referred to as “IFS”, which stands for “Installable filesystem”. OnTrack and EZ-Drive are Dynamic Drive Overlay software. SpeedStor (types 0x61, 0xE1, 0xE3, 0xE4, 0xF1) is a form of compressed hard disk technology. MS KB Q78675 says “SpeedStor often uses the same partition type as several varieties of UNIX.” indicates that this partition type may be used by other software (Unix).