Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
File Allocation Table
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
=== <span id="FAT16B"></span><span id="FAT16X"></span>Final FAT16 === {{infobox file system | name = FAT16B | developer = [[Compaq]], [[Digital Research]], [[IBM]], [[Microsoft]], [[Novell]] | full_name = [[Design of the FAT file system#FAT16|16-bit File Allocation Table]]<br />(with 32-bit sector entries) | introduction_date = {{ubli | 1987-11 ([[Compaq MS-DOS 3.31]]) | 1988-06-28 ([[DR DOS 3.31]]) | 1988 ([[IBM DOS 4.0]]) | 1988 ([[OS/2 1.1]]) | 1988 ([[MS-DOS 4.0 (IBM-developed)|MS-DOS 4.0]]) }} | partition_id = [[Master Boot Record|MBR]]/[[Extended Boot Record|EBR]]:{{ubli | [[#FAT16B|FAT16B]]: <code>{{abbr|0x|Values in C-notation for hexadecimal numbers}}[[Partition type#PID_06h|06]]</code><code>[[Partition type#PID_0Eh|0x0E]]</code> ([[Logical block addressing|LBA]]), e.a. | [[Basic data partition|BDP]]: <code>EBD0A0A2-B9E5-4433-87C0-68B6B72699C7</code> }} | min_volume_size = {{ubli | 8 [[megabyte|MB]] (with 128 byte sectors) | 32 MB (with [[512e|512]] byte sectors) | 256 MB (with [[4Kn|4 KB]] sectors) }} | max_volume_size = {{ubli | 2 [[gigabyte|GB]] (with 32 [[kilobyte|KB]] clusters) | 4 GB (with 64 KB clusters) (NT 4, PTS-DOS, EDR-DOS) | 8 GB (with 128 KB clusters and <!-- 128 s/c -->1 or <!-- 64 s/c -->2 KB sectors) (NT 4 and EDR-DOS only) | 8 GB (with 128 KB clusters and <!-- 256 s/c -->512 byte sectors) (EDR-DOS only) | 16 GB (with 256 KB clusters and <!-- 128 s/c -->2 or <!-- 64 s/c -->4 KB sectors) (NT 4 only) }} | max_file_size = {{ubli | 2,147,483,647 bytes (2 GB β 1)<!-- 2^31 β 1 --> (without [[large file support|LFS]]) | 4,294,967,295 bytes (4 GB β 1)<!-- 2^32 β 1 --> (with [[large file support|LFS]]) | limited by volume size only (with FAT16+<ref name="DRDOS_FAT+_R2" />) }} | file_size_granularity = 1 byte | max_files_no = 65,460 for 32 KB clusters<!-- 2^16 β 12 (reserved clusters) β 64 (number of 32 KB clusters for directory entries) --> | max_filename_size = [[8.3 filename]] with [[OEM character set|OEM]] characters, <br />255 [[UCS-2]] characters<ref group="nb" name="NB_LFN_UNI"/> when using [[Long filename|LFN]] | max_directory_depth = 32 levels or 66 characters (with [[Current Directory Structure|CDS]]), <br />60 levels or more (without CDS) | dates_recorded = {{ubli | Modified date/time, creation date/time (DOS 7.0 and higher only), | access date (only available with [[ACCDATE (CONFIG.SYS directive)|ACCDATE]] enabled),<ref name="Microsoft_2006_ACCDATE" /> | deletion date/time (only with DELWATCH 2<!-- with Novell DOS 7, Caldera OpenDOS 7.01, DR-DOS 7.02 and higher -->) }} | date_range = [[Epoch of 1980-01-01|1980-01-01]] to [[Year 2100 problem|2099-12-31]] ([[Year 2108 problem|2107-12-31]]) | date_resolution = {{ubli | 2 seconds for last modified time, | 10 ms for creation time, | 1 day for access date, | 2 seconds for deletion time }} | attributes = [[FAT file attributes|Read-only]], [[FAT file attributes|hidden]], [[FAT file attributes|system]], [[FAT file attributes|volume]], [[FAT file attributes|directory]], [[FAT file attributes|archive]] | file_system_permissions = {{ubli | File, directory and volume access rights for [[FAT file access rights|read]], [[FAT file access rights|write]], [[FAT file access rights|execute]], [[FAT file access rights|delete]] only with [[DR-DOS]], [[PalmDOS]], [[Novell DOS]], [[OpenDOS]], [[FlexOS]], [[IBM 4680 OS|4680 OS]], [[IBM 4690 OS|4690 OS]], [[Concurrent DOS]], [[Multiuser DOS]], [[Datapac System Manager|System Manager]], [[REAL/32]]:{{ubli | execute right only with FlexOS, 4680 OS, 4690 OS; | individual file / directory passwords not with FlexOS, 4680 OS, 4690 OS<!-- at least I could not find any user or programmer's documentation for it so far -->; | [[FAT file access rights|world]]/[[FAT file access rights|group]]/[[FAT file access rights|owner]] permission classes only with multiuser security loaded }} }} | compression = Per-volume, [[SuperStor]], [[Stacker (disk compression)|Stacker]], [[DoubleSpace]], [[DriveSpace]] | encryption = Per-volume only with [[DR-DOS]] }} In November 1987, [[Compaq MS-DOS 3.31|Compaq Personal Computer DOS 3.31]] (a modified OEM version of MS-DOS 3.3 released by Compaq with their machines) introduced what today is simply known as ''the FAT16'' format, with the expansion of the 16-bit disk sector count to 32 bits in the BPB. Although the on-disk changes were minor, the entire DOS disk driver had to be converted to use 32-bit sector numbers, a task complicated by the fact that it was written in 16-bit [[x86 assembly language|assembly language]]. The result was initially called the ''DOS 3.31 Large File System''. [[Microsoft]]'s <code>[[DSKPROBE]]</code> tool refers to type <code>[[Partition type#PID_06h|0x06]]</code> as ''BigFAT'',<ref name="Microsoft_2003_CC736327" /> whereas some older versions of <code>[[FDISK]]</code> described it as ''BIGDOS''. Technically, it is known as '''FAT16B'''. Since older versions of DOS were not designed to cope with more than 65,535 sectors, it was necessary to introduce a new partition type for this format in order to hide it from pre-3.31 issues of DOS. The original form of FAT16 (with less than 65,536 sectors) had a [[partition type]] <code>[[Partition type#PID_04h|0x04]]</code>. To deal with disks larger than this, type <code>[[Partition type#PID_06h|0x06]]</code> was introduced to indicate 65,536 or more sectors. In addition to this, the disk driver was expanded to cope with more than 65,535 sectors as well. The only other difference between the original FAT16 and the newer FAT16B format is the usage of a [[DOS 3.31 BPB|newer BPB]] format with 32-bit sector entry. Therefore, newer operating systems supporting the FAT16B format can cope also with the original FAT16 format without any necessary changes. If partitions to be used by pre-DOS 3.31 issues of DOS need to be created by modern tools, the only criteria theoretically necessary to meet are a sector count of less than 65536, and the usage of the old partition ID (<code>[[Partition type#PID_04h|0x04]]</code>). In practice however, type <code>[[Partition type#PID_01h|0x01]]</code> and <code>[[Partition type#PID_04h|0x04]]</code> primary partitions should not be physically located outside the first 32 MB of the disk, due to other restrictions in MS-DOS 2.x, which could not cope with them otherwise. In 1988, the FAT16B improvement became more generally available through [[DR DOS]] 3.31, PC DOS 4.0, [[OS/2]] 1.1, and MS-DOS 4.0. The limit on partition size was dictated by the 8-bit [[Signedness|signed]] count of sectors per cluster, which originally had a maximum power-of-two value of 64. With the standard hard disk sector size of 512 bytes, this gives a maximum of 32 KB cluster size, thereby fixing the "definitive" limit for the FAT16 partition size at 2 GB for sector size 512. On [[magneto-optical]] media, which can have 1 or 2 KB sectors instead of 0.5 KB, this size limit is proportionally larger. Much later, [[Windows NT]] increased the maximum cluster size to 64 KB, by considering the sectors-per-cluster count as unsigned. However, the resulting format was not compatible with any other FAT implementation of the time, and it generated greater [[internal fragmentation]]. [[Windows 98]], SE and ME also supported reading and writing this variant, but its disk utilities did not work with it and some [[File control block|FCB]] services are not available for such volumes. This contributes to a confusing compatibility situation. Prior to 1995, versions of DOS accessed the disk via [[Cylinder-head-sector|CHS]] addressing only. When [[Windows 95]](MS-DOS 7.0) introduced [[Logical block addressing|LBA]] disk access, partitions could start being physically located outside the first c. 8 GB<!-- exact value is somewhat smaller --> of this disk and thereby out of the reach of the traditional CHS addressing scheme. Partitions partially or fully located beyond the CHS barrier therefore had to be hidden from non-LBA-enabled operating systems by using the new partition type <code>[[Partition type#PID_0Eh|0x0E]]</code> in the partition table instead. FAT16 partitions using this partition type are also named '''FAT16X'''.<ref name="Microsoft_2004_KB120138" /> The only difference, compared to previous FAT16 partitions, is the fact that some CHS-related geometry entries in the BPB record, namely the number of sectors per track and the number of heads, may contain no or misleading values and should not be used. The number of root directory entries available for FAT12 and FAT16 is determined when the volume is formatted, and is stored in a 16-bit field. For a given number <code>RDE</code> and sector size <code>SS</code>, the number <code>RDS</code> of root directory sectors is <code>RDS = ceil((RDE Γ 32) / SS)</code>, and <code>RDE</code> is normally chosen to fill these sectors, i.e., <code>RDE Γ 32 = RDS Γ SS</code>. FAT12 and FAT16 media typically use 512 root directory entries on non-floppy media. Some third-party tools, like mkdosfs, allow the user to set this parameter.<ref name="MKDOSFS" />
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)