Meny
Är gratis
registrering
Hem  /  Firmware/ Typer av Linux-filsystem och deras funktioner. Fysisk organisation av ext2, ext3, ext4 filsystem Ext2 filsystem

Typer av Linux-filsystem och deras funktioner. Fysisk organisation av ext2, ext3, ext4 filsystem Ext2 filsystem

Linux-filsystemet är oftast ext4. Det är journalföring och gör att du bekvämt kan arbeta med data när du löser de allra flesta problem. Det finns dock andra. Grundläggande typer filsystem och principerna för att arbeta med dem kommer att övervägas inom ramen för detta material.

Filtyper Linux-system och deras egenskaper

Utmärkande egenskaper är hastigheten för att arbeta med filer, säkerhet och parametrar (som blockstorlek) som finns som standard och som ställs in när du skapar en FS. Den kanske viktigaste egenskapen är närvaron av en journal. V system-logg data skrivs eller metadata(endast rubriker) genom vilka information kan återställas i händelse av ett fel.

Filsystemet kan skapas på vilken enhet som helst: disk eller systempartition.

EXT2 filsystem

EXT2 är för närvarande ett föråldrat filsystem som knappast används i moderna installationer. den största nackdelen är bristen på loggning, vilket gör det omöjligt att återställa data i händelse av ett fel. Det används fortfarande på bärbara lagringsmedia som USB. De behöver ingen tidning eftersom de tar en viss plats.

Garanterar också maximal arbetshastighet.

  • för EXT2 är den maximala filstorleken -2 TB

EXT3 filsystem

Ersatt EXT2, huvud funktionär tidningens utseende, är helt bakåtkompatibel med EXT2 (EXT2 kan fritt konverteras till EXT3). Nu är det också sällsynt, EXT4 används nästan alltid.

Loggen är ett speciellt område i minnet där information om alla ändringar registreras

  • för EXT3 är den maximala filstorleken -2 TB
  • maximal storlek på alla filer - 32 TB
  • varje katalog kan ha upp till 32 000 underkataloger

Det finns tre alternativ för journalföring (anges när filsystemet skapas):

  • journal - journalens metadata, såväl som själva informationen
  • ordered - standardalternativet, endast metadata sparas efter skrivning till disk
  • återskrivning - även enbart metadata sparas, du kan välja att spara det innan du skriver till disk eller efter

EXT4 filsystem

Den moderna versionen av det utökade filsystemet, det används oftast

  • max filstorlek -2 TB 16 TB
  • den maximala storleken på alla filer är 1 EB (exabyte). 1 EB = 1024 PB (petabyte). 1 PB = 1024 TB (terabyte).
  • varje katalog kan ha upp till 64 000 underkataloger

I EXT4 kan loggning stängas av genom att ställa in alternativet data när den är monterad i av

EXT som det huvudsakliga Linux-filsystemet och öva

Filsystemet skapas av kommandot mk2fs

Det erforderliga loggningsalternativet anges under monteringen, till exempel:

montera / dev / vdc / mnt / 1 -t ext3 -o data = journal

Konvertering från EXT2 E till XT3

ReiserFS

ReiserFS (och den moderna SELinux-aktiverade implementeringen av Reiser4) har bra prestanda och är mycket produktiv - speciellt när man arbetar med stor mängd små filer. ReiserFS allokerar inte inoder för varje liten fil genom att bearbeta dem tillsammans, inte heller använder ReiserFS en journal med flera tillgängliga alternativ. Filsystemet stöds för närvarande av utvecklare från Ryssland.

Du kan skapa FS för enheten med kommandot

XFS

XFS är ett journaliserat filsystem. Använder RAM för att lagra information, så dataförlust är möjlig - till exempel när strömmen är avstängd.

För att använda XFS på Ubuntu måste du installera paket xfsprogs och xfsdump

vfat

Linux-filsystemet finns också i Windows-miljön. Det används när du behöver organisera gemensam åtkomst till vissa diskar och partitioner av klienter med olika operativsystem. I andra fall rekommenderas det inte att använda det eftersom det kan vara svårt när man arbetar i Linux.

Låt oss ta en titt på den logiska strukturen för ext2fs-filsystemet. Hårddisken är fysiskt uppdelad i 512-byte sektorer. Den första sektorn av en diskpartition på vilket filsystem som helst anses vara startområdet. I den primära sektionen innehåller detta område startposten, en kodbit som initierar uppstartsprocessen för operativsystemet vid uppstart. Detta område används inte i andra avsnitt. Resten av sektorerna kombineras till logiska block på 1, 2 eller 4 kilobyte. Ett logiskt block är den minsta adresserbara databiten: data för varje fil upptar ett heltal av block. Block kombineras i sin tur till blockgrupper. Blockgrupper och block inom en grupp numreras sekventiellt, med början från 1.

Datastrukturerna som används när man arbetar med filsystemet ext2fs beskrivs i rubrikfilen / usr / include / linux / ext2fs .h.

Superblocket fungerar som startpunkten för filsystemet och lagrar alla

information om henne. Den är 1 024 byte stor och ligger på 1 024 byte från början av filsystemet. I varje grupp av block dupliceras det, vilket gör att du snabbt kan återställa det efter misslyckanden. Superblocket bestämmer storleken på filsystemet, det maximala antalet filer i partitionen, mängden ledigt utrymme och innehåller information om var man ska leta efter oallokerade områden. När operativsystemet startar läses superblocket in i minnet och alla ändringar i filsystemet återspeglas först i kopian av superblocket i operativsystemet och skrivs till disken endast periodvis. Detta förbättrar systemets prestanda eftersom många användare och processer ständigt uppdaterar filer. Å andra sidan, när systemet stoppas måste superblocket skrivas till disken, vilket inte tillåter att du stänger av datorn genom att helt enkelt stänga av strömmen. Annars, vid nästa start, kommer informationen som skrivits i sunblocket inte att vara det

motsvarande filsystemets verkliga tillstånd.

Superblocket följs av beskrivningen (deskriptorn) av blockgruppen. Informationen som lagras i den låter dig hitta block- och inodbitmapparna och inodtabellen.

En blockbitmapp är en struktur där varje bit indikerar om samma block är tilldelat en fil. Ett värde på 1 indikerar att blocket är upptaget. Den här kartan används för att söka efter lediga block i de fall du behöver tilldela utrymme för en fil.

Inodbitmappen utför en liknande funktion som inodtabellen: den visar vilka deskriptorer som används.

Varje fil har en och endast en inod (inod, i-nod, informationsnod), som identifieras med sitt sekvensnummer - filindexet. Inoden lagrar filens metadata. Bland dem - alla attribut för filen, förutom dess namn, och en pekare till fildata.

För en vanlig fil eller katalog är denna pekare en array med 15 blockadresser. De första 12 adresserna i denna grupp är direkta referenser till blocknumren i vilka fildata lagras. Om data inte passar in i 12 block, är den indirekta adresseringsmekanismen aktiverad. Nästa adress i denna array är en indirekt referens, det vill säga adressen till blocket som lagrar listan över adresser för nästa block med data från denna fil.

Hur många datablock kan du adressera så här? Blockadressen tar 4 byte, blocket, som redan nämnts, är 1, 2 eller 4 kilobyte. Detta innebär att 256 - 1024 block kan rymmas genom indirekt adressering.

Och om filen är ännu längre? Nästa adress i pekarmatrisen pekar på ett dubbelt indirekt block (dubbelt indirekt block). Detta block innehåller en lista med blockadresser, som i sin tur innehåller adresslistorna för följande datablock.

Och slutligen anger den sista adressen i pekarmatrisen adressen för det trippelinriktade blocket, det vill säga blocket med en lista med blockadresser som är dubbla indirektionsblock.

Det är fortfarande oklart var filnamnet finns om det inte ingår i filens data eller i dess metadata. I UNIX-liknande system är filnamnet inte ett attribut för själva filen, utan för filsystemet, uppfattat som en logisk katalogstruktur. Filnamnet lagras endast i den katalog som filen är tilldelad och ingen annanstans. Konstiga konsekvenser följer av detta.

För det första kan valfritt antal namn som tilldelas olika kataloger motsvara en enda inod, och de är alla verkliga. Antalet namn (hårda länkar) räknas i inoden. Detta är siffran du kan se med kommandot Is -1.

För det andra innebär att ta bort en fil helt enkelt att ta bort posten om den från katalogdata och minska antalet länkar med 1.

För det tredje kan du bara matcha ett namn till ett inodnummer inom samma filsystem, vilket är anledningen till att du inte kan skapa en hård länk till ett annat filsystem (symboliskt - du kan, det har en annan lagringsmekanism).

Själva katalogen tilldelas sin överordnade katalog på samma sätt. Rotkatalogen skrivs alltid till inod nummer 2 (nummer 1 är reserverat för listan över dåliga blockadresser). Varje katalog innehåller en länk till sig själv och till dess överordnade katalog - dessa är pseudo-underkatalogerna "." och "...".

Således är antalet länkar till en katalog lika med antalet underkataloger plus två.

Katalogdata är en länkad lista med poster med variabel längd och ser ut ungefär så här:

Ext2fs katalogstruktur

Hur är det med fysiska enhetsfiler? De kan finnas i samma kataloger som vanliga filer: det finns inga data i katalogen som indikerar att namnet tillhör en fil på en disk eller en enhet. Skillnaden är på inodnivån. Om i-noden för en vanlig fil pekar på diskblock där dess data lagras, så innehåller i-noden för enhetsfilen en pekare till listan över enhetsdrivrutiner i kärnan - elementet i listan som motsvarar huvudenhetsnummer:

Skillnad mellan vanlig fil och enhetsfil

Ext2fs filsystemegenskaper:

Den maximala filsystemets storlek är 4 TB.

Den maximala filstorleken är 2 GB.

Den maximala längden för ett filnamn är 255 tecken.

Minsta blockstorlek är 1024 byte.

Antalet inoder att allokera är 1 per 4096 byte av partitionen.

Hur in Windows miljö gör det möjligt att komma åt en diskpartition eller flyttbara media med filsystem Ext2 / 3/4 ? Om det till exempel också finns ett andra system på datorn Linux... Och du måste arbeta med dess data från omgivningen Windows... Eller ett annat exempel - när inuti Windows är monterade virtuella diskar med installerad på virtuella maskiner system Linux eller Android... Med Ext2 / 3 / 4 Windows vet inte hur man fungerar inbyggt, det behöver tredje parts medel. Vilka är dessa medel? Tänk på dem nedan.

***
De tre första medlen kommer att göra det möjligt att endast läsa informationsenheter från Ext2 / 3/4... Den senare lösningen kommer att tillåta både läsning och skrivning av data. Alla verktyg som diskuteras nedan är gratis.

1. DiskInternals Linux Reader

Ett enkelt program är en primitiv filhanterare, gjord som en vanlig Windows utforskaren, med stöd för filsystem Ext 2/3/4 , Reiser4 , HFS , UFS2... I programfönstret kommer vi att se partitioner och enheter med Linux eller Android.

För att kopiera, välj en mapp eller fil, tryck på knappen "Spara".

Ange sedan kopieringssökvägen.

2. Plugin för Total Commander DiskInternals Reader

Älskare av det populära kan extrahera data Linux eller Android inuti Windows med den här filhanteraren. Men efter att ha installerat en speciell plugin i den tidigare. En av dessa plugins är att den kan ansluta och läsa informationsenheter formaterade i Ext2 / 3/4 , Fett / exFAT , HFS / HFS + , ReiserFS... Ladda ner plugin, packa upp dess arkiv inuti , bekräftar vi installationen.

Lansera (Viktig) som administratör. Vi går till avsnittet. Klick.

Här, tillsammans med andra partitioner av disken och media, den med Ext2 / 3/4 .

Data kopieras med traditionella sätt - med F5-tangenten på den andra panelen.

3. Plugin för Total Commander ext4tc

Ett förenklat alternativ till den tidigare lösningen - ext4tc, ett annat plugin för ... Den kan ansluta för att läsa informationsenheter som endast är formaterade i Ext2 / 3/4... Ladda ner plugin, packa upp dess arkiv i filhanteraren, starta installationen.

Lansera (Viktig) som administratör. Vi klickar. Vi går till.

Om du behöver kopiera data använder vi det vanliga sättet med F5-tangenten.

4. Ext2Fsd-stöddrivrutin

Program Ext2FsdÄr föraren Ext2 / 3/4, implementerar den stöd för dessa filsystem på operativsystemnivå. Med diskpartitioner och enheter formaterade i dessa filsystem kan du arbeta som vanligt, med stöd Windows-enheter information i utforskarfönstret eller tredjepartsprogram... Drivrutinen tillåter både att läsa och skriva data.

Ladda ner det senaste aktuell version Ext2Fsd.

Vid installation aktiverar vi (om för långsiktigt arbete) tre föreslagna kryssrutor:

1 - Autorun drivrutin tillsammans med Windows;
2 - Inspelningsstöd för Ext2;
3 - Formateringsstöd för Ext3.

I pre-finish-stadiet aktiverar vi alternativet att starta drivrutinshanteraren - - med åtföljande tilldelning av information till enheter från Ext2 / 3/4 drivbokstäver.

I fönstret som öppnades vi kommer att se mediet med bokstaven redan tilldelad. Till exempel, i vårt fall, transportören med Ext4 den första fria bokstaven anges F.

Nu kan vi arbeta med disken F i utforskarfönstret.

Tilldela ett brev till nya anslutna enheter med Ext2 / 3/4 du kan använda innehållsmeny anropade var och en av de som visas i fönstret enheter. Men helt enkelt när du tilldelar en enhetsbeteckning kommer en sådan enhet inte att visas efter starta om windows, den här lösningen är endast för en datorsession. Att göra en ny enhet med Ext2 / 3/4 permanent synlig i Windows-miljön, måste du dubbelklicka på den för att öppna inställningsfönstret och ställa in parametrarna för permanent anslutning. I den andra kolumnen behöver du:

För flyttbara media, aktivera kryssrutan, indikerad med siffran 1 på skärmdumpen, och ange enhetsbeteckningen;
För interna diskar och partitioner, aktivera kryssrutan, indikerad på skärmdumpen nedan med nummer 2, och ange även enhetsbeteckningen.

Filsystem(engelsk filsystem) - en order som bestämmer sättet att organisera, lagra och namnge data på lagringsmedia för IT-utrustning (med hjälp av bärbara flashminneskort i bärbara elektroniska apparater: digital kameror, mobiltelefoner etc.) och datateknik... Den definierar formatet för innehållet och fysisk lagring av information, som vanligtvis grupperas i form av filer. Det specifika filsystemet bestämmer storleken på filnamnet (mappen), den maximala möjliga fil- och sektionsstorleken och en uppsättning filattribut. Vissa filsystem tillhandahåller tjänstefunktioner, såsom åtkomstkontroll eller filkryptering.

Filsystemuppgifter

Huvudfunktionerna i alla filsystem syftar till att lösa följande uppgifter:

filnamn;

mjukvarugränssnitt för arbete med filer för applikationer;

mappa den logiska modellen för filsystemet till den fysiska organisationen av datalagret;
organisation av filsystemets motståndskraft mot strömavbrott, maskinvaru- och mjukvarufel;

I fleranvändarsystem dyker en annan uppgift upp: skydda en användares filer från obehörig åtkomst av en annan användare, samt säkerställa gemensamt arbete med filer, till exempel när en fil öppnas av en av användarna, för andra samma sak filen kommer att vara tillfälligt tillgänglig i skrivskyddat läge ...

Filsystemet är den grundläggande strukturen som används av en dator för att organisera information på en hårddisk. När du installerar en ny hårddisk den måste partitioneras och formateras för ett specifikt filsystem, varefter data och program kan lagras på den. Det finns tre möjliga alternativ Filsystem: NTFS, FAT32 och det sällan använda äldre FAT-systemet (även känt som FAT16).

NTFS är det föredragna filsystemet för denna version av Windows. Det har många fördelar jämfört med det tidigare FAT32-systemet; några av dem är listade nedan.

Möjlighet att automatiskt återställa från vissa diskfel (FAT32 har inte denna förmåga).
Förbättrat stöd för stora hårddiskar.
Högre grad av säkerhet. Det är möjligt att använda behörigheter och kryptering för att neka användarna åtkomst till vissa filer.

FAT32-filsystemet och det sällan använda FAT-systemet användes tidigare Windows-versioner inklusive Windows 95, Windows 98 och Windows Millenium Edition. FAT32-filsystemet tillhandahåller inte den säkerhetsnivå som tillhandahålls av NTFS, så om din dator har en partition eller volym formaterad för FAT32, är filerna på den partitionen synliga för alla som har tillgång till datorn. FAT32-filsystemet har också filstorleksbegränsningar. I den här versionen av Windows är det inte möjligt att skapa en FAT32-partition som är större än 32 GB. Dessutom kan en FAT32-partition inte innehålla en fil som är större än 4 GB.

Den främsta anledningen till att använda FAT32-systemet är att datorn kan köra både Windows 95, Windows 98 eller Windows Millenium Edition och denna version av Windows (konfiguration med flera operativsystem). För att skapa en sådan konfiguration måste du installera den tidigare versionen av operativsystemet på en partition som är formaterad för FAT32 eller FAT, vilket gör den till den primära (den primära partitionen kan innehålla operativsystemet). Andra partitioner som nås från tidigare versioner av Windows måste också formateras för FAT32. Mer tidiga versioner Windows kan bara komma åt NTFS-nätverkspartitioner eller -volymer. NTFS-partitioner på den lokala datorn kommer att vara otillgängliga.

FAT - proffs:

Det krävs lite för att fungera effektivt random access minne.
Snabbt arbete med små och medelstora kataloger.
Skivan gör färre huvudrörelser i genomsnitt (jämfört med NTFS).
Effektivt arbete på långsamma diskar.

FET - nackdelar:

Katastrofal prestandaförlust med ökande fragmentering, särskilt för stora enheter (endast FAT32).
Svårigheter med slumpmässig tillgång till stora (säg 10 % eller mer av diskstorleken) filer.
Mycket långsamt arbete med kataloger som innehåller ett stort antal filer.

NTFS - proffs:

Fragmentering av filer har nästan inga konsekvenser för själva filsystemet - prestandan för ett fragmenterat system försämras endast när det gäller åtkomst till själva fildatan.
Katalogstrukturens komplexitet och antalet filer i en katalog utgör inte heller några särskilda hinder för prestanda.
Snabb åtkomst till ett godtyckligt fragment av en fil (till exempel redigering av stora .wav-filer).
I hög grad snabb åtkomst till små filer (flera hundra byte) - hela filen finns på samma plats som systemdata (MFT-post).

NTFS - nackdelar:

Stora krav på systemminne (64 MB är det absoluta minimum, bättre är mer).
Långsamma enheter och styrenheter utan Bus Mastering försämrar kraftigt NTFS-prestandan.
Mellanstora kataloger är svåra att arbeta med eftersom de nästan alltid är fragmenterade.
En disk som fungerar under lång tid i 80% - 90% fullt tillstånd kommer att visa extremt låg prestanda.

Följande filsystem anses vara "inbyggda" för Linux (det vill säga de som det kan installeras på och från vilka det kan starta): ext2fs, ext3fs, ext4fs, ReiserFS, XFS, JFS. De erbjuds vanligtvis att välja mellan när man installerar de allra flesta distributioner. Naturligtvis finns det sätt Linux installationer på filsystem FAT / VFAT / FAT32, men detta är bara för de älsklingar och monsieurer som förstår mycket om perversioner, och jag kommer inte att prata om dem.

Huvudkriterierna vid val av filsystem är vanligtvis tillförlitlighet och prestanda. I vissa fall är det också nödvändigt att ta hänsyn till kompatibilitetsfaktorn - i det här fallet hänvisar det till andra operativsystems förmåga att komma åt ett visst filsystem.
Jag börjar med ReiserFS - eftersom anledningen till att skriva denna anteckning var frågan: vad ska anses vara små filer? Det är trots allt välkänt att det är effektiviteten i att arbeta med små filer som är starka sida detta filsystem.

Så små filer betyder filer som är mindre än filsystemets logiska block, vilket i Linux i de flesta fall är lika med fyra kilobyte, även om det kan ställas in under formatering inom vissa gränser (beroende på den specifika FS). Det finns otaliga sådana små filer i alla Unix-liknande operativsystem. Typiska exempel är filerna som utgör FreeBSD-portsträdet, Gentoo-portar och liknande portsystem.
I de flesta filsystem har sådana minifiler en egen inod (en informationsnod som innehåller metainformation om en fil) och ett datablock, vilket leder till både slöseri med diskutrymme och en minskning av filoperationshastigheten. I synnerhet är detta just anledningen till den katastrofala drömmen av fil FreeBSD-system(både gammalt, UFS, och nytt, UFS2) när man arbetar med sitt eget portsystem.

I ReiserFS-filsystemet, i sådana fall, tilldelas inte separata block för data - det lyckas klämma in fildata direkt i området för sin inod. På grund av detta sparas både diskutrymme och prestanda ökar - bokstavligen flera gånger jämfört med alla andra FS.
Sådan hantering av små filer av ReiserFS var orsaken till legenden om dess opålitlighet. Faktum är att i händelse av en filsystemkrasch (det vill säga förstörelse av serviceområden), försvinner data som finns tillsammans med dess inoder tillsammans med dem - och oåterkalleligt. Medan i de filsystem där inoder och datablock alltid är spatialt åtskilda, kan de senare teoretiskt återställas. Så för ext2 / ext3 finns det till och med verktyg för att göra detta.

Men som vilken legend som helst ger den här bara intrycket av äkthet. För det första gäller oåterställbar dataförlust endast för mycket små filer. Det finns praktiskt taget inga sådana användare bland användarna, medan alla andra lätt kan återställas från distributionssatsen.
För det andra, när jag pratade om möjligheten att återställa data från block som har förlorat sin bindning till sina inoder, använde jag inte av misstag ordet "teoretisk". För i praktiken är denna aktivitet extremt mödosam och ger inte ett garanterat resultat. Alla som har varit tvungna att göra detta kommer att hålla med om att det är möjligt att överlämna sig till det endast från fullständig förtvivlan. Och detta gäller alla Linux-filsystem. Så denna aspekt kan försummas när man väljer ett filsystem.

När det gäller övergripande prestanda är ReiserFS definitivt snabbare än alla andra journalförings-FS, och i vissa avseenden överträffar den ext2. Jämförelse av hastigheten för några vanliga filfiloperationer kan hittas här.
Men med kompatibiliteten för ReiserFS är situationen något värre. Åtkomst till det från ett operativsystem i Windows-familjen, så vitt jag vet, är omöjligt. Vissa BSD-operativsystem (DragonFlyBSD, FreeBSD) stöder detta filsystem, men i skrivskyddat läge. Även chansen att en godtycklig Linux LiveCD från förr inte har ReiserFS-stöd är inte noll.

Och här är det helt rätt att komma ihåg ext3fs. Dess fördel är inte alls större tillförlitlighet - det här är samma legend som instabiliteten hos ReiserFS. Jag har hört lika mycket om ext3fs-krascher som jag har hört från ReiserFS. Själv kunde jag inte förstöra varken det ena eller det andra. Såvida det inte fungerade med ext2 - men även det var väldigt länge sedan, vid tiden för 2.2-kärnan (eller till och med 2.0).

Nej, den största fördelen med ext3fs är dess kompatibilitet - det är garanterat att läsas av alla Linux-system. Till exempel, när jag återhämtade mig från någon gammal LiveCD-hantlangare - en situation som praktiskt taget inte är så otrolig, var jag tvungen att ge mig in i den. Återigen, de flesta BSD-system förstår ext3fs enkelt (om än utan journalföring). För Windows finns det också, så vitt jag vet, alla typer av drivrutiner och plug-ins för det vanliga filhanterare(tycka om Total befälhavare), ger åtkomst till partitioner med ext2fs / ext3fs.

När det gäller prestanda är ext3fs kontroversiellt. För det första är dess prestanda starkt beroende av loggningsläget, av vilka det finns tre: med fullständig dataloggning, partiell dataloggning och endast metadataloggning. I vart och ett av lägena visar den olika prestanda på olika typer filoperationer. Men framförandet är inte i något fall rekord.

Men om prestationskravet sätts i första hand, så visar sig ext2fs vara utanför konkurrensen - men i det här fallet får du stå ut med frånvaron av journalföring alls. Och följaktligen, med långa kontroller av filsystemet i händelse av felaktig avstängning - och med storleken på moderna diskar, kan detta ta oj, hur lång tid ...

Följande kan sägas om XFS. När det gäller kompatibilitet gäller allt som är skrivet för ReiserFS för det - dessutom tills en tid stöddes det inte av standard Linux-kärnan. Ur prestandasynpunkt lyser det inte heller på XFS, agerar totalt på ungefär samma nivå som ext3fs. Och vid operationen för att radera filer visar det i allmänhet en deprimerande långsamhet.
Enligt mina observationer motiverar användningen av XFS sig själv när man arbetar inte bara med stora, utan med mycket stora filer- som egentligen bara är DVD-bilder och videofiler.

Återgå till frågan om tillförlitlighet. En banal avstängning under normalt användararbete migrerar som regel smärtfritt alla journaliserade filsystem (och inget av dem garanterar säkerheten för användaroperationer som inte är skrivna till disk - att rädda drunknande människor här förblir de drunknandes egen uppgift). Det är sant att för alla filsystem kan du simulera en situation där avstängning av strömmen kommer att leda till mer eller mindre allvarlig skada på den. Men i verkliga livet är det osannolikt att sådana situationer uppstår. Och du kan helt eliminera dem genom att köpa en källa avbrottsfri strömförsörjning- Det kommer att ge mer förtroende för datasäkerheten än typen av filsystem. Tja, garantin för att återställa skadad data i alla fall kan bara vara deras vanliga säkerhetskopiering ...

Jag tror att ovanstående information räcker för ett välgrundat val. Min personligt val under de senaste åren - ReiserFS. Ibland, på system där det är motiverat att flytta allt från rotpartitionen, är det tillrådligt att använda ext3fs för rotfilsystemet och ReiserFS för alla andra.

Om en separat partition tillhandahålls för / boot-katalogen (och detta rekommenderas när GRUB-starthanteraren används av dess utvecklare) - för det är inget annat filsystem, förutom ext2fs, motiverat, någon form av journalföring är inte meningsfullt här . Slutligen, om du skapar en separat sektion för alla typer av multimediamaterial, kan du tänka på XFS.

Om du närmar dig förklaringen mer metodiskt

ext - Under de första dagarna av Linux var det dominerande systemet ext2 (extended filsystem version 2). Sedan 2002 har det ersatts av ext3-systemet, som till stor del är kompatibelt med ext2, men även stöder journalfunktioner, och när man arbetar med kärnversion 2.6 och högre stöder det även ACL. Den maximala filstorleken är 2 TB och den maximala filsystemets storlek är 8 TB. I slutet av 2008 tillkännagavs officiellt en version av ext4, som är bakåtkompatibel med ext3, men många funktioner implementeras mer effektivt än tidigare. Dessutom är den maximala filsystemets storlek 1 EB (1 048 576 TB), och du kan förvänta dig att detta belopp kommer att räcka ett tag. Om reiser - Systemet fick sitt namn efter sin grundare, Hans Reiser, och var det första loggningssystemet som fick tillgång till Linux-kärnan för data. Zn-versionen i SUSE har till och med ansetts vara standard under en tid. De främsta fördelarna med reiser framför ext3 är dess högre hastighet och placeringseffektivitet när du arbetar med små filer (och i filsystemet är som regel de flesta filer små). Med tiden har dock utvecklingen av reisefers avstannat. Det har länge meddelats om releasen av version 4, som fortfarande inte är klar, och stödet för version 3 har upphört. Om xfs - Filsystemet xfs utvecklades ursprungligen för SGI-arbetsstationer som körs på operativsystemet IRIX. Xfs är särskilt bra för att arbeta med stora filer, i synnerhet är det idealiskt för att arbeta med strömmande video. Systemet stöder kvoter och utökade attribut (ACL).
jfs

jfs - a66peBHaTypaJFS står för Journaled File System. Det utvecklades ursprungligen för IBM och anpassades sedan för Linux. Jfs har aldrig haft mycket erkännande i Linux och drar för närvarande ut på en eländig tillvaro och ger vika för andra filsystem.
brtfs

brtfs - Med viljan från de ledande kärnutvecklarna har brtfs-filsystemet i Linux en ljus framtid. Detta system utvecklades från grunden hos Oracle. Det inkluderar stöd för enhetsmapper och RAID. Brtfs liknar mest Suns ZFS. Till henne väldigt intressanta funktioner inkluderar att kontrollera filsystemet när du är på språng, samt stöd för SSD:er (solid-state-enheter är hårddiskar baserat på flashminne). Tyvärr kommer arbetet med brtfs inte att slutföras inom överskådlig framtid. Fedora 11 kommer med alternativet att installera brtfs, men jag rekommenderar det bara till filsystemutvecklare!
Det finns inget "snabbaste" eller "bästa" filsystem - uppskattningen beror på vad du tänker använda systemet till. Nybörjare Linux-användare som arbetar med lokal dator, rekommenderas att arbeta med ext3 och serveradministratörer med ext4. Naturligtvis, med ext4 är arbetshastigheten högre än med ext3, men samtidigt i ext4-systemet är situationen mycket värre med tillförlitligheten av data - du kan mycket väl förlora information om systemet plötsligt stängs av.

Om du har installerat ett andra UNIX-liknande operativsystem på din dator, kommer följande filsystem att vara praktiskt när du utbyter data (från ett operativsystem till ett annat).

sysv - Används av SCO, Xenix och Coherent operativsystem.

ufs - Används av FreeBSD, NetBSD, NextStep och SunOS. Linux kan bara läsa information från sådana filsystem, men kan inte göra ändringar i data. För att komma åt segment med BSD behöver du dessutom tillägget BSD disklabel. En liknande tillägg finns för SunOS-partitionstabeller.

ZFS är ett relativt nytt system utvecklat av Sun för Solaris. Eftersom ZFS-koden inte är GPL-licensierad kan den inte integreras med Linux-kärnan. Av denna anledning stöder Linux endast detta filsystem indirekt via FUSE.
Windows, Mac OS X

Följande filsystem kommer att vara användbara vid kommunikation med MS DOS, Windows, OS / 2 och Macintosh.

vfat - används i Windows 9x / ME. Linux kan läsa information från sådana partitioner och göra ändringar i den. Vfat-systemdrivrutinerna tillåter även arbete med gamla MS DOS-filsystem (8 + 3 tecken).

ntfs - systemet används i alla moderna versioner Windows: otNT eller högre. Linux kan läsa och ändra sina filer.

hfs och hfsplus - dessa filsystem används i Apple-datorer... Linux kan läsa och ändra sina filer.

Data-cd- och dvd-skivor använder vanligtvis sina egna filsystem.

iso9660 - Filsystemet för CD-ROM-skivor beskrivs i ISO-9660-standarden, som endast tillåter korta filnamn. Långa namn stöds olika på olika operativsystem, genom en mängd inkompatibla tillägg. Linux kan arbeta med både Rockridge-tillägget, som är vanligt i UNIX, och Joliet-tillägget, utvecklat av Microsoft.

udf - detta format (universellt diskformat) dök upp och utvecklades som efterföljaren till ISO 9660.

Nätverksfilsystem

Filsystem behöver inte vara på lokal disk- de
kan ansluta till en dator och över ett nätverk. Linux-kärnan stöder en mängd olika nätverksfilsystem, av vilka följande är vanligast.

smbfs / cifs - hjälp att mappa Windows eller Samba nätverksresurser till ett katalogträd.

nfs är det viktigaste nätverksfilsystemet i UNIX.

coda - Detta system är väldigt likt NFS. Den innehåller många ytterligare funktioner men det är inte särskilt vanligt.

ncpfs - körs på NetWare-kärnprotokollet; oH används av Novell Netware.

Virtuella filsystem

I Linux finns det flera filsystem som inte är utformade för att lagra data på en hårddisk (eller annat medium), utan endast för utbyte av information mellan kärnan och användarprogrammen.
devpts - Detta filsystem ger åtkomst till pseudoterminaler (förkortat PTY) genom / dev / pts / * i enlighet med UNIX-98-specifikationen. (Pseudoterminaler emulerar ett seriellt gränssnitt. På UNIX/Linux-system används sådana gränssnitt av terminalemulatorer som xterm. Vanligtvis används enheter som /dev/ttypn. Däremot definierar UNIX-98-specifikationen nya enheter. Mer detaljerad information rapporteras i textterminalen H0WT0.)
proc och sysfs - proc-filsystemet används för att visa tjänstinformation relaterad till hantering av kärnan och processer. Dessutom bygger sysfs-filsystemet relationer mellan kärnan och hårdvaran. Båda filsystemen är monterade på / proc och / sys.
tmpfs - Detta system är byggt på basis av delat minne i enlighet med System V. Det är vanligtvis monterat på / dev / shm och ger ett effektivt utbyte av information mellan två program. På vissa distributioner (t.ex. Ubuntu) skapas även katalogerna / var / run och / var / lock med hjälp av filsystemet tmpfs. Filerna i dessa kataloger används av vissa nätverksdemoner för att lagra processidentifieringsnummer samt filåtkomstinformation. Tack vare tmpfs återspeglas nu dessa data i RAM. Metoden garanterar hög hastighet, och även att efter att ha stängt av datorn kommer inga filer att finnas kvar i katalogerna / var / run eller / var / lock.

usbfs - Filsystemet usbfs, som börjar med kärnan 2.6 och högre, ger information om anslutna USB-enheter. Det är vanligtvis integrerat i proc-filsystemet. Om USB-enhetsstöd i Linux.

Andra filsystem

auto - i själva verket finns det inget filsystem med det namnet. Auto kan dock användas i / etc / fstab eller med mount kommandot för att specificera ett filsystem. I det här fallet kommer Linux att försöka känna igen filsystemet på egen hand. Denna metod fungerar med de flesta av de viktigaste filsystemen.
autofs, autofs4

autofs, autofs4 är inte heller filsystem, utan kärntillägg som automatiskt kör monteringskommandot för de valda filsystemen. Om filsystemet inte har använts på en tid, körs kommandot umount automatiskt mot det. Denna metod är praktiskt, först och främst, i de fall då endast ett fåtal av många NFS-kataloger används aktivt samtidigt.

För att göra detta kör /etc/init.d/ autofs-skriptet automatiskt automount-programmet vid systemstart. Den konfigureras med filen /etc/auto.master. Motsvarande program installeras automatiskt på till exempel Red Hat och Fedora. I alla fall aktiveras autofs endast efter att ha konfigurerat /etc/auto.master eller /etc/auto.misc.
cramfs och squashfs

cramfs och squashfs - Cram och Squash filsystem är skrivskyddade. De används för att "packa" så många zippade filer som möjligt i flashminne eller ROM (skrivskyddat minne).

fuse - FUSE står för Filesystem in Userspace och låter dig utveckla och använda filsystemdrivrutiner utanför kärnan. Därför används FUSE alltid med en extern filsystemdrivrutin. FUSE fungerar särskilt med NTFS ntfs-3g-drivrutinen.

gfs och ocfs - Global File System och Oracle Cluster File System låter dig bygga gigantiska nätverksanslutna filsystem som kan nås av flera datorer parallellt samtidigt.

jffs and yaffs - Journaling Flash File System och Yet Another Flash File System är speciellt optimerade för att arbeta med solid state-enheter och flashmedia. Med hjälp av speciella algoritmer försöker de använda alla minnesceller jämnt (wear leveling technology) för att undvika för tidigt systemfel.
slinga

loop - används för att arbeta med pseudoenheter. En loopback-enhet är en adapter som kan komma åt en vanlig fil som en blockenhet. Tack vare det kan vilket filsystem som helst lokaliseras i vilken fil som helst och sedan montera det till katalogträdet med mount. Kärnfunktionen som ansvarar för detta - stöd för pseudoenhet - är implementerad i loopmodulen.

Det finns olika sätt att använda pseudoenheter. I synnerhet kan de användas när du skapar minnesdiskar för initial initiering (Initial RAM-skiva) för GRUB eller LILO, när du implementerar krypterade filsystem eller testar CD ISO-avbildningar.

Filsystem för lagringsmedia

Filsystem
ISO 9660
Joliet filtillägg ISO-system 9660.
Rock Ridge (RRIP, IEEE P1282) är en ISO 9660 filsystemtillägg designad för att lagra filattribut som används i POSIX operativsystem
Amiga Rock Ridge Extensions
El torito
Apple ISO9660-tillägg
HFS, HFS +
Universal Disk Format-specifikation för ett operativsystemoberoende filsystemformat för lagring av filer på optiska media... UDF är en implementering av ISO/IEC 13346-standarden
Mount regnigare

ext2(även kallad som ext2fs) - Andra utökade filsystemet(Second Extended File System) är ett filsystem som är byggt ovanpå Linux-kärnan. Ext2 skapades och utvecklades av Remy Card. Ext2-filsystemet byggdes av honom för att ersätta det gamla, föregående version- ext.

När det gäller hastighet och prestanda kan detta filsystem fungera som ett riktmärke. Detta bevisas av resultaten från prestandatester av filsystem. Till exempel i tester för sekventiell läs- och skrivhastighet, som utfördes av tekniskt centrum Dell, ext2 är överlägset ext3, och är näst efter den modernare ext4 i läshastighet.

Den största nackdelen med ext2 är att det inte är ett journalfilsystem. Detta fel eliminerades dock i nästa filsystem - ext3.

ext2 används på flash-enheter och solid state-enheter(SSD) eftersom bristen på journalföring är en fördel när man hanterar enheter med skrivcykelgränser.

Ext2 historik

Under den snabba utvecklingen av Linux-systemet använde det filsystemet Minix OS. Det var ganska stabilt, men samtidigt var det 16-bitars. Som ett resultat hade den en hård gräns på 64 Mb per partition. Dessutom fanns det en begränsning på den maximala längden på ett filnamn, som var 14 tecken.

Tillsammans ledde dessa begränsningar till utvecklingen av det "utökade filsystemet" (därav termen " Utökat filsystem "). Hon fick i uppdrag att lösa två nyckelproblem i Minix. Det nya filsystemet offentliggjordes i april 1992. Det var Ext, det utökade filstorleksgränsen till 2 gigabyte och satte filnamnets längdgräns till 255 tecken.

Men trots framgången med det nya filsystemet fanns det fortfarande en hel del olösta problem. Till exempel fanns det inget stöd för delad åtkomst, det fanns inga tidsstämplar för datamodifiering. Behovet av att lösa dessa problem var motivet för skapandet av nästa version av det utökade ext2-filsystemet (“ Andra utökade filsystemet "). ext2 utvecklades i januari 1993, den implementerade också motsvarande POSIX-standarden ACL:er och utökade filattribut.

Ext2 logisk organisation

Ext2-kataloghierarkigrafen representeras som ett nätverk. Detta beror på att en fil kan inkluderas i flera kataloger samtidigt.

Alla filtyper har symboliska namn. Hierarkiskt organiserade filsystem använder vanligtvis tre typer av namn: enkla, sammansatta och relativa. Så det är i ext2. När det gäller ett enkelt namn är begränsningen att dess längd inte får överstiga 255 tecken, dessutom ska namnet inte innehålla tecknet NULL och snedstreck.

När det gäller NULL-tecknet så är begränsningarna relaterade till representationen av strängar i C-språket, i fallet med snedstrecket ligger allt i att det används som ett separeringstecken mellan kataloger.

Det fullt kvalificerade namnet är en kedja av enkla symboliska namn på alla kataloger genom vilka vägen går från rot till av denna fil... I ext2 kan en fil finnas i flera kataloger, vilket innebär att den kan ha flera fullständigt kvalificerade namn (en fil - flera fullständigt kvalificerade namn). Men hur som helst, det fullständiga namnet definierar filen.

Ext2-attribut:

  • filtyp och behörigheter,
  • ägare, åtkomstgrupp,
  • information om tillåten verksamhet,
  • skapelsetid, datum för senaste åtkomst, datum sista ändring och tidpunkten för den senaste raderingen,
  • den aktuella filstorleken,
  • filspecifikation:
    • vanlig fil,
    • katalog,
    • byte-orienterad enhetsfil,
    • blockera enhetsfil,
    • namngiven rör,
    • symbolisk länk,
  • antalet ockuperade block,
  • andra

Filattribut finns i speciella tabeller, inte i kataloger, som vanligtvis är fallet med enkla filsystem. Som ett resultat har katalogen en mycket enkel struktur med två delar: ett inodnummer och ett namn.

Fysisk organisation ext2

Diskpartitionsstruktur

Som en del av ext2 kan följande särskiljas:

  • block och blockgrupper;
  • inode;
  • superblock.

Hela diskutrymmet är uppdelat i block med fast storlek, som är multiplar av sektorstorleken (1024, 2048, 4096 eller 8192 byte). Blockstorleken anges när ett filsystem skapas på en diskpartition. Sekventiella nummer tilldelas alla block. För att minska fragmenteringen och antalet rörelser av hårddiskhuvudena vid läsning av stora datamatriser kombineras block i grupper.

Grundkonceptet för ett filsystem är inoden (även kallad inode - informationsnod). Det är en speciell struktur som innehåller information om attribut och fysisk plats för en fil. Indexdekrypteringar kombineras till en tabell i början av varje blockgrupp. Superblocket är huvudelementet i ext2-filsystemet. Den innehåller allmän information om filsystemet. Superblocket är placerat 1024 byte från början av avsnittet. Superblockets integritet avgör filsystemets tillstånd. OS skapar flera säkerhetskopior superblock - om partitionen är skadad. I nästa block efter superblocket finns en global deskriptortabell - en beskrivning av blockgrupper i form av en array med allmän information om alla grupper av block.

Blockera grupp

Alla block på en ext2-partition är uppdelade i grupper. En separat post i den globala deskriptortabellen skapas för varje grupp. Denna post lagrar grundläggande parametrar som: blocknummer i bitmappar och tabeller, antal lediga block i en grupp, antal inoder som innehåller kataloger.

Blockera bitmappÄr ett system där varje bit informerar om blocket som motsvarar den är tilldelat någon fil. Om biten är 1 är blocket upptaget. Inodbitmappen utför en liknande funktion: den visar vilken inoder upptagen och vilka som inte är det. Linux-kärnan försöker jämnt fördela katalogernas inoder i grupper och flytta inoderna av filer till en grupp med den överordnade katalogen. Allt återstående utrymme som visas i tabellen som data tilldelas för lagring av filer.

Dataadresseringssystem

Dataadresseringssystemet är en av de allvarligaste och viktigaste komponenterna i filsystemet. Tack vare henne finns det önskad fil bland många tomma eller upptagna block på disken.

ext2 använder följande filblocksadresseringsschema. För att lagra filadressen tilldelas 15 fält, som vart och ett består av 4 byte. Om filen ryms i 12 block, listas numren på motsvarande kluster i de första tolv fälten i adressen. Om filstorleken överstiger 12 block, innehåller nästa fält adressen till klustret där numren på nästa block i filen kan finnas. Så det trettonde fältet används för indirekt adressering.

maximal storlek block på 4096 byte, kan klustret som motsvarar det 13:e fältet innehålla upp till 1024 nummer av följande block i filen. Om filstorleken överstiger 12 + 1024 block, används det 14:e fältet, som innehåller adressen till ett kluster som innehåller 1024 klusternummer, som vart och ett refererar till 1024 filblock. Här används redan dubbel indirekt adressering. Och om filen innehåller mer än 12 + 1024 + 1048576 block, tillämpas det sista 15:e fältet för trippel indirekt adressering.

Detta adresseringssystem tillåter en maximal blockstorlek på 4096 byte för att ha filer större än 2 TB.