ext2
| ext2 | |
|---|---|
| Gyártó | Rémy-kártya |
| Teljes név | Második kiterjesztett fájlrendszer |
| Első kiadás | 1993. január ( Linux ) |
| Partíció azonosító |
Apple_UNIX_SVR2 ( Apple Partition Map ) 0x83 ( Master Boot Record ) EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 ( GPT ) |
| Technikai megvalósítás | |
| Fájlok | Inode |
| Maximális értékek | |
| A fájl mérete | 2 TiB |
| Az összes fájl száma | 10 18 |
| A fájlnév hossza | 255 bájt |
| Fájlrendszer mérete | 16 TiB |
| Engedélyezett karakterek a fájlnévben | Minden karakter, kivéve a NUL és / |
| tulajdonságait | |
| Időintervallum | 1901-12-13 20:45:52 - 2038-01-19 03:14:07 ( UTC +0) (lásd a 2038. évi problémát ) |
| Villák | támogatott |
| Fájljogok kezelése | POSIX |
| Átlátszó tömörítés | opcionális (lásd alább) |
| Átlátszó titkosítás | Nem |
| Operációs rendszerek támogatása | Linux, BSD, Mac OS X, Windows (az ext2 fájlrendszer-illesztőprogram vagy az Ext2 IFS segítségével ) |
A második kiterjesztett fájlrendszer , vagy röviddel ext2 , a második kiterjesztett fájlrendszer számára Linux - operációs rendszerek . Ez az eredeti ext - fájlrendszert követi , amelyet 1993 - ban a Rémy Card fejlesztett ki a Minix fájlrendszer alapján . A mai implementáció a Linux kernelben tőle, valamint Theodore Ts'o-tól és Stephen Tweedie-től származik. Az ext2 hosszú évekig a Linux-disztribúciók szokásos fájlrendszere volt, és végül korszerűbb naplózási fájlrendszerek váltották fel . Az utódai ext2 van ext3 és ext4 , ahonnan nagyrészt helyébe.
A GPLv2 alatt álló Linux kernel forráskódján kívül léteznek implementációk az AmigaOS , a FreeBSD , a GNU Hurd , a Mac OS X , a MiNT , a MorphOS , a NetBSD , az OpenBSD , az OS / 2 , a RISC OS és a Windows számára különböző licencek alatt. .
leírás
Az ext2 számos tulajdonságát megosztja a hagyományos Unix fájlrendszerekkel, például a blokkok, az inódok és a könyvtárak fogalmával . Kívánt esetben kibővíthető olyan funkciókkal, mint a hozzáférés-vezérlési listák , a töredékek, a törölt adatok helyreállítása és a tömörítés . A legtöbb említett funkciók nem hajtják végre, mint normál, de csak addig létezhet, tapaszok . Van egy olyan verziómechanizmus is, amely lehetővé teszi az új függvények lefelé kompatibilis hozzáadását (ahogy az ext3 naplózási kiterjesztésnél tettük ). Minden információt egy ext2 rendszeren tárolunk „ Little Endian ” formátumban, így a fájlrendszer különböző architektúrákra illeszthető összeütközések nélkül.
blokkok
Az ext2-vel formázott partíció helye blokkokra oszlik. Ezek rögzített mérete 1 KiB, 2 KiB vagy 4 KiB, az Alpha processzorokon 8 KiB blokkméretek is lehetségesek. A blokkok méretét a fájlrendszer létrehozásakor határozzák meg. A kisebb blokkok kevesebb fájlpazarlást eredményeznek fájlonként, de több költségre van szükségük a fájlok és a teljes fájlrendszer maximális méretének kezeléséhez és közvetett korlátozásához.
Csoportok blokkolása
Annak érdekében , hogy a kezdetektől fogva a lehető legnagyobb mértékben elkerülhető legyen a töredezettség , amely lassítaná az egymás utáni blokkok nagy mennyiségéhez való hozzáférést, a blokkokat csoportosítják. Az egyes blokkcsoportokról szóló információkat egy leíró táblázatban tároljuk, amely közvetlenül a szuperblokk után található. Két blokk a blokkcsoport kezdete közelében két bittérkép számára van fenntartva, amelyek jelzik a blokk és az inode foglaltságát a csoportban. Mivel minden bittérkép csak egy blokkot foglalhat el, az egyes blokkcsoportok maximális mérete (blokkokban) a blokk méretének nyolcszorosára korlátozódik (bájtokban). A bittérképeket követő blokkok tartalmazzák a blokkcsoport inode tábláját, a többiek pedig adatblokkként használhatók.
A szuperblokk
A szuperblokk minden információt tartalmaz a fájlrendszer konfigurációjáról. Az elsődleges szuperblokk 1024 bájttal van az eszköz eleje mögött, és fontos a fájlrendszer integrálásához ( csatlakoztatásához ) . A szuperblokk információi olyan mezőket tartalmaznak, amelyek megadják például a fájlrendszerben lévő blokkok és inódok számát, hány közülük szabad, hány inode és blokk található az egyes blokkcsoportokban, amikor a fájlrendszert csatlakoztatták, és hogy a legutóbbi változtatáskor leválasztották-e helyesen, melyik verzió érhető el, és melyik operációs rendszer hozta létre. Mivel a teljes fájlrendszer használhatatlan lenne, ha a szuperblokk megsérülne, a szuperblokk több példányát több blokkcsoportban tároljuk. Ezek a szuperblokk-példányok lehetővé teszik az eredeti szuperblokk kijavítását hiba esetén.
Ha a fájlrendszer 1. vagy újabb verziójú, a szuperblokkban további mezők vannak, amelyek meghatározzák a kötet nevét, egyedi azonosító számát, az inode méretét és helyet az opcionális fájlrendszer-funkciók konfigurációs információinak.
Inodes
Az inode (index csomópont) alapvető fogalom az ext2 fájlrendszerben. A fájlrendszer minden objektumát egy inode képviseli. Az inode struktúra mutatókat (hivatkozásokat) tartalmaz azokra a blokkokra, amelyekben az objektum adatait tárolják, valamint az objektumról szóló összes metaadatot , a nevét kivéve. A metaadatok tartalmazzák a hozzáférési jogokat, a tulajdonos, a csoport, a jelzőket, a méretet, a felhasznált blokkok számát, a hozzáférés idejét, a változás idejét, a törlés idejét, a linkek számát, a töredékeket, a verziót (az NFS előírja), a kiterjesztett attribútumokat és az esetleges hozzáféréseket ellenőrzési listák .
Van néhány kihasználatlan és túlterhelt mező az inode struktúrában. Az egyik mező a címtár-hozzáférés-vezérlési listának van fenntartva, ha az inode könyvtár, alternatív megoldásként ez a mező a fájlméret felső 32 bitjét tartja, ha az inode normál fájl (ez lehetővé teszi a 2 GiB feletti fájlméreteket ). A fennmaradó mezők nagy részét a Linux és a GNU Hurd használja kibővített tulajdonos- és csoportmezőként. A GNU Hurd további mezőket ismer a kiterjesztett jogkezeléshez és a program inode-jához, amely általában ezt az inode-t értelmezi.
Az inode-ban vannak az első 12 blokkra mutató mutatók , amelyek a fájl adatait tartalmazzák. Van még egy mutató egy közvetett blokkra (amely viszont tartalmaz egy mutatót a fájl következő blokkkészletére), egy mutató egy kettős közvetett blokkra (amely további közvetett blokkokra mutatókat tartalmaz), és egy mutató egy hármasra közvetett blokk (a kettős közvetett blokk mutatója tartalmazza).
További attribútumok
A Zászlók mező tartalmaz néhány ext2-specifikus zászlót, amelyeket például nem lehet chmodbefolyásolni. Ezek a zászlók felsorolhatók a programmal lsattrés chattrmegváltoztathatók. Ezek a zászlók lehetővé teszik a fájlok olyan különleges viselkedését, amelyeket a POSIX fájl zászlók nem képviselhetnek: Biztonsági törlés, visszavonhatatlanság, tömörítés, szinkron frissítések, írásvédelem, indexelt könyvtárak, naplók és még sok minden más létezik. A könyvtár attribútumait az újonnan létrehozott mögöttes fájlok öröklik. Az ext2 meghajtó azonban nem minden zászlót hajt végre a kernelben: például a „c” (tömörítés) attribútumot nem támogatja a Linux kern ext2 megvalósítása. Ehhez használták az azóta megszűnt extz projektet (= ext3 + tömörítés + titkosítás).
Könyvtárak és (kemény) linkek
A könyvtár egy fájlrendszer-objektum, és egy normál fájlhoz hasonlóan rendelkezik inóddal. Elvileg egy speciális fájlról van szó, amely a könyvtár minden fájlnevét egy inode számmal kapcsolja össze. A fájlrendszer újabb verziói tárolják az objektum típusát is (fájl, könyvtár, szimbolikus link , eszköz, FIFO , socket ) annak elkerülése érdekében, hogy magát az inode-ot ne kelljen ellenőrizni ezen információk után (annak érdekében, hogy ezt használni lehessen, a glibc újabb verziója szükséges).
A könyvtárba beírt fájlnévre hivatkozásként vagy hard linkként hivatkozunk, ha a szimbolikus linktől való megkülönböztetést hangsúlyozni kell. E mögött a linkek és a fájlok közötti "N-től 1-ig" kapcsolat áll. A felhasználói adatokból és az inode-ból álló fájl csak fájl elérési útján, azaz könyvtár bejegyzésen keresztül használható. Mivel egy fájlhoz tetszőleges számú könyvtár bejegyzés hozható létre, akkor ésszerű nem azonosítani őket a fájllal, hanem megérteni őket a fájlra való "hivatkozásként". Több fájlra mutató link ugyanabban a könyvtárban lehet. A linkek számát a fájl inode tárolja. A fájl utolsó hivatkozásának törlése után maga a fájl, azaz az inode és a felhasználói adatblokkok felszabadulnak.
Új könyvtárfájl létrehozásakor két linket állítanak fel: egyet a magasabb szintű könyvtárban a kiválasztott könyvtárnévvel, egyet pedig a "" névvel. "Magában az új könyvtárban. Az alkönyvtárak mindegyikének tartalmaz egy" .. "nevű hivatkozást a a magasabb szintű könyvtárfájl. A két "." És ".." link megegyezik a fájlrendszer gyökérkönyvtárával.
Speciális fájlok
Szimbolikus linkek
A szimbolikus linkek inode-okat tartalmazó fájlrendszer-objektumok is. Ha azonban a link 60 bájtnál rövidebb, akkor az adatait közvetlenül az inode tárolja. Ez olyan mezőket használ, amelyek normál esetben az adatblokkok mutatóit tartanák. Mivel a legtöbb link kevesebb, mint 60 karakter hosszú, ez megmenti a blokk használatát a szimbolikus hivatkozáshoz. A szimbolikus hivatkozások a fájlrendszer határain túl is használhatók (több merevlemezen vagy partíción is). Előfordulhat, hogy a fájl, amelyre a szimbolikus hivatkozás utal, törlődik, de a hivatkozás megmarad. A link tehát egy olyan fájlra mutat, amely már nem létezik, és így használhatatlanná vált.
Eszközfájlok
A karakter- és blokkorientált eszközökhöz soha nem rendelünk adatblokkokat. Ehelyett a kernel által kiosztott eszközszámot az inode tárolja, ismét felhasználva a mutató mezőket az adatblokkokhoz.
Foglalt hely
A fájlrendszeren belül bizonyos számú blokkot lehet lefoglalni egy bizonyos felhasználó számára, általában a rendszergazda gyökér számára . Ez lehetővé teszi a rendszer működését akkor is, ha a kiváltságtalan felhasználók kitöltik a rendelkezésükre álló teljes területet. A mechanizmus a lemezkvótáktól függetlenül működik . Segít megakadályozni a fájlrendszer teljes feltöltését és ezáltal a széttöredezettség elleni küzdelmet is.
A fájlrendszer ellenőrzése
Az indítási szakaszban a legtöbb rendszer konzisztencia- ellenőrzést ( e2fsck ) hajt végre a fájlrendszerein. Az ext2 rendszer szuperblokkja több mezőt tartalmaz, amelyek jelzik, hogy fsckfutnia kell-e (mivel a fájlrendszer ellenőrzése sokáig tarthat, ha nagyon nagy). fsckáltalában akkor fut, ha a fájlrendszert nem szerelték le megfelelően, vagy túllépték a két rutinellenőrzés közötti konfigurálható maximális időt.
kompatibilitás
Az ext2 egy kifinomult kompatibilitási mechanizmussal rendelkezik, amely lehetővé teszi a fájlrendszerek használatát olyan kernek alatt , amelyek ext2fs illesztőprogramja nem tud semmit a használt funkciókról. A kompatibilitási mechanizmus az ext2fs 1. verziója óta elérhető. Három 32 bites mező található, az egyik a kompatibilis tulajdonságokhoz (COMPAT), egy a csak olvasható szolgáltatásokhoz (RO_COMPAT) és egy az inkompatibilis tulajdonságokhoz (INCOMPAT).
A COMPAT jelző azt jelenti, hogy a fájlrendszer tartalmaz egy tulajdonságot, de a lemezen lévő adatformátum 100% -ban kompatibilis a régebbi formátumokkal, így egy kern, amely nem ismeri ezt a funkciót, olvashat és írhat a fájlrendszerben anélkül, hogy következetlenné tenné azt. A COMPAT zászló legjobb példája az ext3 fájlrendszer HAS_JOURNAL függvénye. Az ext3 támogatás nélküli rendszermag könnyen csatlakoztathat egy ilyen fájlrendszert, mint ext2fs, majd a napló használata nélkül, bármi károsítása nélkül írhat rá.
A RO_COMPAT jelző azt jelzi, hogy a fájlrendszer adatformátuma 100% -ban kompatibilis a régebbi formátumokkal olvasás közben. Azonban egy kernel, amely nem ismeri a kérdéses funkciót, megrongálhatja a fájlrendszert, amikor arra ír, ezért ezt megakadályozzuk. Az olvasással kompatibilis tulajdonságokra példa a SPARSE_SUPER, egy fájlrendszer-elrendezés, amelyben a normálnál kevesebb szuperblokk-mentést tárolnak a lemezen. Egy régi kernel gond nélkül képes olvasni egy ilyen merevlemezről, de ha megpróbálna írni, akkor az írási rutinja félrevezető hibaüzeneteket eredményezne, és a bittérképek következetlenné válhatnak.
Az INCOMPAT zászló azt jelzi, hogy az adatformátum oly módon változott, hogy a tulajdonság nélküli kernelek sem írni, sem olvasni, sem csatlakoztatni nem tudtak. Az opcionális tömörítés egy nem kompatibilis kiegészítő funkció példaként szolgálhat; egy kernel, amely nem tudja kibontani az adatokat, csak a szemetet olvassa a lemezről. Még egy inkonzisztens ext3 fájlrendszer sem kompatibilis mindaddig, amíg egy ext3-képes kernel elolvasta a naplót és megszüntette az ellentmondásokat. Ezután az ext3 rendszert újra csatlakoztathatjuk ext2 néven.
Új tulajdonságok hozzáadása az ext2 / 3 fájlrendszerhez mindig megköveteli a társított e2fsprogs eszközkészlet frissítését , mivel az abban található ellenőrző eszközöknek ismerniük kell az összes fájlrendszer tulajdonságát annak érdekében, hogy az inkonzisztenciákat megbízhatóan lehessen azonosítani és kijavítani.
A fájlrendszer korlátai
| Blokk mérete: | 1 KiB | 2 KiB | 4 KiB | 8 KiB |
|---|---|---|---|---|
| max. fájlméret: | 16 GiB | 256 GiB | 1 TiB | 2 TiB |
| max. fájlrendszer-méret: | 4 TiB | 8 TiB | 16 TiB | 32 TiB |
Az ext2 fájlrendszer bizonyos korlátozásainak okai egyrészt az adathordozón lévő adatformátumon, másrészt az alapul szolgáló operációs rendszer kerneljén alapulhatnak. Legtöbbjüket egyszer állítják be a fájlrendszer létrehozásakor, és a kiválasztott blokkmérettől, valamint a blokkok és az inódok kiválasztott arányától függenek. Alapértelmezés szerint a 8 KiB blokkméretek csak Alpha architektúrákon, valamint speciálisan konfigurált és javított más architektúrákon lehetségesek. A kernel képességeitől függetlenül, néhány olyan nagy felhasználói fájlokat támogató felhasználói térprogram, amely nem támogatja a nagy fájlokat, nem képes megfelelően kezelni a 2 GiB-nél nagyobb fájlokat.
A fájlrendszer 32 000-re korlátozza az alkönyvtárak számát egy adott könyvtárban. Figyelmeztetést adnak ki akkor is, ha egy könyvtárban több mint 10 000 - 15 000 fájl található, amelyek ilyen nagy könyvtárakban a fájlműveletek hosszú ideig tarthatnak. A fájlok maximális száma akadémiai jellegű, mivel már elég nehéz lesz fájlneveket létrehozni a könyvtárankénti 130 kvintmilliárd (10 18 elérés) fájlkorlát előtt .
Lásd még
Egyéni bizonyíték
- ↑ Ext2 fájlrendszer-illesztőprogram (Ext2fsd) - natív hozzáférést biztosít az ext2-hez Windows alatt
- ↑ Ext2 Installable File System for Windows - lehetővé teszi natív hozzáférést az ext2-hez Windows alatt
- ↑ ahol 1 KiB = 1024 bájt, 1 MiB = 1024 KiB, 1 GiB = 1024 MiB, 1 TiB = 1024 GiB
web Linkek
- A második kiterjesztett fájlrendszer tervezése és megvalósítása (angol)
- ext2fs projektoldal a Sourceforge-nál
- ext2 a Linwikiben
- Dave Poirier - A második kiterjesztett fájlrendszer: belső elrendezés (2009)
- Explore2fs: Windows program, amely telepítés és meghajtók nélkül olvassa az ext2 és az ext3 fájlrendszereket
- e2undel , program a törölt fájlok helyreállítására az ext2 alatt a Sourceforge-nál