System y plików FAT, NTFS
FAT
• System plików FAT został
zaprojektowany przez firmę
Microsoft.
• Pierwsza wersja tego systemu
została zaprojektowana dla dysków o
niewielkiej pojemności (głównym jej
przeznaczeniem były dyskietki).
• Była to bardzo uboga wersja, nie
obsługująca nawet podkatalogów.
• Obecnie rozróżnia się trzy rodzaje
systemów plików FAT. Są to:
• FAT12
• FAT16
• FAT32
• Nazwy pochodzą od liczby bitów,
używanych w każdym z systemów do
adresowania.
Organizacja partycji FAT16
• Klaster (ang. cluster)
• Klaster jest grupą sektorów na
partycji FAT.
• W klastry pogrupowane są tylko
sektory z danymi.
• Rozmiar klastra wyspecyfikowany
jest w strukturze Boot Record i może
wynosić od jednego do 128
sektorów.
Liczba klastrów na partycji
• FAT12 n-4084
• FAT16 4085-65524
• FAT32 65525-n
W ie lk o ś c i k la s tr ó w w r ó ż n y c h s y s te m a c h p lik ó w
R o z m ia r p a r ty c j i
F A T 1 6
F A T 3 2
N T F S
0 - 3 2
M B
0 , 5 k B
-
0 , 5 k B
3 3 - 6 4
M B
1 k B
-
0 , 5 k B
6 5 - 1 2 7
M B
2 k B
-
0 , 5 k B
1 2 8 - 2 5 5
M B
4 k B
-
0 , 5 k B
2 5 6 - 5 1 1
M B
8 k B
-
0 , 5 k B
5 1 2 - 1 0 2 3
M B
1 6 k B
4 k B
1 k B
1 - 2
G B
3 2 k B
4 k B
2 k B
2 - 4
G B
6 4 k B
4 k B
4 k B
4 - 8
G B
-
4 k B
8 k B
8 - 1 6
G B
-
8 k B
1 6 k B
1 6 - 3 2
G B
-
1 6 k B
3 2 k B
p o w 3 2
G B
-
3 2 k B
6 4 k B
• Boot Record
• Wszystkie trzy odmiany FAT posiadają
strukturę Boot Record, zamieszczoną w
zarezerwowanych sektorach.
• Struktura Boot Record znajduje się na
samym początku każdej partycji FAT, z
tym, że dla FAT12 i FAT16 zajmuje ona
jeden sektor, a dla FAT32 trzy sektory.
• Tablica Alokacji Plików (File
Allocation Table)
• Tablica alokująca pliki znajduje się na
pierwszych 63 sektorach dysku, po Boot
Sektorze.
• Tablica alokująca pliki jest zwykłą tablicą,
zawierającą 12, 16 lub 32 bitowe
elementy. Zazwyczaj na jednej partycji
znajdują się dwie identyczne kopie.
• Katalog główny (Root Folder / Root
Directory)
• Katalog główny jest wyspecyfikowany jako
normalny katalog, który nie posiada wpisów
jedno- i dwu- kropkowych.
• W systemach FAT12 i FAT16 katalog główny
znajduje się tuż za tablicami alokacji plików. Na
partycjach FAT32 katalog główny jest
utworzony ze zwykłego łańcucha klastrów,
które adres początkowy znajduje się w
strukturze Boot Record.
• Katalogi
• W systemach FAT12 i FAT16
wszystkie katalogi poza katalogiem
głównym są w zasadzie plikami.
• Plik to ciąg bajtów, umieszczony w
jednym bądź wielu klastrach.
• Rozmiar pliku przechowywany jest w
strukturze katalogu.
• W systemach FAT12 i FAT16 katalog
główny nie może być powiększony,
gdyż jego rozmiar został z góry
określony przy formatowaniu
partycji.
• Katalog główny w tych systemach
ma ustaloną maksymalną liczbę
wpisów na 512.
•Katalog jest podzielony na małe struktury nazywane
wpisami.
•Każde wpis ma rozmiar 32 bajtów i jest informacją o
katalogu bądź pliku, zawartym w naszym katalogu.
Wpis zawiera pola:
• Nazwa w formacie 8.3 (11 bajtów)
• Atrybut (1 bajt)
• Czas utworzenia (3 bajty)
• Data utworzenia (2 bajty)
• Data ostatniego otwarcia (2 bajty)
• Czas ostatniej modyfikacji (2 bajty)
• Data ostatniej modyfikacji (2 bajty)
• Numer początkowego klastra w tablicy alokacji plików (2 bajty)
• Rozmiar pliku (4 bajty)
• System plików FAT obsługuje jedynie
następujące atrybuty pliku:
• tylko do odczytu,
• ukryty,
• systemowy
• archiwalny.
FAT12
FAT16
FAT32
Wolny
000
0000
00000000
Zarezerwowany
001
0001
00000001
Używany przez
plik
002-FF6
0002-FFF6
00000002-
0FFFFFF6
Uszkodzony
FF7
FFF7
0FFFFFF7
Ostatni klaster
w pliku
FF8-FFF
FFF8-FFFF
0FFFFFF8-
0FFFFFFF
Każdy klaster posiada własny wpis w tablicy
FAT.
Poniższa tabelka przedstawia wszystkie
możliwe wartości dla takiego wpisu:
• W tablicy alokacji plików plik dostaje
pierwszą dostępną lokację na partycji.
• Numer początkowego klastra to adres
pierwszego klastra, używanego przez
plik.
• Każdy klaster zawiera wskaźnik do
następnego klastra danego pliku albo
wskaźnik końca pliku (np. 0xFFFF dla
FAT16).
Pliki na partycji FAT16
• Zalety systemu plików FAT
• W żadnym z systemów plików obsługiwanych przez
system Windows NT nie można cofnąć operacji
usunięcia. Służące do tego narzędzia próbują uzyskać
bezpośredni dostęp do sprzętu, co w systemie
Windows NT jest niemożliwe. Jeśli jednak plik jest
umieszczony na partycji FAT i zostanie uruchomiony
system MS-DOS, usunięcie pliku może być cofnięte.
System plików FAT jest najlepszy dla dysków i/lub
partycji o rozmiarze nieprzekraczającym w
przybliżeniu 200 MB, ponieważ w takim wypadku
uruchamia się bez nadmiernego obciążenia.
• Wady systemu plików FAT
• Z systemu plików FAT nie powinno się raczej
korzystać, jeśli rozmiar dysku lub partycji
przekracza 200 MB. Jest to spowodowane tym,
że w miarę wzrostu objętości wydajność
systemu FAT szybko spada.
• Nie można ustawić uprawnień do plików
znajdujących się na partycjach FAT.
• Rozmiar partycji FAT jest ograniczony do
4 gigabajtów (GB) w systemie Windows NT i do
2 GB w systemie MS-DOS
NTFS
Struktura wolumenu NTFS
BOOT sektor
(do 16 sektorów)
MFT
Pliki systemowe
(1MB)
Dane
Obszar plików
System plików NTFS został zaprojektowany
specjalnie dla nowego systemu operacyjnego
Windows NT (New Technology).
Stworzenie tego systemu było konieczne, gdyż
zaczęły pojawiać się dyski twarde o pojemności
przewyższającej możliwości adresowania systemu
FAT.
• Architektura systemu NTFS
• W systemie plików NTFS, każda struktura
jest plikiem, wliczając w to struktury do
zarządzania partycją i statystyk.
• Informacje kontrolne o partycji
przechowywane są w zestawie specjalnych
plików, które są tworzone wraz z partycją.
• Zawierają one informacje o plikach na
partycji, rozmiarze partycji, rozmieszczeniu
klastrów itp.
• Każdy plik na partycji NTFS stanowi zbiór
atrybutów.
• Dotyczy to nawet zawartości pliku, która
traktowana jest jako jeden z atrybutów.
• Inne atrybuty to nazwa pliku i jego rozmiar.
• Dzięki takiemu rozwiązaniu system
operacyjny traktuje pliki jako obiekty o
różnych charakterystykach, pozwala to na
łatwe zarządzanie plikami i dodawanie
atrybutów w przyszłości.
• NTFS Boot Sektor
• Boot Sektor znajduje się na początku każdej partycji
NTFS. Jego funkcjonalność jest analogiczna, jak Boot
Sektora w systemie FAT.
• NTFS Boot Sektor pomimo, że w nazwie ma słowo
"sektor", w rzeczywistości może zajmować na partycji
do 16 sektorów.
• NTFS Boot Sektor zaczyna się w pierwszym sektorze
partycji i składa z dwóch struktur.
• BIOS Parameter Block: Zawiera podstawowe
informacje o partycji: nazwę, rozmiar itp.
• Volume Boot Code: Kod małego programu, który
instruuje system plików jak załadować system
operacyjny.
• NTFS jest systemem 64 bitowym
• Maksymalny rozmiar partycji NTFS to
2^64 bajtów, czyli
18,446,744,073,709,551,616 bajtów.
• NTFS używa numerów klastrów -logical cluster numbers
(LCNs) jako adresów dyskowych
• Plik w NTFS nie jest strumieniem bajtów, jak w MS-DOS lub
UNIX, lecz jest obiektem składającym się z atrybutów.
• Każdy plik w NTFS jest opisany przez jeden lub więcej
rekordów w tablicy przechowywanej w specjalnym pliku
-Master File Table (MFT)
• Każdy plik na woluminie NTFS ma unikalny ID nazywany
file reference.
– 64-bity - zawiera 48-bit numer pliku (rekordu w MT) i 16-bit numer sekwencji
(powtórne wykorzystanie rekordu)
– Numery mogą być używane do zapewnianie wewnętrznej spójności systemu plików
• Przestrzeń nazw NTFS jest zorganizowana w hierarchii
katalogów.
• Każdy wpis w katalogu zawiera:
• Nazwę pliku
• Odsyłacz do niego
• Kopię znacznika czasu uaktualnienia
• Rozmiar pliku
Informacje są pobrane z atrybutów
pliku w MFT
NTFS
Rozmiar partycji (
Liczba sektorów w
klastrze
Rozmiar klastra (kiB)
<= 0.5
1
0.5
> 0.5 to 1.0
2
1
> 1.0 to 2.0
4
2
> 2.0 to 4.0
8
4
> 4.0 to 8.0
16
8
> 8.0 to 16.0
32
16
> 16.0 to 32.0
64
32
> 32.0
128
64
• Pliki systemowe
• Pliki systemowe znajdują się na początku
partycji NTFS. Jednym z plików
systemowych jest Master File Table (MFT).
• MFT zawiera rekord, opisujący każdy plik i
katalog na partycji, a jeśli plik jest dość
mały, to znajduje się też tam jego
zawartość.
• Pliki systemowe też znajdują się w rekordzie
MFT, co opisuje poniższa tabelka:
Nazwa pliku
systemowego
Nazwa pliku
Rekord MFT # Opis
Master File Table
(MFT)
$MFT
0
MFT też jest plikiem w MFT znajduje
się opis jego działania.
Master File Table 2
(MFT2) / Master File
Table Mirror
$MFTMirr
1
"Lustrzane" odbicie MFT, zawiera 16
pierwszych rekordów MFT,
opisujących pliki systemowe. Plik
przechowywany w środku partycji
(Windows NT 3.5 i wcześniejsze) albo
na jej końcu (Windows NT 4.0 i
późniejsze).
Log File
$LogFile
2
Zapis wszystkich transakcji na
plikach. Zapewnia odtwarzalność
danych.
Volume Descriptor
$Volume
3
Zawiera podstawowe informacje o
partycji, jak nazwa, wersja systemu
NTFS, czas utworzenia, itp.
Attribute Definition
Table
$AttrDef
4
Zawiera opis różnych typów
atrybutów plików na partycji NTFS.
Root Directory /
Folder
"." (single
period)
5
Wskaźnik na Root Directory
katalog partycji.
Cluster Allocation
Bitmap
$Bitmap
6
Zawiera mapę, które klastry są zajęte,
a które wolne.
Volume Boot Code
$Boot
7
Zawiera kopie struktury Boot Sektor.
Bad Cluster File
$BadClus
8
Lista wszystkich klastrów na partycji,
oznaczonych jako uszkodzone.
Quota Table
$Quota
9
Zawiera informacje o quocie na
partycji (tylko dla NTFS 5.0 i
późniejszych).
Upper Case Table
$UpCase
10
Zawiera informacje o konwersji nazw
plików do formatu UNICODE (16
bitów).
• Przechowywanie informacji o plikach
systemowych pozwala na łatwą
rozbudowę systemu.
• Ponadto pliki systemowe nie muszą
znajdować się w określonym miejscu
na partycji, więc w razie uszkodzenia
jakiejś części twardego dysku mogą
być przeniesione w inne miejsce.
•
Master File Table (MFT)
•
Przy zakładaniu partycji NTFS 12,5 % rozmiaru
dysku rezerwowane jest dla MFT. Normalne pliki i
katalogi nie będą używać tej przestrzeni, chyba
że zabraknie miejsca na reszcie dysku.
•
MFT jest najważniejszym plikiem systemowym
na partycji NTFS.
•
Przechowywane są tutaj dane o każdym pliku i
katalogu na partycji.
•
Działa jako "punkt startowy" i "spis treści"
zarządzania partycją.
• Kiedy na partycji tworzymy katalog
lub plik, zostaje dla niego utworzony
rekord w MFT.
• Dla takiego rekordu minimalnym
rozmiarem jest 1,024 bajty, a
maksymalnym 4,096 bajtów.
• System używa rekordu do
przechowywania informacji o
pliku/katalogu w postaci atrybutów.
• Dla małych plików: jeśli rozmiar
pamięci potrzebny na wszystkie
atrybuty pliku, wliczając w to jego
zawartość, jest mniejszy niż rozmiar
rekordu, zawartość pliku będzie
przechowywana wewnątrz MFT.
• Dlatego takie pliki nie wymagają już
przechowywania poza MFT, a w
dodatku skraca się czas wczytywania
pliku.
Rekord MFT dla małego pliku lub katalogu
Rekord MFT dla dużego pliku
lub katalogu
Typy atrybutów plików i folderów w NTFS
(rezydentne, nierezydentne)
Attribute Type
Description
Standard Information
Includes information such as timestamp and
link count.
Attribute List
Lists the location of all attribute records that
do not fit in the MFT record.
File Name
A repeatable attribute for both long and short
file names. The long name of the file can be
up to 255 Unicode characters. The short
name is the 8.3, case-insensitive name for
the file. Additional names, or hard links,
required by POSIX can be included as
additional file name attributes.
Security Descriptor
Describes who owns the file and who can
access it.
Data
Contains file data. NTFS allows multiple data
attributes per file. Each file typically has one
unnamed data attribute. A file can also have
one or more named data attributes, each
using a particular syntax.
Object ID
A volume-unique file identifier. Used by the
distributed link tracking service. Not all files
have object identifiers.
Logged Tool Stream
Similar to a data stream, but operations are
logged to the NTFS log file just like NTFS
metadata changes. This is used by EFS.
Reparse Point
Used for volume mount points. They are also
used by Installable File System (IFS) filter
drivers to mark certain files as special to that
driver.
Index Root
Used to implement folders and other indexes.
Index Allocation
Used to implement folders and other indexes.
Bitmap
Used to implement folders and other indexes.
Volume Information
Used only in the $Volume system file.
Contains the volume version.
Volume Name
Used only in the $Volume system file.
Contains the volume label.
Win FS
• WinFS is not a physical file system; it
is built on top of NTFS, and NTFS will
remain as the default file system.
• WinFS is based on SQL Server and its
core feature is to provide a data
relations mechanism.
• This allows you to perform a search
such as "All pictures of Joe taken the
last month".