際際滷

際際滷Share a Scribd company logo
New Technology File System
Seminarski rad | Tomislav Kaui
Sadr転aj
Uvod ................................................................................................................................................1
Povijest........................................................................................................................................2
Struktura.....................................................................................................................................2
Metapodaci (Metadata).........................................................................................................3
Boot sektor .............................................................................................................................5
Klasteri.....................................................................................................................................6
Vremenske oznake ................................................................................................................7
Znaajke......................................................................................................................................7
Zapisivanje promjena............................................................................................................7
vrste poveznice....................................................................................................................8
Alternativni protoci podataka ..............................................................................................8
Sa転imanje datoteka...............................................................................................................8
Prorijeene datoteke ............................................................................................................9
Stvaranje kopija u sjeni (sigurnosno kopiranje)................................................................9
Transakcije............................................................................................................................10
Sigurnost...............................................................................................................................10
Enkripcija podataka.............................................................................................................11
Kvote diska............................................................................................................................12
Toke ponovne obrade.......................................................................................................12
Promjena veliine particije .................................................................................................13
Verzije........................................................................................................................................13
Zakljuak.......................................................................................................................................15
1
Uvod
Kroz povijest su se raunalni resursi drastino mijenjali svako desetljee. Tako je 1980.
godine prosjean radni takt procesora bio oko 2 MHz, a 1990, godine oko 19,4 MHz.
Prosjena koliina RAM-a 1980. godine je 1 KB, a deset godina nakon 1 MB.
Ni邸ta drugaije nije bila ni koliina vanjske memorije za trajnu pohranu. Poetkom 80-ih
godina 20. stoljea pojavljivali su se diskovi kapaciteta 10 MB, a ve sredinom idueg
desetljea prosjean kapacitet je oko 1 GB. Takve promjene zahtijevale su promjenu
naina upravljanja raunalnim resursima.
Veina tvrdih diskova koristila je FAT (File Allocation Table) datoteni sustav ija je prva
verzija iza邸la 1977. godine. Iako je 邸iroko rasprostranjen, FAT je imao mnoga ogranienja,
poput kapaciteta (FAT16 mogao je upravljati tvrdim diskovima kapaciteta do 4GB) i
manjka znaajki.
Zbog toga je Microsoft poeo razvijati svoj vlastiti datoteni sustav koji rje邸ava probleme
FAT-a i daje veu pouzdanost i sigurnost. Razvoj je doveo do stvaranja NTFS-a koji je uz
potpuno novi i pouzdaniji operacijski sustav Windows NT predstavljao programsku
podr邸ku za nadolazea vremena.
2
Povijest
Poetkom devedesetih godina 20. stoljea Microsoft je svojim klijentima nudio dva
operacijska sustava: MS-DOS (akronim od MicroSoft Disk Operating System) i Windows
3.0 (kasnije se pojavljuje i Windows 3.1x). Jedna od slabosti naspram konkurentskog UNIX-
a bila je ovisnost o FAT (File Allocation Table) datotenom sustavu koji je nudio malo
znaajki za pohranu i upravljanje datotekama, posebno unutar veih korporativnih
okolina. Kako bi uklonili pote邸koe koje FAT datoteni sustav ima, Microsoft je odluio
izraditi potpuno novi datoteni sustav za nadolazee verzije Windowsa. Novi datoteni
sustav zove se NTFS (akronim od New Technology File System).
NTFS nije nasljednik FAT datotenog sustava, ve je napisan ispoetka. Ipak, koncept
NTFS-a uzet je od HPFS-a (akronim od High Performance File System)  datotenog
sustava kojeg su razvijali u suradnji s IBM-om.
Novi datoteni sustav predstavljen je u srpnju 1993. zajedno s operacijskim sustavom
Windows NT 3.1, koji je ujedno i prva javno dostupna verzija Windows NT OS-a. Ipak,
uvoenje NTFS datotenog sustava nije znailo prekid uporabe FAT datotenog sustava.
Neke znaajke NTFS-a pokazale su se nepotrebnima privatnim korisnicima raunala,
poput mogunosti izrade datoteka veih od 4GB ili upravljanja s tvrdim diskovima velikih
kapaciteta (FAT16 podupirao je veliinu particije do 2GB, osobna raunala su imala
diskove kapaciteta manjeg od 1GB), te je iz toga razloga Microsoft nastavio podr転avati i
FAT na nain da je proizvodio posebne verzije Windowsa (Windows 9x, Windows Me) za
uporabu na privatnim raunalima.
Krajem 1999. godine Microsoft predstavlja Windows 2000 (poznat i kao Windows NT 5.0)
koji je ujedinio poslovne i privatne korisnike na nain je omoguio okru転enje prilagoeno
privatnim korisnicima kakvo su Windows 9x verzije imale zajedno sa sigurno邸u i
znaajkama Windows NT serije. Takoer je uz Windows 2000 iza邸la i NTFS 3.0 koja je
donijela mnoge nove znaajke poput udjela diska, EFS-a (v. Enkripcija podataka) i dr.
Struktura
NTFS koristi B-stabla za indeksiranje podataka sistemskih datoteka 邸to omoguava br転u
pretragu podataka u veini sluajeva. Svaki NTFS u sebi ima boot sektor i MFT (Master File
Table). Nakon toga slijede ostale sistemske datoteke i podruje gdje se pohranjuju podaci.
Boot
sektor
MFT
Sistemske
datoteke
Prostor za
pohranu
podataka
Slika 1: Struktura NTFS-a.
3
Metapodaci (Metadata)
Metapodatak je vrsta podatka koja opisuje karakteristike nekog drugog podatka. U NTFS
datotenom sustavu, metapodaci se automatski stvaraju i postavljaju na poetak
formatirane NTFS particije. Unutar MFT-a nalaze se informacije o svakoj datoteci i
direktoriju smje邸tenom u particiji.
MFT se mo転e promatrati kao relacijsku bazu podataka. Svaki put kada izradimo novu
datoteku/direktorij, u MFT se unose vrijednosti atributa. Maksimalna veliina podataka
koja se pohranjuje u MFT jednaka je veliini klastera (v. Klasteri). Ukoliko je datoteka koja
se sprema u MFT izuzetno mala (512 bajtova i manje), ona se sprema direktno u MFT kako
se ne bi nepotrebno zauzimao prostor na disku.
Obzirom na to da su metapodaci NTFS datotenom sustavu pohranjeni isto kao i pravi
podaci, oni se takoer moraju spremiti u MFT. Za NTFS datoteke je rezervirano prvih 16
zapisa u MFT-u. Sve zapoinju s $ (dolar) znakom na poeku osim Root file name index-a.
Prvi zapis opisuje samu MFT, zatim slijedi zrcalni zapis MFT-a za sluaj da je prvi zapis
o邸teen. Ova prva dva zapisa se takoer zapisuju u boot sektor. Ostali podaci navedeni
su u tablici 1.
Datoteka Naziv Broj
MFT
zapisa
Opis datoteke
$Mft Master File Table 0 Sadr転i zapis svih datoteka i
mapa u sustavu.
$MftMirr MFT mirror 1 Zrcalni zapis prva etiri zapisa
MFT-a. Slu転i za oporavak u
sluaju gre邸ke sektora.
$LogFile Log file 2 Sadr転i informacije za NTFS
koje slu転e za br転i oporavak.
$Volume Volume 3 Sadr転i informacije o
volumenu, poput naziva i
verzije.
$AttrDef Attribute definitions 4 Definira imena atributa.
. Root file name index 5 Korijenska (poetna) mapa.
$Bitmap Cluster bitmap 6 Sadr転i informacije o
slobodnim i neiskori邸tenim
klasterima.
$Boot Boot sector 7 Sadr転i adresu BPB-a (BIOS
Parameter Block) koji slu転i za
postavljanje volumena i
dodatne podatke ukoliko je
volumen bootabilan.
$BadClus Bad cluster file 8 Sadr転i lo邸e klastere
volumena.
4
$Secure Security file 9 Sadr転i jedinstvene sigurnosne
deskriptore za sve datoteke u
volumenu.
$Upcase Upcase table 10 Pretvara mala slova u velika
slova preko Unicode
kodiranja.
$Extend NTFS extension file 11 Koristi se za razne dodatne
znaajke NTFS-a poput udjela
diska i identifikatora objekata.
-- -- 12-15 Rezervirano za budue
verzije.
Tablica 1: Prvih 16 zapisa u MFT.
Postoje dvije vrste atributa unutar MFT-a: stalni i nestalni (dodatni). Stalni atributi su
atributi ije vrijednosti su pohranjene unutar MFT zapisa, dok su nestalni atributi oni
atributi ije se vrijednosti pohranjuju unutar dodatnog MFT zapisa ili izvan MFT. to su
podaci vei, to je vi邸e atributa potrebno pohraniti, pa je tako mogue da e datoteni
sustav izbaciti atribute iz zapisa i napraviti ih nestalnima.
Naziv atributa Opis atributa
Standard Information Sadr転i informacije poput vremenske
oznake i broja poveznica.
Attribute List Sadr転i lokacije svih dodatnih atributa (koji
nisu stali u MFT).
File Name Dolazi u kratkom (8 znakova za ime, 3 za
ekstenziju) i dugom obliku (do 255
Unicode znakova).
Security Descriptor Opisuje tko ima vlasni邸tvo, a tko ima
pristup podacima.
Data Sadr転i podatke o datoteci. Mo転e biti vi邸e
Data atributa.
Object ID Jedinstveni indikator na razini volumena
kojeg nema svaka datoteka.
Logged Utility Stream Podatkovni izvor koji sve operacije
zapisuje u $LogFile datoteku.
Reparse Point Slu転i za montirane diskove (engl.
mounted drive).
Index Root Slu転i za implementaciju mapa i ostale
oblike indeksa.
Index Allocation Slu転i za implementaciju binarnog stabla
za velike mape i ostale velike oblike
indeksa.
Bitmap Slu転i za implementaciju binarnog stabla
za velike mape i ostale velike oblike
indeksa.
5
Volume Information Sadr転i verziju volumena, koristi ga
iskljuivo $Volume datoteka.
Volume Name Sadr転i ime volumena, koristi ga iskljuivo
$Volume datoteka.
Tablica 2: Atributi unutar MFT.
Stvaranjem novih datoteka/direktorija MFT se 邸iri, a prostor na disku rezerviran za MFT
naziva se MFT zona. Datoteni sustav nee spremati prave podatke u MFT zoni sve dok to
ne bude trebao, odnosno dok ne bude bilo dovoljno mjesta na disku za pohranu
podataka.
Boot sektor
Kada se NTFS particija izradi, boot sektor se prvi popunjava. Zapoinje s prvim sektorom
particije, a sastoji se od dva bloka: BPB-a (BIOS Parameter Block) i boot kod volumena
(Boot Colde Volume). BPB sadr転i temeljne informacije o samome volumenu poput imena
i veliine. Boot kod volumena sadr転i upute za uitavanje operacijskog sustava. U pravilu,
boot kod volumena pokree NTLDR (program za uitavanje operacijskog sustava
Windows temeljenom na NT-u).
Odmak
bitova
Duljina
(B)
Naziv Opis
0x00 3 JMP instrukcija
Uzrokuje nastavak izvr邸avanja nakon
strukturiranja podataka u boot
sektoru.
0x03 8 OEM ID Oznaava da se radi o NTFS-u.
0x0B 2 Bajtova po sektoru Broj bajtova po sektoru diska.
0x0D 1 Sektora po klasteru Broj sektora u jednom klasteru.
0x0E 2 Rezervirani sektori
Oznaava koliko je prostora
rezervirano od strane OS-a.
0x10 5 Nekori邸teno Uvijek nula.
0x15 1 Medijski deskriptor Oznaava vrstu diska (HDD, SDD)
0x16 2 Nekori邸teno Uvijek nula.
0x18 2 Sektora po traci Broj sektora diska po jednoj traci.
0x1A 2 Broj glava Broj glava unutar diska.
0x1C 4 Skriveni sektori Broj sektora prije particije.
0x20 8 Nekori邸teno Ne koristi NTFS.
0x28 8 Ukupan broj sketora Veliina particije u broju sektora.
0x30 8 Broj $MFT klastera Oznaava klaster koji sadr転i MFT.
0x38 8
Broj $MFTMirr
klastera
Oznaava klaster koji sadr転i zrcalnu
sliku MFT-a.
0x40 1
Broj klastera u
segmentu zapisa
datoteke
Broj klastera u segmentu zapisa
datoteka. Negativan broj predstavlja da
je veliina 2 na apsolutnu vrijednost.
0x41 3 Nekori邸teno Ne koristi NTFS.
6
0x44 1
Klastera po bufferu
indeksa
Broj klastera u bufferu indeksa.
Negativan broj predstavlja da je
veliina 2 na apsolutnu vrijednost.
0x45 3 Nekori邸teno Ne koristi NTFS.
0x48 8
Serijski broj
volumena
Jedinstveni nasumian broj koji se
dodaje particiji.
0x50 4 Nekori邸teno Ne koristi NTFS.
0x54 426 Bootstrap kod
Kod koji uitava ostatak operacijskog
sustava. Na ovo referencira JMP
funkcija u prva 3 bajta sektora.
0x01FE 2 End-of-sector
Zastavica koja oznaava da je ovo
ispravan boot sektor.
Tablica 3: Sadr転aj boot sektora.
Klasteri
Klaster je temeljna jedinica iskori邸tenosti diska. Broj sektora u klasteru odreen je
faktorom klastera koji se izra転ava u bajtovima i potencija je broja 2. Faktor klastera
odreuje se prilikom formatiranja.
Svaki klaster razlikuje se od drugog po LCN-u (Logical Cluster Number). LCN se dodjeljuje
sekvencijalno poev邸i od nule (klaster s LCN 0 je boot sektor). Odreeni klaster mo転emo
pronai i preko VCN-a (Virtual Cluster Number) koji se takoer sekvencijalno dodjeljuje
klasterima, no za razliku od LCN-a, dodjeljuje se od poetka do kraja datoteke.
1234 1235 1236 1237
0 1 2 3
1347 1348 1349
4 5 6
Podaci Podaci
1350
7
Poetni VCN
DataFile Name
Standard
Information
Datoteka 1 Poetni LCN Broj klastera
0
4
1234
1347
4
4
Master File Table
LCN
VCN
LCN
VCN
Slika 2: Pronalazak podataka preko MFT koristei VCN i LCN.
Veliina klastera oznaava najmanju koliinu prostora diska koja se mo転e koristiti za
spremanje datoteke. Od Windows NT 4.0, zadana veliina klastera je 4KB (zbog
ogranienja MBR-a, Windows NT 4.0 ne mo転e imati klaster vei od 4KB). Operacijski
7
sustavi od Windows 2000 do Windows 10 mogu imati veliinu klastera do 64KB. Veliina
se pohranjuje unutar $Boot zapisa u MFT.
Kapacitet diska
Zadana veliina klastera
Windows NT 4.0 Windows 2K  Windows 10
7 MB512 MB 4 KB 4 KB
512 MB1 GB 4 KB 4 KB
1 GB2 GB 4 KB 4 KB
2 GB2 TB 4 KB 4 KB
2 TB16 TB
Nije podr転ano zbog
ogranienja MBR-a
4 KB
16TB32 TB 8 KB
32TB64 TB 16 KB
64TB128 TB 32 KB
128TB256 TB 64 KB
> 256 TB Nije podr転ano
Tablica 4: Zadana veliina klastera ovisno o kapacitetu diska i verziji operacijskog sustava Windows.
Vremenske oznake
FAT datoteni sustav vrijeme sprema po lokalnom raunalnom vremenu. To stvara
problem prilikom prijenosa podataka jer se pravilno vrijeme ne mo転e odrediti. Primjerice,
datoteka spremljena u Zagrebu u 17:00 (UTC+2) na FAT datotenom sustavu i poslana u
Moskvu gdje koriste isti datoteni sustav imat e datum izrade 17:00 (UTC+3), 邸to nije
tono. NTFS sve vremenske oznake sprema u UTC vremenskom standardu. Vremenske
oznake se zapisuju kao 64-bitna vrijednost koja predstavlja broj intervala od 100
nanosekundi koji su pro邸li od 12:00 1. sijenja 1601. godine. Prilikom prikazivanja radi
potrebne pretvorbe. Ljetne promjene vremena ne utjeu na NTFS obzirom da nije ovisan
o vremenskoj zoni u kojoj se nalazi.
NTFS za svaku datoteku zapisuje etiri vremenske oznake: vrijeme izrade, vrijeme
pristupa, vrijeme izmjene, vrijeme zadnje izmjene zapisa MFT-a. Vrijeme izrade
predstavlja vremensku oznaku kada je datoteka izraena na disku. Vrijeme pristupa
predstavlja vremensku oznaku posljednjeg pristupa podatku. Pristup mo転e biti
pomicanje, otvaranje, skeniranje antivirusnog programa i sl. Vrijeme izmjene predstavlja
vremensku oznaku kada je do邸lo do izmjene podataka u datoteci. Vrijeme zadnje izmjene
zapisa MFT-a predstavlja vremensku oznaku kada je MFT zapis podatka zadnji put
izmijenjen. Ovo je jedina vremenska oznaka koja se ne mo転e jednostavno prikazati preko
programa Windows Explorer, no mo転e se doi do nje koristei posebne alate.
Znaajke
Zapisivanje promjena
NTFS je tzv. journaling datoteni sustav, odnosno sustav koji sprema promjene
metapodataka. U ovom datotenom sustavu zapis se nalazi u $LogFile datoteci koja je
krucijalna za NTFS kako bi sustav odr転ao konzistentnost kompleksnih unutarnjih
struktura podataka u sluaju pada sustava ili pomicanja podataka defragmentiranjem.
8
USN Journal (akronim od Update Sequence Number Journal) je znaajka NTFS-a koja se
nalazi unutar $Extend zapisa, a slu転i za zapisivanje promjena koje se dogaaju u
volumenu. Izmeu ostalog, USN Journal prati promjene datoteka, izvora, mapa, atributa
i sigurnosnih postavki.
vrste poveznice
Postoje dvije vrste poveznica: meke i vrste. Meka poveznica je pokaziva koji referira na
sadr転aj datoteke, dok je vrsta poveznica datoteka koja od polazne uzima vrijednosti
atributa, sadr転aj i ostalo. Glavna razlika izmeu meke i vrste poveznice je u tome 邸to
prilikom brisanja polazne datoteke meka poveznica gubi svrhu (pokaziva ne referencira
na podatke datoteke), dok kod vrste poveznice se ne dogaa ni邸ta obzirom da su podaci
odvojeni.
Operacijski sustav Windows koristi vrste poveznice kako bi podr転ao programe koji rade
samo s 8.3 zapisom imena datoteke (8 znakova za naslov, 3 znaka za ekstenziju). U MFT
se unosi zapis naziva datoteke s dugakim 8.3 zapisom i oba se meusobno obnavljaju,
邸to nije uobiajeno za tvrde poveznice.
NTFS mo転e podr転ati 1024 tvrde poveznice po datoteci, a sve tvrde poveznice moraju se
nalaziti na istom volumenu kao i datoteka jer svaki volumen ima svoju MFT.
Podaci na disku
Datoteka 1
Datoteka 2
(Soft link)
Podaci na disku
Datoteka 1
Datoteka 1
(Hard link)
Slika 3: Grafiko poja邸njenje meke i vrste poveznice. Lijevo: meka poveznica. Desno: vrsta poveznica.
Alternativni protoci podataka
Alternativni protoci podataka (Alternative Data Streams, ADS) omoguavaju da se uz
datoteku mogu povezati vi邸e protoka podataka. Primjerice, operacijski sustav Windows
2000 koristi ADS kako bi uz slikovnu datoteku vezao sliicu (engl. thumbnail).
Osim 邸to je znaajka, ADS je postao i problem jer se pomou njega mogu napisati skriveni
podaci, ukljuujui i 邸tetne programe. Primjerice, za tekstualnu datoteku znamo da je
primarni protok podataka obzirom da datoteka sadr転i tekst, no koristei ADS iz datoteke
se mogu izvui skriveni podaci koji bi mogli na邸tetiti raunalu.
Sa転imanje datoteka
NTFS omoguava sa転imanje individualnih datoteka, mapa i volumena. Prilikom
itanja/pisanja podataka, NTFS dekompresira sa転ete datoteke, te ih ponovo sa転ima nakon
邸to su svi radovi nad njima dovr邸eni.
9
Za sa転imanje podataka NTFS koristi LZNT1 algoritam, varijantu LZ77 algoritma. Kod ovog
algoritma sa転eta rije referencira na podatke koji nisu cjelovito sadr転ani u nesa転etom
meuspremniku (engl. buffer) u vrijeme kada se rije obrauje. Sa転eta rije se obrauje
kopirajui podatke od poetka do kraja ciljanog dijela nesa転etog meuspremnika.
Datoteke se sa転imaju po 16 klastera. Primjerice, ako nam je zadana veliina klastera 4KB,
onda e NTFS primjenjivati algoritam na 64KB podataka datoteke.
Sa転imanje datoteka u NTFS izvedivo je samo ako je veliina klastera do 4KB jer algoritmi
za sa転imanje u NTFS nisu napravljeni za vee veliine klastera. Ukoliko imamo veliinu
klastera veu od 4KB, datoteke se nee sa転imati.
Prorijeene datoteke
Prorijeene datoteke (engl. sparse file) su datoteke koje sadr転e prazne dijelove, odnosno
dijelove koji su ispunjeni s nulama. Koristei atribute u metapodacima, NTFS mo転e
alocirati samo one podatke datoteke koji nisu prazni i koji imaju znaenje.
Znaajni dijelovi
Prazni dijelovi
100MB 20MB
Slika 4: Grafiki prikaz prorijeene datoteke. Lijevo: bez podataka u atributu. Desno: s podacima u atributu.
Stvaranje kopija u sjeni (sigurnosno kopiranje)
Usluga kopiranja volumena u sjeni (engl. Volume Shadow Copy Service, VSS) omoguava
uvanje prethodnih verzija datoteka i mapa u NTFS. Ova znaajka ukljuena je u Windows
XP (Service Pack 2), ali je mogue koristiti ju i na Windows 2000 OS-u. Usluga stvara
snimku diska. Snimka diska je read-only kopija volumena. Prema zadanim postavkama
operacijskog sustava, snimke zaslona su privremene i bri邸u se prilikom ponovnog
pokretanja, no mogue je postaviti da se snimke zaslona spremaju i ne budu privremene.
10
Slika 5: Postavke sigurnosnog kopiranja u operacijskom sustavu Windows 10 (Build 1709).
Transakcije
Transakcija je nedjeljiva skupina operacija nad podacima koja e se u potpunosti izvr邸iti
ili se nee izvr邸iti uope. U NTFS su transakcije uvedene s operacijskim sustavom
Windows Vista i poznate su pod nazivom transakcijski NTFS (Transactional NTFS, TxF).
Mnogi alati OS-a uzdaju se u atomske transakcije, poput Windows Update i Oporavka
sustava.
Zbog kompleksnosti API-ja TxF-a i raznih svojstava koje su programeri trebali razmotriti
prilikom izrade programa koji koristi TxF, Microsoft planira izbaciti TxF iz nadolazeih
verzija operacijskog sustava Windows i zamijeniti ga sa znaajkom koja e biti praktinija
za uporabu veini programera. Unutar .NET skupine Microsoft je ponudio API koji se zove
Upravitelj transakcijama datoteka (Transactional File Manager) koji takoer omoguava
transakcije i nudi se kao alternativa TxF API-ju.
Sigurnost
Svaka datoteka ili direktorij unutar NTFS-a dobiva sigurnosnog deskriptora koji definira
vlasnika podatka i dva popisa za upravljanje pristupom (Access Control List, ACL). Jedan
ACL sadr転i popis svih interakcija (itanja, pisanja) koje su dopu邸tene ili nedopu邸tene
odreenom korisniku ili grupi korisnika. Taj ACL nazivamo diskrecijski popis za
upravljanje popisom (Discretionary Access Control List, DACL). Podaci DACL-a koriste se
za kontrolu korisnikog rauna (User Account Control, UAC). Drugi ACL sadr転i popis svih
interakcija koje bi trebale biti revidirane i zapisane neovisno jesu li uspjele ili nisu. Takav
ACL se naziva sistemski popis za upravljanje pristupom (System Access Control List, SACL).
Unutar NTFS-a postoje osnovne i dodatne dozvole. Osnovne dozvole dio su NTFS-a od
njegove prve komercijalne verzije, a dodatne dozvole su naknadno dodavane kroz
razvoj NTFS-a.
11
Dozvola Opis dozvoleOsnovnedozvole
Potpuna kontrola
Korisnik mo転e ureivati, dodavati, pomicati i brisati
datoteke, njihova svojstva i direktorije. Takoer
mo転e promijeniti dozvole.
Izmjeni
Korisnik mo転e pregledavati, ureivati, brisati i
dodavati datoteke i njihova svojstva.
itanje i izvr邸avanje Korisnik mo転e pokretati programske datoteke.
itanje
Korisnik mo転e pregledavati datoteke i svojstva
datoteke.
Pisanje Korisnik mo転e pisati u datoteke.
Dodatnedozvole
Proputovanje kroz
mapu/Izvr邸avanje
datoteke
Korisnik mo転e ii po poddirektorijima kako bi
dohvatio druge datoteke i direktorije.
Izlistaj mapu/Proitaj
podatke
Korisnik mo転e vidjeti listu sadr転aja direktorija i
datoteka.
itanje atributa Korisnik mo転e vidjeti atribute datoteke ili direktorija.
itanje pro邸irenih
atributa
Korisnik mo転e vidjeti pro邸irene atribute datoteke ili
direktorija.
Brisanje Korisnik mo転e obrisati datoteku ili direktorij.
itanje dopu邸tenja
Korisnik mo転e itati dopu邸tenja koja korisnici imaju
za datoteke ili direktorije.
Promjena dopu邸tenja
Korisnik mo転e promijeniti dopu邸tenja koja korisnici
imaju za datoteke ili direktorije.
Preuzimanje vlasni邸tva
Korisnik mo転e preuzeti vlasni邸tvo nad datotekom ili
direktorijem.
Tablica 5: Dozvole u NTFS-u.
Dozvole mogu biti naslijeene ili eksplicitne. Obje vrste dozvola mogu imati logiku
vrijednost allow (dopusti) i deny (opovrgni). Hijerarhijski gledano, eksplicitna dopu邸tenja
imaju prednost nad naslijeenim dopu邸tenjima.
Enkripcija podataka
NTFS nudi enkripciju podataka na razini datotenog sustava pomou znaajke EFS
(akronim od Encrypting File System). EFS omoguava enkripciju i dekripciju podataka
koristei napredne algoritme.
Za dekriptiranje podataka EFS koristi simetrini privatni klju, koji se sam enkriptira
javnim kljuem. Privatni klju je potreban za dekripciju podataka. Ve転e se za korisnika ili
grupu korisnika koji posjeduju korisniko ime i lozinku rauna. Ukoliko se privatni klju
o邸teti ili izgubi, nijedan korisnik ne mo転e puno uiniti oko dekripcije podataka. Ako postoji
agent za oporavak, onda datoteka mo転da mo転e biti dekriptirana, a ukoliko je klju
arhiviran (npr. pohranjen na disketu), onda se klju isto tako mo転e oporaviti i datoteka
dekriptirati. Ako ni agent ni pohrana kljua u arhivu ne postoji, onda je datoteka
izgubljena. Upravo zbog ovakvog naina dekripcije gdje je bez posjedovanja kljua gotovo
nemogue dekriptirati povjerljive podatke, EFS se smatra dobrim sustavom za enkripciju.
12
Obzirom da EFS vr邸i enkripciju na razini datotenog sustava, aplikacije ne moraju
razumjeti EFS i EFS-om enkriptirane datoteke jer ukoliko korisnik 転eli otvoriti odreenu
enkriptiranu datoteku i ima klju za dekripciju, EFS e ga dekriptirati i predati datoteku
korisniku. Ukoliko korisnik nema klju, operacijski sustav e poslati pogre邸ku o
neovla邸tenom pristupu (Access Denied!).
Prilikom prijenosa podataka s udaljenog poslu転itelja, enkriptirani podaci se dekriptiraju,
prenose se preko mre転e i lokalno se enkriptiraju u mapi koja je oznaena za enkriptiranje.
Kvote diska
Kvote diska su znaajka NTFS-a koja omoguava da nijedan korisnik ne zauzme cijelu
particiju diska. Kvote upravljaju i prate uporabu diska zasebno za svakog korisnika.
Postavke kvota omoguavaju da se odredi granica koliko prostora na particiji mo転e
koristiti odreeni korisnik, te razina upozorenja nakon koje se administrator raunala
obavje邸tava da je korisnik pre邸ao granicu. Takoer, mogue je uskratiti prostor na disku
korisnicima koji su prema邸ili svoje ogranienje. Za svakog korisnika se mo転e pojedinano
unijeti kvota diska, tako da ogranienje ne mora biti fiksno za sve korisnike.
Slika 6: Postavke kvota u operacijskom sustavu Windows 10 (Build 1709).
Toke ponovne obrade
Toka ponovne obrade je objekt NTFS-a koji se prvi put pojavljuje u treoj verziji NTFS-a
(koja izlazi s operacijskim sustavom Windows 2000). One omoguuju pro邸irivanje NTFS-a
13
pomou oznaka ponovne obrade i podataka koji su interpretirati preko filtera datotenog
sustava. Neki od zadanih oznaka ponovne obrade su simboline poveznice, toke vori邸ta
direktorija i toke montiranja volumena.
Promjena veliine particije
U operacijski sustav Windows Vista prvi put je ugraena mogunost promjene veliine
particije. Promjena veliine particije omoguava pro邸irivanje i smanjivanje prostora
particije diska. Unutar alata Upravljanje raunalom nalazi se alat za upravljanje
diskovima. Prilikom smanjivanja particije alat rauna maksimalan prostor koji mo転e
oduzeti particiji koju 転elimo smanjiti. Potrebno je iskljuiti stranine datoteke poput
indeksiranja Windows pretra転ivanja i kopija u sjeni jer se fragmenti tih datoteka ne mogu
relocirati obzirom da su oznaeni kao datoteke koje se ne mogu pomicati.
Slika 7: Upravljanje diskovima u operacijskom sustavu Windows 10 (Build 1709).
Verzije
Verzije NTFS-a izlazile su zajedno s novim verzijama operacijskog sustava Windows. Tako
je prva verzija (NTFS v1.0) iza邸la zajedno s operacijskim sustavom Windows NT 3.1 u 1993.
godini. Verzija 1.1 iza邸la je 1995. s operacijskim sustavom Windows NT 3.51 i nije
kompatibilna s NT 3.1 bez instalacije a転uriranja. Ova verzija donosi popise za kontrolu
pristupa (v. Sigurnost). Verzija 1.2 (zvana jo邸 i 4.0 po verziji OS-a) izlazi s operacijskim
sustavom Windows NT 4.0 u 1996. godini, te dolazi s podr邸kom za sigurnosne
deskriptore.
Prvi vei broj znaajki dolazi s verzijom 3.0 (poznatom i kao 5.0 po verziji OS-a) koja izlazi
s operacijskim sustavom Windows 2000. Znaajke koje dolaze s tom verzijom su: kvote
diska (v. Kvote diska), EFS (v. Enkripcija podataka), prorijeene datoteke (v. Prorijeene
datoteke), toke ponovne obrade (v. Toke ponovne obrade) i USN (v. Zapisivanje
14
promjena). Takoer, sigurnosni deskriptori su izmijenjeni tako da vi邸e datoteka s istim
sigurnosnim postavkama mo転e koristiti isti deskriptor.
2001. godine izlazi NTFS v3.1 (poznat i kao v5.1 po verziji OS-a) koji izlazi s operacijskim
sustavom Windows XP (ista verzija koristi se u operacijskim sustavima Windows Vista, 7,
8 i 10). Ova verzija uvodi redudantne MFT zapise (za oporavak podataka u sluaju
o邸teenja MFT datoteka).
Izmeu operacijskih sustava Windows XP i Windows Vista, Microsoft je poeo razvijati
novi datoteni sustav nazvan WinFS (Windows Future Storage) koji se trebao temeljiti na
relacijskim bazama podataka. Prvi put je demonstriran 2003. godine u operacijskom
sustavu Windows Longhorn (kasnije Windows Vista). Ipak, 2006. godine operacijski sustav
Windows Vista koristi NTFS v3.1 kao i nasljednici. Iako se verzija nije izmijenila, znaajke
poput transakcija (v. Transakcije) i smanjivanje particija (v. Promjena veliine particije)
dodane su u NTFS.
15
Zakljuak
Od 1993. godine do danas NTFS je sinonim za tvrde diskove na operacijskim sustavima
Windows graenima na NT tehnologiji. Isto tako, NTFS se mo転e podrazumijevati kao
ekskluzivna znaajka samo za korisnike operacijskog sustava Windows. Iako su kroz
njegovo vrijeme postojali projekti s ciljem stvaranja datotenih sustava nove generacije
(npr. WinFS), svi su otkazani i zasad smo sigurni da e NTFS jo邸 biti standardni datoteni
sustav.
Nove prepreke za NTFS poput raunala u oblaku (engl. cloud computing) zasad nisu
prijetnja opstanku ovog datotenog sustava, iako bi mo転da neki novi oblici pohrane
podataka bili puno uinkovitiji.
Literatura
1. L. Budin, M.Golub, D. Jakobovi, L.Jelenkovi: Operacijski sustavi, Element, 2011.
2. R. Russon, Y. Fiedel: NTFS Documentation, 2005.
3. T. Knutson: Filesystem Timestamps: What Makes Them Tick?, 2016.
https://www.sans.org/reading-room/whitepapers/forensics/filesystem-
timestamps-tick-36842
4. Microsoft Docs: How NTFS works?
https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-
server-2003/cc781134(v=ws.10)
5. PCGuide: New Technology File System
http://www.pcguide.com/ref/hdd/file/ntfs
6. NTFS.com: NTFS File Attributes
http://ntfs.com/ntfs-files-types.htm#ntfs-file-attributes
7. NTFS.com: NTFS Compressing Files
http://www.ntfs.com/ntfs-compressed.htm
8. Writeblocked.org: NTFS Reference Sheet
https://www.writeblocked.org/resources/NTFS_CHEAT_SHEETS.pdf
9. Malwarebytes: Introduction to Alternate Data Streams
https://blog.malwarebytes.com/101/2015/07/introduction-to-alternate-data-
streams/
10. Microsoft Developer Network: LZNT1
https://msdn.microsoft.com/en-us/library/jj711990.aspx
11. TechRepublic: Windows 101: Know the basics about NTFS permissions
https://www.techrepublic.com/article/windows-101-know-the-basics-about-ntfs-
permissions/
12. Microsoft TechNet: The Encrypting File System
https://technet.microsoft.com/en-us/library/cc700811.aspx
13. Where is my data?: Dates: NTFS Created, Modified, Accessed, Written
https://whereismydata.wordpress.com/2009/02/14/dates-ntfs-created-modified-
accessed-written/
14. Microsoft Developer Network: File Times
https://msdn.microsoft.com/en-
us/library/windows/desktop/ms724290(v=vs.85).aspx
15. Singularity.com: Charts
http://www.singularity.com/charts
Popis tablica
Tablica 1: Prvih 16 zapisa u MFT. ................................................................................................4
Tablica 2: Atributi unutar MFT.....................................................................................................5
Tablica 3: Sadr転aj boot sektora. ..................................................................................................6
Tablica 4: Zadana veliina klastera ovisno o kapacitetu diska i verziji operacijskog sustava
Windows. ........................................................................................................................................7
Tablica 5: Dozvole u NTFS-u.......................................................................................................11
Popis slika
Slika 1: Struktura NTFS-a..............................................................................................................2
Slika 2: Pronalazak podataka preko MFT koristei VCN i LCN. ...............................................6
Slika 3: Grafiko poja邸njenje meke i vrste poveznice. Lijevo: meka poveznica. Desno:
vrsta poveznica. ...........................................................................................................................8
Slika 4: Grafiki prikaz prorijeene datoteke. Lijevo: bez podataka u atributu. Desno: s
podacima u atributu. ....................................................................................................................9
Slika 5: Postavke sigurnosnog kopiranja u operacijskom sustavu Windows 10 (Build
1709)..............................................................................................................................................10
Slika 6: Postavke kvota u operacijskom sustavu Windows 10 (Build 1709)........................12
Slika 7: Upravljanje diskovima u operacijskom sustavu Windows 10 (Build 1709). ..........13

More Related Content

NTFS - seminarski rad (2018)

  • 1. New Technology File System Seminarski rad | Tomislav Kaui
  • 2. Sadr転aj Uvod ................................................................................................................................................1 Povijest........................................................................................................................................2 Struktura.....................................................................................................................................2 Metapodaci (Metadata).........................................................................................................3 Boot sektor .............................................................................................................................5 Klasteri.....................................................................................................................................6 Vremenske oznake ................................................................................................................7 Znaajke......................................................................................................................................7 Zapisivanje promjena............................................................................................................7 vrste poveznice....................................................................................................................8 Alternativni protoci podataka ..............................................................................................8 Sa転imanje datoteka...............................................................................................................8 Prorijeene datoteke ............................................................................................................9 Stvaranje kopija u sjeni (sigurnosno kopiranje)................................................................9 Transakcije............................................................................................................................10 Sigurnost...............................................................................................................................10 Enkripcija podataka.............................................................................................................11 Kvote diska............................................................................................................................12 Toke ponovne obrade.......................................................................................................12 Promjena veliine particije .................................................................................................13 Verzije........................................................................................................................................13 Zakljuak.......................................................................................................................................15
  • 3. 1 Uvod Kroz povijest su se raunalni resursi drastino mijenjali svako desetljee. Tako je 1980. godine prosjean radni takt procesora bio oko 2 MHz, a 1990, godine oko 19,4 MHz. Prosjena koliina RAM-a 1980. godine je 1 KB, a deset godina nakon 1 MB. Ni邸ta drugaije nije bila ni koliina vanjske memorije za trajnu pohranu. Poetkom 80-ih godina 20. stoljea pojavljivali su se diskovi kapaciteta 10 MB, a ve sredinom idueg desetljea prosjean kapacitet je oko 1 GB. Takve promjene zahtijevale su promjenu naina upravljanja raunalnim resursima. Veina tvrdih diskova koristila je FAT (File Allocation Table) datoteni sustav ija je prva verzija iza邸la 1977. godine. Iako je 邸iroko rasprostranjen, FAT je imao mnoga ogranienja, poput kapaciteta (FAT16 mogao je upravljati tvrdim diskovima kapaciteta do 4GB) i manjka znaajki. Zbog toga je Microsoft poeo razvijati svoj vlastiti datoteni sustav koji rje邸ava probleme FAT-a i daje veu pouzdanost i sigurnost. Razvoj je doveo do stvaranja NTFS-a koji je uz potpuno novi i pouzdaniji operacijski sustav Windows NT predstavljao programsku podr邸ku za nadolazea vremena.
  • 4. 2 Povijest Poetkom devedesetih godina 20. stoljea Microsoft je svojim klijentima nudio dva operacijska sustava: MS-DOS (akronim od MicroSoft Disk Operating System) i Windows 3.0 (kasnije se pojavljuje i Windows 3.1x). Jedna od slabosti naspram konkurentskog UNIX- a bila je ovisnost o FAT (File Allocation Table) datotenom sustavu koji je nudio malo znaajki za pohranu i upravljanje datotekama, posebno unutar veih korporativnih okolina. Kako bi uklonili pote邸koe koje FAT datoteni sustav ima, Microsoft je odluio izraditi potpuno novi datoteni sustav za nadolazee verzije Windowsa. Novi datoteni sustav zove se NTFS (akronim od New Technology File System). NTFS nije nasljednik FAT datotenog sustava, ve je napisan ispoetka. Ipak, koncept NTFS-a uzet je od HPFS-a (akronim od High Performance File System) datotenog sustava kojeg su razvijali u suradnji s IBM-om. Novi datoteni sustav predstavljen je u srpnju 1993. zajedno s operacijskim sustavom Windows NT 3.1, koji je ujedno i prva javno dostupna verzija Windows NT OS-a. Ipak, uvoenje NTFS datotenog sustava nije znailo prekid uporabe FAT datotenog sustava. Neke znaajke NTFS-a pokazale su se nepotrebnima privatnim korisnicima raunala, poput mogunosti izrade datoteka veih od 4GB ili upravljanja s tvrdim diskovima velikih kapaciteta (FAT16 podupirao je veliinu particije do 2GB, osobna raunala su imala diskove kapaciteta manjeg od 1GB), te je iz toga razloga Microsoft nastavio podr転avati i FAT na nain da je proizvodio posebne verzije Windowsa (Windows 9x, Windows Me) za uporabu na privatnim raunalima. Krajem 1999. godine Microsoft predstavlja Windows 2000 (poznat i kao Windows NT 5.0) koji je ujedinio poslovne i privatne korisnike na nain je omoguio okru転enje prilagoeno privatnim korisnicima kakvo su Windows 9x verzije imale zajedno sa sigurno邸u i znaajkama Windows NT serije. Takoer je uz Windows 2000 iza邸la i NTFS 3.0 koja je donijela mnoge nove znaajke poput udjela diska, EFS-a (v. Enkripcija podataka) i dr. Struktura NTFS koristi B-stabla za indeksiranje podataka sistemskih datoteka 邸to omoguava br転u pretragu podataka u veini sluajeva. Svaki NTFS u sebi ima boot sektor i MFT (Master File Table). Nakon toga slijede ostale sistemske datoteke i podruje gdje se pohranjuju podaci. Boot sektor MFT Sistemske datoteke Prostor za pohranu podataka Slika 1: Struktura NTFS-a.
  • 5. 3 Metapodaci (Metadata) Metapodatak je vrsta podatka koja opisuje karakteristike nekog drugog podatka. U NTFS datotenom sustavu, metapodaci se automatski stvaraju i postavljaju na poetak formatirane NTFS particije. Unutar MFT-a nalaze se informacije o svakoj datoteci i direktoriju smje邸tenom u particiji. MFT se mo転e promatrati kao relacijsku bazu podataka. Svaki put kada izradimo novu datoteku/direktorij, u MFT se unose vrijednosti atributa. Maksimalna veliina podataka koja se pohranjuje u MFT jednaka je veliini klastera (v. Klasteri). Ukoliko je datoteka koja se sprema u MFT izuzetno mala (512 bajtova i manje), ona se sprema direktno u MFT kako se ne bi nepotrebno zauzimao prostor na disku. Obzirom na to da su metapodaci NTFS datotenom sustavu pohranjeni isto kao i pravi podaci, oni se takoer moraju spremiti u MFT. Za NTFS datoteke je rezervirano prvih 16 zapisa u MFT-u. Sve zapoinju s $ (dolar) znakom na poeku osim Root file name index-a. Prvi zapis opisuje samu MFT, zatim slijedi zrcalni zapis MFT-a za sluaj da je prvi zapis o邸teen. Ova prva dva zapisa se takoer zapisuju u boot sektor. Ostali podaci navedeni su u tablici 1. Datoteka Naziv Broj MFT zapisa Opis datoteke $Mft Master File Table 0 Sadr転i zapis svih datoteka i mapa u sustavu. $MftMirr MFT mirror 1 Zrcalni zapis prva etiri zapisa MFT-a. Slu転i za oporavak u sluaju gre邸ke sektora. $LogFile Log file 2 Sadr転i informacije za NTFS koje slu転e za br転i oporavak. $Volume Volume 3 Sadr転i informacije o volumenu, poput naziva i verzije. $AttrDef Attribute definitions 4 Definira imena atributa. . Root file name index 5 Korijenska (poetna) mapa. $Bitmap Cluster bitmap 6 Sadr転i informacije o slobodnim i neiskori邸tenim klasterima. $Boot Boot sector 7 Sadr転i adresu BPB-a (BIOS Parameter Block) koji slu転i za postavljanje volumena i dodatne podatke ukoliko je volumen bootabilan. $BadClus Bad cluster file 8 Sadr転i lo邸e klastere volumena.
  • 6. 4 $Secure Security file 9 Sadr転i jedinstvene sigurnosne deskriptore za sve datoteke u volumenu. $Upcase Upcase table 10 Pretvara mala slova u velika slova preko Unicode kodiranja. $Extend NTFS extension file 11 Koristi se za razne dodatne znaajke NTFS-a poput udjela diska i identifikatora objekata. -- -- 12-15 Rezervirano za budue verzije. Tablica 1: Prvih 16 zapisa u MFT. Postoje dvije vrste atributa unutar MFT-a: stalni i nestalni (dodatni). Stalni atributi su atributi ije vrijednosti su pohranjene unutar MFT zapisa, dok su nestalni atributi oni atributi ije se vrijednosti pohranjuju unutar dodatnog MFT zapisa ili izvan MFT. to su podaci vei, to je vi邸e atributa potrebno pohraniti, pa je tako mogue da e datoteni sustav izbaciti atribute iz zapisa i napraviti ih nestalnima. Naziv atributa Opis atributa Standard Information Sadr転i informacije poput vremenske oznake i broja poveznica. Attribute List Sadr転i lokacije svih dodatnih atributa (koji nisu stali u MFT). File Name Dolazi u kratkom (8 znakova za ime, 3 za ekstenziju) i dugom obliku (do 255 Unicode znakova). Security Descriptor Opisuje tko ima vlasni邸tvo, a tko ima pristup podacima. Data Sadr転i podatke o datoteci. Mo転e biti vi邸e Data atributa. Object ID Jedinstveni indikator na razini volumena kojeg nema svaka datoteka. Logged Utility Stream Podatkovni izvor koji sve operacije zapisuje u $LogFile datoteku. Reparse Point Slu転i za montirane diskove (engl. mounted drive). Index Root Slu転i za implementaciju mapa i ostale oblike indeksa. Index Allocation Slu転i za implementaciju binarnog stabla za velike mape i ostale velike oblike indeksa. Bitmap Slu転i za implementaciju binarnog stabla za velike mape i ostale velike oblike indeksa.
  • 7. 5 Volume Information Sadr転i verziju volumena, koristi ga iskljuivo $Volume datoteka. Volume Name Sadr転i ime volumena, koristi ga iskljuivo $Volume datoteka. Tablica 2: Atributi unutar MFT. Stvaranjem novih datoteka/direktorija MFT se 邸iri, a prostor na disku rezerviran za MFT naziva se MFT zona. Datoteni sustav nee spremati prave podatke u MFT zoni sve dok to ne bude trebao, odnosno dok ne bude bilo dovoljno mjesta na disku za pohranu podataka. Boot sektor Kada se NTFS particija izradi, boot sektor se prvi popunjava. Zapoinje s prvim sektorom particije, a sastoji se od dva bloka: BPB-a (BIOS Parameter Block) i boot kod volumena (Boot Colde Volume). BPB sadr転i temeljne informacije o samome volumenu poput imena i veliine. Boot kod volumena sadr転i upute za uitavanje operacijskog sustava. U pravilu, boot kod volumena pokree NTLDR (program za uitavanje operacijskog sustava Windows temeljenom na NT-u). Odmak bitova Duljina (B) Naziv Opis 0x00 3 JMP instrukcija Uzrokuje nastavak izvr邸avanja nakon strukturiranja podataka u boot sektoru. 0x03 8 OEM ID Oznaava da se radi o NTFS-u. 0x0B 2 Bajtova po sektoru Broj bajtova po sektoru diska. 0x0D 1 Sektora po klasteru Broj sektora u jednom klasteru. 0x0E 2 Rezervirani sektori Oznaava koliko je prostora rezervirano od strane OS-a. 0x10 5 Nekori邸teno Uvijek nula. 0x15 1 Medijski deskriptor Oznaava vrstu diska (HDD, SDD) 0x16 2 Nekori邸teno Uvijek nula. 0x18 2 Sektora po traci Broj sektora diska po jednoj traci. 0x1A 2 Broj glava Broj glava unutar diska. 0x1C 4 Skriveni sektori Broj sektora prije particije. 0x20 8 Nekori邸teno Ne koristi NTFS. 0x28 8 Ukupan broj sketora Veliina particije u broju sektora. 0x30 8 Broj $MFT klastera Oznaava klaster koji sadr転i MFT. 0x38 8 Broj $MFTMirr klastera Oznaava klaster koji sadr転i zrcalnu sliku MFT-a. 0x40 1 Broj klastera u segmentu zapisa datoteke Broj klastera u segmentu zapisa datoteka. Negativan broj predstavlja da je veliina 2 na apsolutnu vrijednost. 0x41 3 Nekori邸teno Ne koristi NTFS.
  • 8. 6 0x44 1 Klastera po bufferu indeksa Broj klastera u bufferu indeksa. Negativan broj predstavlja da je veliina 2 na apsolutnu vrijednost. 0x45 3 Nekori邸teno Ne koristi NTFS. 0x48 8 Serijski broj volumena Jedinstveni nasumian broj koji se dodaje particiji. 0x50 4 Nekori邸teno Ne koristi NTFS. 0x54 426 Bootstrap kod Kod koji uitava ostatak operacijskog sustava. Na ovo referencira JMP funkcija u prva 3 bajta sektora. 0x01FE 2 End-of-sector Zastavica koja oznaava da je ovo ispravan boot sektor. Tablica 3: Sadr転aj boot sektora. Klasteri Klaster je temeljna jedinica iskori邸tenosti diska. Broj sektora u klasteru odreen je faktorom klastera koji se izra転ava u bajtovima i potencija je broja 2. Faktor klastera odreuje se prilikom formatiranja. Svaki klaster razlikuje se od drugog po LCN-u (Logical Cluster Number). LCN se dodjeljuje sekvencijalno poev邸i od nule (klaster s LCN 0 je boot sektor). Odreeni klaster mo転emo pronai i preko VCN-a (Virtual Cluster Number) koji se takoer sekvencijalno dodjeljuje klasterima, no za razliku od LCN-a, dodjeljuje se od poetka do kraja datoteke. 1234 1235 1236 1237 0 1 2 3 1347 1348 1349 4 5 6 Podaci Podaci 1350 7 Poetni VCN DataFile Name Standard Information Datoteka 1 Poetni LCN Broj klastera 0 4 1234 1347 4 4 Master File Table LCN VCN LCN VCN Slika 2: Pronalazak podataka preko MFT koristei VCN i LCN. Veliina klastera oznaava najmanju koliinu prostora diska koja se mo転e koristiti za spremanje datoteke. Od Windows NT 4.0, zadana veliina klastera je 4KB (zbog ogranienja MBR-a, Windows NT 4.0 ne mo転e imati klaster vei od 4KB). Operacijski
  • 9. 7 sustavi od Windows 2000 do Windows 10 mogu imati veliinu klastera do 64KB. Veliina se pohranjuje unutar $Boot zapisa u MFT. Kapacitet diska Zadana veliina klastera Windows NT 4.0 Windows 2K Windows 10 7 MB512 MB 4 KB 4 KB 512 MB1 GB 4 KB 4 KB 1 GB2 GB 4 KB 4 KB 2 GB2 TB 4 KB 4 KB 2 TB16 TB Nije podr転ano zbog ogranienja MBR-a 4 KB 16TB32 TB 8 KB 32TB64 TB 16 KB 64TB128 TB 32 KB 128TB256 TB 64 KB > 256 TB Nije podr転ano Tablica 4: Zadana veliina klastera ovisno o kapacitetu diska i verziji operacijskog sustava Windows. Vremenske oznake FAT datoteni sustav vrijeme sprema po lokalnom raunalnom vremenu. To stvara problem prilikom prijenosa podataka jer se pravilno vrijeme ne mo転e odrediti. Primjerice, datoteka spremljena u Zagrebu u 17:00 (UTC+2) na FAT datotenom sustavu i poslana u Moskvu gdje koriste isti datoteni sustav imat e datum izrade 17:00 (UTC+3), 邸to nije tono. NTFS sve vremenske oznake sprema u UTC vremenskom standardu. Vremenske oznake se zapisuju kao 64-bitna vrijednost koja predstavlja broj intervala od 100 nanosekundi koji su pro邸li od 12:00 1. sijenja 1601. godine. Prilikom prikazivanja radi potrebne pretvorbe. Ljetne promjene vremena ne utjeu na NTFS obzirom da nije ovisan o vremenskoj zoni u kojoj se nalazi. NTFS za svaku datoteku zapisuje etiri vremenske oznake: vrijeme izrade, vrijeme pristupa, vrijeme izmjene, vrijeme zadnje izmjene zapisa MFT-a. Vrijeme izrade predstavlja vremensku oznaku kada je datoteka izraena na disku. Vrijeme pristupa predstavlja vremensku oznaku posljednjeg pristupa podatku. Pristup mo転e biti pomicanje, otvaranje, skeniranje antivirusnog programa i sl. Vrijeme izmjene predstavlja vremensku oznaku kada je do邸lo do izmjene podataka u datoteci. Vrijeme zadnje izmjene zapisa MFT-a predstavlja vremensku oznaku kada je MFT zapis podatka zadnji put izmijenjen. Ovo je jedina vremenska oznaka koja se ne mo転e jednostavno prikazati preko programa Windows Explorer, no mo転e se doi do nje koristei posebne alate. Znaajke Zapisivanje promjena NTFS je tzv. journaling datoteni sustav, odnosno sustav koji sprema promjene metapodataka. U ovom datotenom sustavu zapis se nalazi u $LogFile datoteci koja je krucijalna za NTFS kako bi sustav odr転ao konzistentnost kompleksnih unutarnjih struktura podataka u sluaju pada sustava ili pomicanja podataka defragmentiranjem.
  • 10. 8 USN Journal (akronim od Update Sequence Number Journal) je znaajka NTFS-a koja se nalazi unutar $Extend zapisa, a slu転i za zapisivanje promjena koje se dogaaju u volumenu. Izmeu ostalog, USN Journal prati promjene datoteka, izvora, mapa, atributa i sigurnosnih postavki. vrste poveznice Postoje dvije vrste poveznica: meke i vrste. Meka poveznica je pokaziva koji referira na sadr転aj datoteke, dok je vrsta poveznica datoteka koja od polazne uzima vrijednosti atributa, sadr転aj i ostalo. Glavna razlika izmeu meke i vrste poveznice je u tome 邸to prilikom brisanja polazne datoteke meka poveznica gubi svrhu (pokaziva ne referencira na podatke datoteke), dok kod vrste poveznice se ne dogaa ni邸ta obzirom da su podaci odvojeni. Operacijski sustav Windows koristi vrste poveznice kako bi podr転ao programe koji rade samo s 8.3 zapisom imena datoteke (8 znakova za naslov, 3 znaka za ekstenziju). U MFT se unosi zapis naziva datoteke s dugakim 8.3 zapisom i oba se meusobno obnavljaju, 邸to nije uobiajeno za tvrde poveznice. NTFS mo転e podr転ati 1024 tvrde poveznice po datoteci, a sve tvrde poveznice moraju se nalaziti na istom volumenu kao i datoteka jer svaki volumen ima svoju MFT. Podaci na disku Datoteka 1 Datoteka 2 (Soft link) Podaci na disku Datoteka 1 Datoteka 1 (Hard link) Slika 3: Grafiko poja邸njenje meke i vrste poveznice. Lijevo: meka poveznica. Desno: vrsta poveznica. Alternativni protoci podataka Alternativni protoci podataka (Alternative Data Streams, ADS) omoguavaju da se uz datoteku mogu povezati vi邸e protoka podataka. Primjerice, operacijski sustav Windows 2000 koristi ADS kako bi uz slikovnu datoteku vezao sliicu (engl. thumbnail). Osim 邸to je znaajka, ADS je postao i problem jer se pomou njega mogu napisati skriveni podaci, ukljuujui i 邸tetne programe. Primjerice, za tekstualnu datoteku znamo da je primarni protok podataka obzirom da datoteka sadr転i tekst, no koristei ADS iz datoteke se mogu izvui skriveni podaci koji bi mogli na邸tetiti raunalu. Sa転imanje datoteka NTFS omoguava sa転imanje individualnih datoteka, mapa i volumena. Prilikom itanja/pisanja podataka, NTFS dekompresira sa転ete datoteke, te ih ponovo sa転ima nakon 邸to su svi radovi nad njima dovr邸eni.
  • 11. 9 Za sa転imanje podataka NTFS koristi LZNT1 algoritam, varijantu LZ77 algoritma. Kod ovog algoritma sa転eta rije referencira na podatke koji nisu cjelovito sadr転ani u nesa転etom meuspremniku (engl. buffer) u vrijeme kada se rije obrauje. Sa転eta rije se obrauje kopirajui podatke od poetka do kraja ciljanog dijela nesa転etog meuspremnika. Datoteke se sa転imaju po 16 klastera. Primjerice, ako nam je zadana veliina klastera 4KB, onda e NTFS primjenjivati algoritam na 64KB podataka datoteke. Sa転imanje datoteka u NTFS izvedivo je samo ako je veliina klastera do 4KB jer algoritmi za sa転imanje u NTFS nisu napravljeni za vee veliine klastera. Ukoliko imamo veliinu klastera veu od 4KB, datoteke se nee sa転imati. Prorijeene datoteke Prorijeene datoteke (engl. sparse file) su datoteke koje sadr転e prazne dijelove, odnosno dijelove koji su ispunjeni s nulama. Koristei atribute u metapodacima, NTFS mo転e alocirati samo one podatke datoteke koji nisu prazni i koji imaju znaenje. Znaajni dijelovi Prazni dijelovi 100MB 20MB Slika 4: Grafiki prikaz prorijeene datoteke. Lijevo: bez podataka u atributu. Desno: s podacima u atributu. Stvaranje kopija u sjeni (sigurnosno kopiranje) Usluga kopiranja volumena u sjeni (engl. Volume Shadow Copy Service, VSS) omoguava uvanje prethodnih verzija datoteka i mapa u NTFS. Ova znaajka ukljuena je u Windows XP (Service Pack 2), ali je mogue koristiti ju i na Windows 2000 OS-u. Usluga stvara snimku diska. Snimka diska je read-only kopija volumena. Prema zadanim postavkama operacijskog sustava, snimke zaslona su privremene i bri邸u se prilikom ponovnog pokretanja, no mogue je postaviti da se snimke zaslona spremaju i ne budu privremene.
  • 12. 10 Slika 5: Postavke sigurnosnog kopiranja u operacijskom sustavu Windows 10 (Build 1709). Transakcije Transakcija je nedjeljiva skupina operacija nad podacima koja e se u potpunosti izvr邸iti ili se nee izvr邸iti uope. U NTFS su transakcije uvedene s operacijskim sustavom Windows Vista i poznate su pod nazivom transakcijski NTFS (Transactional NTFS, TxF). Mnogi alati OS-a uzdaju se u atomske transakcije, poput Windows Update i Oporavka sustava. Zbog kompleksnosti API-ja TxF-a i raznih svojstava koje su programeri trebali razmotriti prilikom izrade programa koji koristi TxF, Microsoft planira izbaciti TxF iz nadolazeih verzija operacijskog sustava Windows i zamijeniti ga sa znaajkom koja e biti praktinija za uporabu veini programera. Unutar .NET skupine Microsoft je ponudio API koji se zove Upravitelj transakcijama datoteka (Transactional File Manager) koji takoer omoguava transakcije i nudi se kao alternativa TxF API-ju. Sigurnost Svaka datoteka ili direktorij unutar NTFS-a dobiva sigurnosnog deskriptora koji definira vlasnika podatka i dva popisa za upravljanje pristupom (Access Control List, ACL). Jedan ACL sadr転i popis svih interakcija (itanja, pisanja) koje su dopu邸tene ili nedopu邸tene odreenom korisniku ili grupi korisnika. Taj ACL nazivamo diskrecijski popis za upravljanje popisom (Discretionary Access Control List, DACL). Podaci DACL-a koriste se za kontrolu korisnikog rauna (User Account Control, UAC). Drugi ACL sadr転i popis svih interakcija koje bi trebale biti revidirane i zapisane neovisno jesu li uspjele ili nisu. Takav ACL se naziva sistemski popis za upravljanje pristupom (System Access Control List, SACL). Unutar NTFS-a postoje osnovne i dodatne dozvole. Osnovne dozvole dio su NTFS-a od njegove prve komercijalne verzije, a dodatne dozvole su naknadno dodavane kroz razvoj NTFS-a.
  • 13. 11 Dozvola Opis dozvoleOsnovnedozvole Potpuna kontrola Korisnik mo転e ureivati, dodavati, pomicati i brisati datoteke, njihova svojstva i direktorije. Takoer mo転e promijeniti dozvole. Izmjeni Korisnik mo転e pregledavati, ureivati, brisati i dodavati datoteke i njihova svojstva. itanje i izvr邸avanje Korisnik mo転e pokretati programske datoteke. itanje Korisnik mo転e pregledavati datoteke i svojstva datoteke. Pisanje Korisnik mo転e pisati u datoteke. Dodatnedozvole Proputovanje kroz mapu/Izvr邸avanje datoteke Korisnik mo転e ii po poddirektorijima kako bi dohvatio druge datoteke i direktorije. Izlistaj mapu/Proitaj podatke Korisnik mo転e vidjeti listu sadr転aja direktorija i datoteka. itanje atributa Korisnik mo転e vidjeti atribute datoteke ili direktorija. itanje pro邸irenih atributa Korisnik mo転e vidjeti pro邸irene atribute datoteke ili direktorija. Brisanje Korisnik mo転e obrisati datoteku ili direktorij. itanje dopu邸tenja Korisnik mo転e itati dopu邸tenja koja korisnici imaju za datoteke ili direktorije. Promjena dopu邸tenja Korisnik mo転e promijeniti dopu邸tenja koja korisnici imaju za datoteke ili direktorije. Preuzimanje vlasni邸tva Korisnik mo転e preuzeti vlasni邸tvo nad datotekom ili direktorijem. Tablica 5: Dozvole u NTFS-u. Dozvole mogu biti naslijeene ili eksplicitne. Obje vrste dozvola mogu imati logiku vrijednost allow (dopusti) i deny (opovrgni). Hijerarhijski gledano, eksplicitna dopu邸tenja imaju prednost nad naslijeenim dopu邸tenjima. Enkripcija podataka NTFS nudi enkripciju podataka na razini datotenog sustava pomou znaajke EFS (akronim od Encrypting File System). EFS omoguava enkripciju i dekripciju podataka koristei napredne algoritme. Za dekriptiranje podataka EFS koristi simetrini privatni klju, koji se sam enkriptira javnim kljuem. Privatni klju je potreban za dekripciju podataka. Ve転e se za korisnika ili grupu korisnika koji posjeduju korisniko ime i lozinku rauna. Ukoliko se privatni klju o邸teti ili izgubi, nijedan korisnik ne mo転e puno uiniti oko dekripcije podataka. Ako postoji agent za oporavak, onda datoteka mo転da mo転e biti dekriptirana, a ukoliko je klju arhiviran (npr. pohranjen na disketu), onda se klju isto tako mo転e oporaviti i datoteka dekriptirati. Ako ni agent ni pohrana kljua u arhivu ne postoji, onda je datoteka izgubljena. Upravo zbog ovakvog naina dekripcije gdje je bez posjedovanja kljua gotovo nemogue dekriptirati povjerljive podatke, EFS se smatra dobrim sustavom za enkripciju.
  • 14. 12 Obzirom da EFS vr邸i enkripciju na razini datotenog sustava, aplikacije ne moraju razumjeti EFS i EFS-om enkriptirane datoteke jer ukoliko korisnik 転eli otvoriti odreenu enkriptiranu datoteku i ima klju za dekripciju, EFS e ga dekriptirati i predati datoteku korisniku. Ukoliko korisnik nema klju, operacijski sustav e poslati pogre邸ku o neovla邸tenom pristupu (Access Denied!). Prilikom prijenosa podataka s udaljenog poslu転itelja, enkriptirani podaci se dekriptiraju, prenose se preko mre転e i lokalno se enkriptiraju u mapi koja je oznaena za enkriptiranje. Kvote diska Kvote diska su znaajka NTFS-a koja omoguava da nijedan korisnik ne zauzme cijelu particiju diska. Kvote upravljaju i prate uporabu diska zasebno za svakog korisnika. Postavke kvota omoguavaju da se odredi granica koliko prostora na particiji mo転e koristiti odreeni korisnik, te razina upozorenja nakon koje se administrator raunala obavje邸tava da je korisnik pre邸ao granicu. Takoer, mogue je uskratiti prostor na disku korisnicima koji su prema邸ili svoje ogranienje. Za svakog korisnika se mo転e pojedinano unijeti kvota diska, tako da ogranienje ne mora biti fiksno za sve korisnike. Slika 6: Postavke kvota u operacijskom sustavu Windows 10 (Build 1709). Toke ponovne obrade Toka ponovne obrade je objekt NTFS-a koji se prvi put pojavljuje u treoj verziji NTFS-a (koja izlazi s operacijskim sustavom Windows 2000). One omoguuju pro邸irivanje NTFS-a
  • 15. 13 pomou oznaka ponovne obrade i podataka koji su interpretirati preko filtera datotenog sustava. Neki od zadanih oznaka ponovne obrade su simboline poveznice, toke vori邸ta direktorija i toke montiranja volumena. Promjena veliine particije U operacijski sustav Windows Vista prvi put je ugraena mogunost promjene veliine particije. Promjena veliine particije omoguava pro邸irivanje i smanjivanje prostora particije diska. Unutar alata Upravljanje raunalom nalazi se alat za upravljanje diskovima. Prilikom smanjivanja particije alat rauna maksimalan prostor koji mo転e oduzeti particiji koju 転elimo smanjiti. Potrebno je iskljuiti stranine datoteke poput indeksiranja Windows pretra転ivanja i kopija u sjeni jer se fragmenti tih datoteka ne mogu relocirati obzirom da su oznaeni kao datoteke koje se ne mogu pomicati. Slika 7: Upravljanje diskovima u operacijskom sustavu Windows 10 (Build 1709). Verzije Verzije NTFS-a izlazile su zajedno s novim verzijama operacijskog sustava Windows. Tako je prva verzija (NTFS v1.0) iza邸la zajedno s operacijskim sustavom Windows NT 3.1 u 1993. godini. Verzija 1.1 iza邸la je 1995. s operacijskim sustavom Windows NT 3.51 i nije kompatibilna s NT 3.1 bez instalacije a転uriranja. Ova verzija donosi popise za kontrolu pristupa (v. Sigurnost). Verzija 1.2 (zvana jo邸 i 4.0 po verziji OS-a) izlazi s operacijskim sustavom Windows NT 4.0 u 1996. godini, te dolazi s podr邸kom za sigurnosne deskriptore. Prvi vei broj znaajki dolazi s verzijom 3.0 (poznatom i kao 5.0 po verziji OS-a) koja izlazi s operacijskim sustavom Windows 2000. Znaajke koje dolaze s tom verzijom su: kvote diska (v. Kvote diska), EFS (v. Enkripcija podataka), prorijeene datoteke (v. Prorijeene datoteke), toke ponovne obrade (v. Toke ponovne obrade) i USN (v. Zapisivanje
  • 16. 14 promjena). Takoer, sigurnosni deskriptori su izmijenjeni tako da vi邸e datoteka s istim sigurnosnim postavkama mo転e koristiti isti deskriptor. 2001. godine izlazi NTFS v3.1 (poznat i kao v5.1 po verziji OS-a) koji izlazi s operacijskim sustavom Windows XP (ista verzija koristi se u operacijskim sustavima Windows Vista, 7, 8 i 10). Ova verzija uvodi redudantne MFT zapise (za oporavak podataka u sluaju o邸teenja MFT datoteka). Izmeu operacijskih sustava Windows XP i Windows Vista, Microsoft je poeo razvijati novi datoteni sustav nazvan WinFS (Windows Future Storage) koji se trebao temeljiti na relacijskim bazama podataka. Prvi put je demonstriran 2003. godine u operacijskom sustavu Windows Longhorn (kasnije Windows Vista). Ipak, 2006. godine operacijski sustav Windows Vista koristi NTFS v3.1 kao i nasljednici. Iako se verzija nije izmijenila, znaajke poput transakcija (v. Transakcije) i smanjivanje particija (v. Promjena veliine particije) dodane su u NTFS.
  • 17. 15 Zakljuak Od 1993. godine do danas NTFS je sinonim za tvrde diskove na operacijskim sustavima Windows graenima na NT tehnologiji. Isto tako, NTFS se mo転e podrazumijevati kao ekskluzivna znaajka samo za korisnike operacijskog sustava Windows. Iako su kroz njegovo vrijeme postojali projekti s ciljem stvaranja datotenih sustava nove generacije (npr. WinFS), svi su otkazani i zasad smo sigurni da e NTFS jo邸 biti standardni datoteni sustav. Nove prepreke za NTFS poput raunala u oblaku (engl. cloud computing) zasad nisu prijetnja opstanku ovog datotenog sustava, iako bi mo転da neki novi oblici pohrane podataka bili puno uinkovitiji.
  • 18. Literatura 1. L. Budin, M.Golub, D. Jakobovi, L.Jelenkovi: Operacijski sustavi, Element, 2011. 2. R. Russon, Y. Fiedel: NTFS Documentation, 2005. 3. T. Knutson: Filesystem Timestamps: What Makes Them Tick?, 2016. https://www.sans.org/reading-room/whitepapers/forensics/filesystem- timestamps-tick-36842 4. Microsoft Docs: How NTFS works? https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows- server-2003/cc781134(v=ws.10) 5. PCGuide: New Technology File System http://www.pcguide.com/ref/hdd/file/ntfs 6. NTFS.com: NTFS File Attributes http://ntfs.com/ntfs-files-types.htm#ntfs-file-attributes 7. NTFS.com: NTFS Compressing Files http://www.ntfs.com/ntfs-compressed.htm 8. Writeblocked.org: NTFS Reference Sheet https://www.writeblocked.org/resources/NTFS_CHEAT_SHEETS.pdf 9. Malwarebytes: Introduction to Alternate Data Streams https://blog.malwarebytes.com/101/2015/07/introduction-to-alternate-data- streams/ 10. Microsoft Developer Network: LZNT1 https://msdn.microsoft.com/en-us/library/jj711990.aspx 11. TechRepublic: Windows 101: Know the basics about NTFS permissions https://www.techrepublic.com/article/windows-101-know-the-basics-about-ntfs- permissions/ 12. Microsoft TechNet: The Encrypting File System https://technet.microsoft.com/en-us/library/cc700811.aspx 13. Where is my data?: Dates: NTFS Created, Modified, Accessed, Written https://whereismydata.wordpress.com/2009/02/14/dates-ntfs-created-modified- accessed-written/ 14. Microsoft Developer Network: File Times https://msdn.microsoft.com/en- us/library/windows/desktop/ms724290(v=vs.85).aspx 15. Singularity.com: Charts http://www.singularity.com/charts
  • 19. Popis tablica Tablica 1: Prvih 16 zapisa u MFT. ................................................................................................4 Tablica 2: Atributi unutar MFT.....................................................................................................5 Tablica 3: Sadr転aj boot sektora. ..................................................................................................6 Tablica 4: Zadana veliina klastera ovisno o kapacitetu diska i verziji operacijskog sustava Windows. ........................................................................................................................................7 Tablica 5: Dozvole u NTFS-u.......................................................................................................11 Popis slika Slika 1: Struktura NTFS-a..............................................................................................................2 Slika 2: Pronalazak podataka preko MFT koristei VCN i LCN. ...............................................6 Slika 3: Grafiko poja邸njenje meke i vrste poveznice. Lijevo: meka poveznica. Desno: vrsta poveznica. ...........................................................................................................................8 Slika 4: Grafiki prikaz prorijeene datoteke. Lijevo: bez podataka u atributu. Desno: s podacima u atributu. ....................................................................................................................9 Slika 5: Postavke sigurnosnog kopiranja u operacijskom sustavu Windows 10 (Build 1709)..............................................................................................................................................10 Slika 6: Postavke kvota u operacijskom sustavu Windows 10 (Build 1709)........................12 Slika 7: Upravljanje diskovima u operacijskom sustavu Windows 10 (Build 1709). ..........13