Lecture 1

advertisement
Lecture 9: The FAT and VFAT
Filesystems
6/16/2003
CSCE 590
Summer 2003
Disk Drive Review
• Disks or platters of magnetic material
– Can be one or two sided
– Rated to hold a certain amount of magnetic charge
• Motor to spin the disks
• Set of read/write/erase heads
– Read/write heads sandwiched between two erase heads
• Actuator (stepper motor) to position heads
• Interface (circuitry) to transfer data to and from
disk
Disk Drive
http://www.ntfs.com/hard-disk-basics.htm
Low Level Formatting
• Setting down a series of concentric circles
(tracks) on each disk
• Division of tracks into wedge shaped
sectors
– A sector holds 512 bytes
– Smallest physical storage unit on disk
– Sectors are numbered starting with 1
• Numbers of tracks and sectors is
standardized
Tracks
• 1024 tracks on a side of a platter in a hard disk
• 80 tracks per side on a 3.5” HD floppy
• Outside track is numbered 0
– Old days innermost track is numbered 1023 (BIOS
limitation)
– Large Block Addressing (LBA) tricks the BIOS into
handling bigger, more complicated modern disks
• In a stack of platters, the nth track on each side of
each platter makes up the nth cylinder
– When all heads are in the same position on the disk
– Older disk drives would identify a sector by
cylinder/head/sector notation
Sectors
• Outside of disk spins faster than inside.
• Old days, fixed number of sectors on a track (63)
– Data density increased towards the center of the disk
• Now, use zoned-bit recording where there are
more sectors towards the outside of the disk
– The raw data transfer rate is greater on the outside
tracks or zones, and we write to the outside (0th) track
first, so drive appears to get slower as it ages!
– Why modern hard drives are low level formatted at the
factory
Sectors
http://www.pctechguide.com/04disks.htm
Any sector can be referenced by its platter number, side
number (0 or 1), track and sector numbers
Starting and Ending Head, Sector and
Cylinder
•
•
•
•
•
•
•
•
•
Maximum Formatted Capacity =
(sector size) x (sectors per track) x (cylinders) x (heads)
Ranges of values
– Head fields (1 byte) ~ range 0 to 28 – 1 = 256 values
– Sector fields (6 bits) ~ range 0 to 26 – 1 = 64 values
– Cylinder fileds (10 bits) ~ range 0 to 210 – 1 = 1024 values
Maximum Formatted Capacity
= (sector size) x (sectors per track) x (cylinders) x (heads)
= 512 x 64 x 1024 x 256
= 29 x 26 x 210 x 28
= 233
= 23 x 230
= 8,455,716,864 = 7.8 GB
High Level Formatting
• Placing a series of tables, data structures,
and code into the first few sectors of the
disk
• Master Boot Record (MBR)
– In very first sector (cylinder 0, head 0, sector 1)
– Contains master partition table
– And boot code
Master Boot Record
• Processor always starts executing at the same
place on boot
• BIOS loads initial boot program from MBR that
starts the process of loading the operating system
• Boot program checks the Partition Table and
identifies system partition
• Loads the system’s Partition Boot Sector into
memory and transfer control to the executable
code in the Partition Boot Sector
Partition Table
• Each entry 16 bytes long
• Maximum four entries
• Boot Indicator field for x-86 based computers
– RISC computers use the NVRAM contains info on
where to boot
• System ID Field – describes the type of file
system used to format the volume
Partition Table Format
Byte offset
00
Field Length
1 byte
Sample Value
0x80
Meaning
Boot Indicator
00 = Do not use for booting
08 = System partition
01
1 byte
0x01
Starting Head
02
6 bits
0x01
Starting Sector
03
10 bits
0x00
Starting Cylinder
04
1 byte
0x06
System ID (volume type)
05
1 byte
0x0F
Ending Head
06
6 bits
0x3F
Ending Sector
07
10 bits
0x196
Ending Cylinder
08
4 bytes
3F 00 00 00
Relative Sector
12
4 bytes
51 42 06 00
Total Sectors
Extended Partitions
• Used when there are more than four partitions
• Not used for bootable/system partitions
• Can create any number of logical volumes in an
extended partition
• The entry in the Partition Table for an extended
partition points to the first sector of the extended
partition, which is another Partition Table
Extended Partition Table
• Entries contain:
– Current logical drive
– Info about the next logical drive
– Entries three and four are all zeroes
• Each logical drive has its own Partition
Table that points to the next logical drive
File Allocation Table (FAT)
• The FAT file System is a simple file system.
• The File Allocation Table resides at the start of the volume
• Duplicate copy maintained for recovery
Partition Boot Fat-1
Sector
Fat-2
Duplicate
Root Folder Other folders and files
• In the FAT file system space is allocated in clusters.
• The size of the default cluster is determined by the size of
the volume
• The cluster number must fit in 16 bits and be a power of 2.
Differences Between FAT
Systems
System
Bytes per
Cluster
Cluster Limit
FAT12
1.5
Number of Clusters <= 4087
FAT16
2
4087 <= # Clusters <= 65526
FAT32
4
65526 <= # Clusters <= 268,435,456
FAT Partition Boot Sector
• The Partition Boot Sector contains information to access
the volume
• Fields in Partition Boot Sector
Byte offset
Field Length
Sample Value
Meaning
00
3 bytes
EB 3C 90
Jump Instruction
03
8 bytes
MSDOS5.0
OEM Name in Text
0B
25 bytes
BIOS Parameter Block
24
26 bytes
Ext. BIOS Par. Block
3E
448 bytes
Bootstrap Code
1FE
2 bytes
0x55AA
Sector End Marker
BIOS Parameter Block and
Extended Parameter Block Fields
• Contains specific information about the
volume, such as:
– Bytes per sector.
– Sectors per cluster
– Number of reserved sectors before the first
FAT
– Number of FATs.
– Number of root directory entries (max limit)
File Allocation System
• Uses a File Allocation Table to to organize the file
system and keep track of cluster usage
• Two copies of the FAT are kept (in older versions
of FAT, adjacent to each other, in the same cluster)
• Files are given first available cluster in the
partition
• Also uses folders to indicate where in the FAT the
info for a file may be
File Allocation Table Information
• Information on clusters
–
–
–
–
Unused 0x0000 (free)
Cluster in use by a file
Bad cluster (0xFFF7)
Last cluster in a file (0xFFF8-0xFFFF)
• If a file consists of multiple clusters then the end of the
first cluster contains a link to the next cluster in the file.
• Example http://www.ntfs.com/fat-allocation.htm
FAT Root Folder
• Root folder contains each entry for each file
and folder on the root
• At a fixed location
• Fixed size 512 entries for a hard disk
• Other folders contain similar entries but can
be anywhere on the disk and have unlimited
(relatively) entries
FAT Folder Structure
• Folder entries include
–
–
–
–
–
–
–
–
Name (8+3 characters)
Attribute byte
Creation time
Creation date
Last access date
Last modified time
Last modified date
Starting cluster number in the file allocation table (16
bits)
FAT Filenames
• Old 8+3 names, eight bits for the name,
three bits for the extension
VFAT
• Longer names are supported but backward FAT
compatibility is maintained in VFAT
• Example of conversion and storage
– “The quick brown.fox” – 15 + extension
– “THEQUI~1.FOX” made up name
• Unicode  2 bytes for each character in the long
name
• Windows sets volume, read-only, system, and
hidden attributes on log filename entries to get
backwards compatible to ignore these fields
VFAT Long Filename Storage
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2nd 0x42 w
long
entry
w
n
n
.
.
f
f
o
o
0x0F 0x00 Chek x
sum
15
x
0x00 0x00 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x00 0x00 0xFF 0xFF 0xFF 0xFF
1rst 0x01 T
long
entry
T
h
h
e
e
i
i
c
c
k
k
<sp> <sp> b
b
0x00 0x00 r
r
o
H
E
Q
U
I
~
O
X
Crea
te Ti me
Date
Last
Aces 0x00 0x00 Last
Short T
Entry
Crea
<sp> <sp> q
1
F
Mod. Last
Time
q
Mod. First
Date
0x0F 0x00 Chek u
sum
0x20 NT
u
o
Clust FileS Ize… ……. ……
er
• http://www.ntfs.com/
Download