Windows - Fájlrendszer műveletek parancssorból

3. rész

Elérkeztünk cikksorozatunk befejező részéhez. Ma javarészt ismét NTFS specifikus utasításokról lesz szó, köztük néhány igen hasznos dologgal. Például megismerjük annak a parancsnak a használatát, ami a programok írásán vagy külső program használatán kívül az egyetlen lehetőséget biztosítja a hard linkek létrehozására. Emellett foglalkozunk a reparse pontokkal, a ritka fájlokkal, a kvótarendszerrel és néhány fájlrendszer közeli utasítással is.
hardlink
A hard linkek az NTFS fájlrendszer parancsikonjai. Az eredeti fájlhoz készíthetők rámutató hivatkozások (hard linkek), melyek látszólag különböző állományok - még a nevük és helyük is lehet más - valójában ugyanaz a tartalmuk. Bármelyiken hajtunk végre változtatásokat, mindegyik változik. Ellentétben a Windows parancsikonjaival az eredeti tartalom elmozgatása után is működőképesek maradnak a linkek, mert az operációs rendszer, fájlrendszer szinten, valós időben gondoskodik a változások frissítéséről. Sajnos kevés eszköz létezik a hard linkek létrehozására, egyelőre inkább a programozók számára készült API-k jelentik az általánosabban elterjedt megoldást. Grafikus felületen használhatunk külső gyártók által készített alkalmazásokat. Ezeken kívül egyetlen eszköz maradt a rendszergazdák számára: az FSUTIL segédprogram.
A "hardlink" kapcsolónak egyetlen további kapcsolója létezik "create" néven. Tehát a létrehozás megy, de vajon hogy lehet törölni egy hard linket? Ugyanúgy, mint egy fájlt. Nézzünk egy példát egy új hard link létrehozására:
fsutil hardlink create c:\ProbaHL.txt c:\Proba.txt
Ahol a "ProbalHL.txt" jelenti a linket és a "Proba.txt" az eredeti fájlt. Ezután a "ProbaHL.txt" minden módosítása megjelenik a "Proba.txt"-ben is.
reparsepoint
A reparse pontok szintén csak az NTFS fájlrendszerben állnak rendelkezésre. Lényegük, hogy fájlokhoz vagy könyvtárakhoz történő saját adatok rendelésével megváltoztatható az operációs rendszer viselkedése az adott ponton. Léteznek előre gyártott adatkészletek, de készíthetünk teljesen egyénit is. Utóbbi olyan szinten igényli a fájlrendszer ismeretét, hogy kétszer is meggondolandó érdemes-e vele foglalkozni. Sokkal könnyebb az egész működést egy példán keresztül megérteni: komplett kötetek mount-olhatók üres NTFS mappákba. Ha belépünk a mappába a reparse pont jelzi az operációs rendszernek, hogy itt nem szokványos fájllistázást kell végrehajtania, hanem egy másik kötet tartalmát kell megjeleníteni. Így nincs szükség meghajtó betűjelekre, mert a minden partíció elhelyezhető egy mappában és úgy tűnik, mint ha a C:\ (vagy másik) köteten lenne. A mount eljárás a reparse pontok egyik típusa, de léteznek továbbiak is.
Nem túl gyakori azon esetek száma, amikor a reparse pontokkal kell foglalkoznunk, de a lehetőségünk megvan rá. Például kilistázhatjuk adataikat:
fsutil reparsepoint query c:\temp
A parancs a c:\temp mappa reparse adatbázisának információit jeleníti meg - feltéve, hogy tartozik hozzá.
Másik lehetőségünk, hogy töröljük a pontot egy adott helyről, megszüntetve az extra információkat:
fsutil reparsepoint delete c:\temp
sparse
A ritka fájlok (sparse files) nagy mennyiségű nullákat tartalmazó állományok, melyek az NTFS-nek köszönhetően nem foglalnak le annyi tárterületet, amennyit méretük indokolna. Felfoghatjuk egyfajta tömörítésnek is a fájlrendszer ezen működését. Például egy 10 GB-os, nullával töltött fájl ténylegesen nem 10 GB-ot foglal el, hanem lehet, hogy csak 64 KB-ot.
A következő paranccsal lekérdezhetjük, hogy a c:\capture.avi fájl ritka-e?
fsutil sparse queryflag c:\capture.avi
Ha nem, beállíthatjuk azzá:
fsutil sparse setflag c:\capture.avi
Jelenítsük meg a nem nullákat tartalmazó részeket a fájlban (a kapott adatok bájtokban értendők):
fsutil sparse queryrange c:\capture.avi
Töltsük fel a megadott részeket nullával:
fsutil sparse setrange c:\capture.avi 0 20000
Ahol 0 az eltolási érték (a fájl elejétől számítva ennyi bájt után kezdi a feltöltést), a 20000 pedig a feltöltési hossz.
quota
Ismét egy NTFS specifikus funkció következik a kvótarendszer képében. Segítségével szabályozhatjuk, hogy egy felhasználó maximálisan mennyi merevlemez területet vehet igénybe. Túllépés esetén lehet figyelmeztetni, az eseményt naplózni vagy egyszerűen megakadályozni a további tárterület használatot.
Kvóták lekérdezése a C: köteten:
fsutil quota query c:
Kvóták letiltása a C: köteten:
fsutil quota disable c:
A C: kötet kvótahasználatának nyomon követése:
fsutil quota track c:
Új kvótabejegyzést létrehozni és meglévőt módosítani ugyanazzal a paranccsal lehet:
fsutil quota modify c: 50000000 60000000 user1
Ahol 50000000 a figyelmeztetési szint (bájtban) és 60000000 a korlát, illetve a "user1" annak a felhasználónak a neve, melyre a területkorlátozás érvényes.
Nagyon hasznos lehet a következő parancs, mert végignézi a rendszer eseménynaplóját és megjeleníti a kvóta sértéseket:
fsutil quota violations

Mielőtt bármit is módosítanánk, elsőként be kell kapcsolni a használatát:
fsutil quota enforce c:
A parancs bekapcsolja a C: kötetet és egyben a túllépés megakadályozását is beállítja.
Objectid
Belső fájlazonosító szám, mely kötetenként garantáltan egyedi és így egyedileg azonosít egy fájlt. A Microsoft nem ajánlja, hogy módosítsuk őket, mert a teljes partíció elvesztését is eredményezheti egy hibás változtatást. Ennek ellenére a lehetőség adott. Fontos, hogy nem minden fájl rendelkezik objektum azonosítóval.
Adott fájl azonosítójának lekérdezése:
fsutil objectid query c:\capture.avi
Azonosító létrehozása, ha a fájl nem rendelkezik vele. Ha igen, akkor a kimenet megegyezik az előző parancséval.
fsutil objectid create c:\capture.avi
Azonosító törlése:
fsutil objectid delete c:\capture.avi
usn
Az usn egy sorszám, mely egy napló segítségével a fájlrendszerbe épülve a köteteken lévő változtatásokat jegyzi. Az usn módosítási naplóban minden fájllétrehozáskor, törléskor és módosításkor keletkezik egy új rekord, eltárolva a módosított objektum azonosítóját és a művelet típusát. Az Indexelő, fájlreplikációs, távtelepítési és távtároló szolgáltatások használják.
Usn módosítási napló létrehozása a C: meghajtón:
fsutil usn createjournal m=1000 a=250 C:
Ahol az m=1000 a napló által lefoglalt maximális lemezterület. Az a=250 pedig a felhasznált memóriaterület. Mindkét érték bájtokban értendő.
Usn napló törlése a C: köteten.
fsutil usn deletejournal /d c:
A /d kapcsoló alkalmazásával a letiltási periódusban is használható a fájlrendszer, míg a /n kapcsolóval nem (azért van jelentősége, mert a folyamat több percig is eltarthat).
A C: meghajtó usn sorszámainak lekérdezése:
fsutil usn queryjournal c:
Adott fájl usn adatainak lekérdezése:
fsutil usn readdata c:\capture.avi
volume
Végére marad egy egyszerű parancs, két alapszintű művelet elvégzésére.
Az adott köteten található szabad hely nagysága tudható meg a diskfree kapcsolóval:
fsutil volume diskfree c:
Illetve leválasztható egy csatlakoztatott kötet:
fsutil volume dismount d:

Fájlrendszer műveletek parancssorból cikksorozat