Linux - sisteme de fișiere ext3 și ext4. Mod fără înregistrare. Dimensiune mai mare a fișierelor și a sistemului de fișiere

Sistemul de fișiere(sistem de fișiere în limba engleză) - o comandă care determină modul de organizare, stocare și denumire a datelor pe mediile de stocare a informațiilor ale echipamentelor IT (folosind carduri de memorie flash portabile pentru înregistrarea și stocarea repetată a informațiilor în format portabil). dispozitive electronice: aparate foto digitale, telefoane mobile etc.) si echipamente informatice. Acesta definește formatul conținutului și stocarea fizică a informațiilor, care sunt de obicei grupate sub formă de fișiere. Sistemul de fișiere specific determină dimensiunea numelui fișierului (dosarului), maxim dimensiune posibilă fișier și secțiune, un set de atribute de fișier. Unele sisteme de fișiere oferă capabilități de servicii, cum ar fi controlul accesului sau criptarea fișierelor.

Sarcini ale sistemului de fișiere

Principalele funcții ale oricărui sistem de fișiere au ca scop rezolvarea următoarelor probleme:

denumirea fișierelor;

Interfata software pentru lucrul cu fisiere pentru aplicatii;

maparea modelului logic al sistemului de fișiere pe organizarea fizică a stocării datelor;
organizarea rezistenței sistemului de fișiere la întreruperile de curent, erorile hardware și software;

În sistemele multi-utilizator, apare o altă sarcină: protejarea fișierelor unui utilizator împotriva accesului neautorizat de către alt utilizator, precum și asigurarea colaborare cu fișiere, de exemplu, când un fișier este deschis de către unul dintre utilizatori, pentru alții același fișier va fi disponibil temporar în modul doar citire.

Un sistem de fișiere este structura de bază pe care o folosește un computer pentru a organiza informațiile de pe hard disk. La instalarea unui nou hard disk trebuie să fie partiționat și formatat pentru un anumit sistem de fișiere, după care datele și programele pot fi stocate pe el. Există trei opțiuni posibile de sistem de fișiere în Windows: NTFS, FAT32 și sistemul FAT vechi, rar folosit (cunoscut și ca FAT16).

NTFS este sistemul de fișiere preferat pentru această versiune de Windows. Are multe avantaje față de mai multe sistem timpuriu FAT32; Unele dintre ele sunt enumerate mai jos.

Capacitatea de a recupera automat din unele erori de disc (FAT32 nu are această capacitate).
Suport îmbunătățit mare greu discuri.
Grad mai mare de securitate. Puteți folosi permisiunile și criptarea pentru a interzice accesul utilizatorilor la anumite fișiere.

Sistemul de fișiere FAT32 și sistemul FAT rar folosit au fost folosite anterior versiuni Windows, inclusiv Windows 95, Windows 98 și Windows Millenium Edition. Sistemul de fișiere FAT32 nu oferă nivelul de securitate oferit de NTFS, așa că dacă computerul dvs. are o partiție sau un volum formatat ca FAT32, fișierele de pe acea partiție sunt vizibile pentru oricine are acces la computer. Sistemul de fișiere FAT32 are, de asemenea, limitări de dimensiune a fișierelor. În această versiune de Windows, nu este posibilă crearea unei partiții FAT32 mai mare de 32 GB. În plus, o partiție FAT32 nu poate conține un fișier mai mare de 4 GB.

Motivul principal pentru utilizarea unui sistem FAT32 este că computerul va putea rula fie Windows 95, Windows 98, fie Windows Millennium Edition, fie această versiune de Windows (configurație cu mai multe sisteme de operare). Pentru a crea o astfel de configurație, trebuie să instalați versiunea anterioară a sistemului de operare pe o partiție formatată ca FAT32 sau FAT, făcând din aceasta partiția primară (partiția primară poate conține sistemul de operare). Alte partiții accesate din versiunile anterioare de Windows trebuie, de asemenea, formatate ca FAT32. Mai mult versiuni timpurii Windows poate accesa numai partițiile sau volumele NTFS din rețea. Partițiile NTFS de pe computerul local vor fi inaccesibile.

FAT – avantaje:

Este nevoie de ceva RAM pentru a funcționa eficient.
Lucru rapid cu cataloage de dimensiuni mici si mijlocii.
Discul face, în medie, mai puține mișcări ale capului (comparativ cu NTFS).
Lucrați eficient pe discuri lente.

GRASIME – contra:

Pierdere catastrofală de performanță odată cu creșterea fragmentării, în special pentru discuri mari (numai FAT32).
Dificultăți de acces aleatoriu la fișiere mari (de exemplu, 10% sau mai mult din dimensiunea discului).
Lucru foarte lent cu directoare care conțin un număr mare de fișiere.

NTFS - avantaje:

Fragmentarea fișierelor nu are practic consecințe asupra sistemului de fișiere în sine - performanța unui sistem fragmentat este degradată doar în ceea ce privește accesul la datele fișierelor în sine.
Complexitatea structurii directoarelor și numărul de fișiere dintr-un director, de asemenea, nu ridică obstacole speciale în calea performanței.
Acces rapid la un fragment arbitrar al unui fișier (de exemplu, editarea fișierelor mari .wav).
Foarte acces rapid la fișiere mici (câteva sute de octeți) - întregul fișier se află în același loc cu datele de sistem (înregistrare MFT).

NTFS - contra:

Cerințe semnificative de memorie de sistem (64 MB este minimul absolut, mai mult este mai bine).
Discurile lente și controlerele fără Bus Mastering reduc foarte mult performanța NTFS.
Lucrul cu directoare de dimensiuni medii este dificil, deoarece acestea sunt aproape întotdeauna fragmentate.
Un disc care funcționează mult timp la 80% - 90% plin va prezenta performanțe extrem de scăzute.

Următoarele sisteme de fișiere sunt considerate „native” pentru Linux (adică acelea pe care poate fi instalat și de la care poate porni): ext2fs, ext3fs, ext4fs, ReiserFS, XFS, JFS. Ele sunt de obicei oferite ca alegere atunci când se instalează marea majoritate a distribuțiilor. Desigur, există modalități Instalări Linux la sistemele de fișiere FAT/VFAT/FAT32, dar asta este doar pentru acei dragi și domni care înțeleg perversiunile și nu voi vorbi despre ele.

Principalele criterii atunci când alegeți un sistem de fișiere sunt de obicei fiabilitatea și performanța. În unele cazuri, trebuie să țineți cont și de factorul de compatibilitate - în acest caz, înseamnă capacitatea altor sisteme de operare de a accesa un anumit sistem de fișiere.
Voi începe revizuirea cu ReiserFS - pentru că motivul pentru care am scris această notă a fost întrebarea: ce ar trebui să fie considerate fișiere mici? La urma urmei, este bine cunoscut faptul că eficiența lucrului cu fișiere mici este punctul forte al acestui sistem de fișiere.

Deci, fișierele mici înseamnă fișiere mai mici decât un bloc logic al sistemului de fișiere, care în Linux în cele mai multe cazuri este egal cu patru kiloocteți, deși poate fi specificat în timpul formatării în anumite limite (în funcție de FS specific). Există nenumărate astfel de fișiere mici în orice sistem de operare asemănător Unix. Un exemplu tipic sunt fișierele care alcătuiesc arborele de porturi FreeBSD, portaje Gentoo și sisteme similare de tip port.
În majoritatea sistemelor de fișiere, astfel de mini-fișiere au atât propriul inod (un nod de informații care conține meta informații despre fișier) cât și un bloc de date, ceea ce duce atât la consumul de spațiu pe disc, cât și la o scădere a performanței operațiunilor cu fișiere. În special, acesta este tocmai motivul seriozității catastrofale a sistemului de fișiere FreeBSD (atât cel vechi, UFS, cât și cel nou, UFS2) atunci când lucrează cu propriul sistem de porturi.

În sistemul de fișiere ReiserFS, în astfel de cazuri, blocuri separate nu sunt alocate pentru date - reușește să împingă datele fișierului direct în zona inodului. Datorită acestui lucru și spatiu pe disc economisește bani, iar performanța crește - literalmente de câteva ori în comparație cu toate celelalte FS.
Această manipulare a fișierelor mici ReiserFS a dat naștere legendei nefiabilității sale. Într-adevăr, atunci când sistemul de fișiere se prăbușește (adică distrugerea zonelor de serviciu), datele localizate împreună cu inodul său dispar odată cu acestea - și irevocabil. În timp ce în acele sisteme de fișiere în care inodurile și blocurile de date sunt întotdeauna separate spațial, acestea din urmă pot fi teoretic restaurate. Deci, pentru ext2/ext3 există chiar și instrumente care vă permit să faceți acest lucru.

Totuși, ca orice legendă, aceasta dă doar impresia de autenticitate. În primul rând, pierderea permanentă a datelor se aplică numai fișierelor foarte mici. Printre utilizatorii practic nu există asemenea, iar toate celelalte pot fi ușor restaurate din trusa de distribuție.
În al doilea rând, când vorbesc despre posibilitatea de a recupera date din blocuri care și-au pierdut conexiunea la inoduri, nu întâmplător am folosit cuvântul „teoretic”. Pentru că în practică această activitate este extrem de intensivă în muncă și nu dă un rezultat garantat. Oricine a fost nevoit să facă acest lucru va fi de acord că nu se poate răsfăța decât din totală disperare. Și acest lucru se aplică tuturor sistemelor de fișiere Linux. Deci acest aspect poate fi neglijat la alegerea unui sistem de fișiere.

În ceea ce privește performanța generală, ReiserFS este cu siguranță mai rapid decât toate celelalte FS jurnalizate și, în unele privințe, este superior ext2. O comparație a vitezei unor operațiuni comune de fișiere poate fi găsită aici.
Dar cu ReiserFS situația de compatibilitate este oarecum mai proastă. Accesul la el din sistemele de operare Windows, din câte știu, este imposibil. Unele sisteme de operare din familia BSD (DragonFlyBSD, FreeBSD) acceptă acest sistem de fișiere, dar în modul numai citire. Chiar și probabilitatea ca un Linux LiveCD arbitrar din anii precedenți să nu aibă suport ReiserFS nu este zero.

Și aici este timpul să vă amintiți ext3fs. Avantajul său nu este deloc în fiabilitatea mai mare - aceasta este aceeași legendă ca instabilitatea ReiserFS. Am auzit nu mai puțin despre accidente ext3fs decât despre incidente similare cu ReiserFS. Eu însumi nu am putut distruge nici una, nici alta. Cu excepția faptului că a funcționat cu ext2 - dar chiar și atunci cu foarte mult timp în urmă, în timpul nucleului 2.2 (sau chiar 2.0).

Nu, principalul avantaj al ext3fs este compatibilitatea sa - este garantat că va fi citit de orice sistem Linux. De exemplu, la restaurarea de la un LiveCD antic la îndemână - o situație care practic nu este atât de incredibilă, a trebuit să intru în ea. Din nou, majoritatea sistemelor BSD pot înțelege cu ușurință ext3fs (deși fără înregistrare). Pentru Windows există, din câte știu eu, tot felul de drivere și plug-in-uri pentru managerii de fișiere obișnuiți (cum ar fi Comandant total), oferind acces la partițiile cu ext2fs/ext3fs.

În ceea ce privește performanța, ext3fs lasă o impresie mixtă. În primul rând, performanța sa depinde foarte mult de modul de înregistrare, dintre care există trei: cu înregistrare completă a datelor, înregistrare parțială și înregistrare doar metadate. În fiecare mod, arată performanțe diferite pe diferite tipuri de operațiuni cu fișiere. Cu toate acestea, în niciun caz, performanța nu bate record.

Cu toate acestea, dacă cerința de performanță este pe primul loc, atunci ext2fs nu are concurență - cu toate acestea, în acest caz va trebui să suportați deloc lipsa de logare. Și, în consecință, cu verificări îndelungate ale sistemului de fișiere în cazul oricărei închideri incorecte - și cu volumul discurilor moderne, acest lucru poate dura foarte mult timp...

Următoarele se pot spune despre XFS. În ceea ce privește compatibilitatea, tot ceea ce a fost scris pentru ReiserFS i se aplică - în plus, până la un timp nu a fost suportat de kernel-ul standard Linux. În ceea ce privește performanța, nici XFS nu strălucește, performând în total aproximativ la același nivel cu ext3fs. Iar operațiunea de ștergere a fișierelor demonstrează, în general, o lentoare deprimantă.
Conform observațiilor mele, utilizarea XFS se plătește atunci când se lucrează nu doar cu fișiere mari, ci și cu fișiere foarte mari - care sunt de fapt doar imagini DVDși fișiere video.

Permiteți-mi să revin la problema fiabilității. Oprire banală în timpul normal lucru la comandă, de regulă, transferați fără durere toate sistemele de fișiere jurnalizate (și niciunul dintre ele nu asigură siguranța operațiunilor utilizatorului care nu sunt scrise pe disc - salvarea persoanelor care se înecă rămâne munca persoanelor care se înecă). Adevărat, pentru orice sistem de fișiere este posibil să se simuleze o situație în care oprirea alimentării va duce la daune mai mult sau mai puțin grave ale acestuia. Cu toate acestea, în viata reala Este puțin probabil să apară astfel de situații. Și le puteți elimina complet achiziționând o sursă de alimentare neîntreruptibilă - va oferi mai multă încredere în siguranța datelor decât tipul de sistem de fișiere. Ei bine, în orice caz, singura garanție pentru restaurarea datelor deteriorate poate fi backup-urile regulate...

Cred că informațiile prezentate mai sus sunt suficiente pentru o alegere informată. Ale mele alegere personalăîn ultimii ani - ReiserFS. Ocazional, pe sistemele în care este justificat să mutați tot ceea ce este posibil în afara partiției rădăcină, este logic să folosiți ext3fs pentru sistemul de fișiere rădăcină și ReiserFS pentru toți ceilalți.

Dacă este furnizată o partiție separată pentru directorul /boot (și acest lucru este recomandat atunci când utilizați Bootloader GRUB de către dezvoltatorii săi) - pentru el, niciun alt sistem de fișiere în afară de ext2fs nu este justificat, orice înregistrare nu are sens aici. În cele din urmă, dacă creați o partiție separată pentru tot felul de materiale multimedia, atunci vă puteți gândi la XFS.

Dacă abordam explicaţia mai metodic

ext - în primele zile ale Linux, ext2 (versiunea 2 a sistemului de fișiere extins) era dominantă. Din 2002, a fost înlocuit cu sistemul ext3, care este în mare măsură compatibil cu ext2, dar acceptă și funcții de logare, iar atunci când se lucrează cu versiunea de kernel 2.6 și o versiune ulterioară, ACL-uri. Dimensiunea maximă a fișierului este de 2 TB, dimensiunea maximă a sistemului de fișiere este de 8 TB. La sfârșitul anului 2008, a fost anunțată oficial lansarea ext4, care este compatibil cu ext3, dar multe funcții sunt implementate mai eficient decât înainte. În plus, dimensiunea maximă a sistemului de fișiere este de 1 EB (1.048.576 TB) și vă puteți aștepta ca aceasta să fie suficientă pentru o perioadă de timp. Despre reiser - sistemul a fost numit după fondatorul său, Hans Reiser, și a fost primul sistem cu funcții de logare care a accesat kernel-ul Linux pentru date. Versiunea SUSE de Zp a fost chiar considerată standard de ceva timp. Principalele avantaje ale reiser față de ext3 sunt viteza mai mare și eficiența plasării atunci când lucrați cu fișiere mici (și într-un sistem de fișiere, de regulă, majoritatea fișierelor sunt mici). Cu timpul, însă, dezvoltarea reisefers s-a oprit. S-a anunțat de mult timp că va fi lansată versiunea 4, care încă nu este gata, iar suportul pentru versiunea 3 a încetat. Despre xfs - sistemul de fișiere xfs a fost dezvoltat inițial pentru stațiile de lucru SGI care rulează pe sistemul de operare IRIX. Xfs este deosebit de bun pentru a lucra cu fișiere mari și este deosebit de ideal pentru a lucra cu streaming video. Sistemul acceptă cote și atribute extinse (ACL).
jfs

jfs - a66peBHaTypaJFS înseamnă „Journaled File System”. A fost dezvoltat inițial pentru IBM și apoi adaptat pentru Linux.Jfs nu s-a bucurat niciodată de multă recunoaștere pe Linux și în prezent lâncește într-o existență mizerabilă, inferioară altor sisteme de fișiere.
brtfs

brtfs - Dacă este voința dezvoltatorilor de kernel de vârf, sistemul de fișiere brtfs din Linux are un viitor strălucit. Acest sistem a fost dezvoltat de la zero la Oracle. Include suport pentru device-mapper și RAID. Brtfs este cel mai asemănător cu sistemul ZFS dezvoltat de Sun. Pentru ea cel mai bun caracteristici interesante include verificări on-the-fly ale sistemului de fișiere, precum și suport SSD (unitățile cu stare solidă sunt hard disk-uri, care funcționează pe baza memoriei flash). Din păcate, lucrările la brtfs nu vor fi finalizate în viitorul apropiat. Fedora, începând cu versiunea 11, oferă posibilitatea de a instala brtfs, dar recomand să-l folosească doar dezvoltatorilor de sisteme de fișiere!
Nu există un sistem de fișiere „cel mai rapid” sau „cel mai bun” - evaluarea depinde de ceea ce intenționați să utilizați sistemul. Utilizatorilor Linux începători care lucrează pe un computer local li se recomandă să lucreze cu ext3, iar administratorilor de server cu ext4. Desigur, cu ext4 viteza de operare este mai mare decât cu ext3, dar, în același timp, în sistemul ext4 situația cu fiabilitatea datelor este mult mai rea - s-ar putea să pierdeți informații atunci când oprire bruscă sisteme.

Dacă ați instalat un al doilea sistem de operare asemănător UNIX pe computer, atunci următoarele sisteme de fișiere vă vor fi utile atunci când faceți schimb de date (de la un sistem de operare la altul).

sysv - folosit în SCO, Xenix și Coherent OS.

ufs - folosit în FreeBSD, NetBSD, NextStep și SunOS. Linux poate citi doar informații din astfel de sisteme de fișiere, dar nu poate face modificări datelor. Pentru a accesa segmente din BSD, veți avea nevoie în plus de extensia disclabel BSD. O extensie similară există pentru tabelele de partiții SunOS.

ZFS este un sistem relativ nou dezvoltat de Sun pentru Solaris. Deoarece codul ZFS nu este compatibil cu GPL, nu poate fi integrat cu nucleul Linux. Din acest motiv, Linux acceptă acest sistem de fișiere doar indirect, prin FUSE.
Windows, Mac OS X

Următoarele sisteme de fișiere vor fi utile la schimbul de informații cu MS DOS, Windows, OS/2 și Macintosh.

vfat - folosit în Windows 9x/ME. Linux poate citi informații din astfel de partiții și poate face modificări. Driverele de sistem vfat vă permit să lucrați cu sisteme de fișiere MS DOS mai vechi (8 + 3 caractere).

ntfs - sistemul este utilizat în toate versiunile moderne de Windows: otNT și superioare. Linux poate citi și modifica fișierele sale.

hfs și hfsplus - aceste sisteme de fișiere sunt utilizate în Calculatoare Apple. Linux poate citi și modifica fișierele sale.

CD-urile și DVD-urile de date folosesc de obicei propriile sisteme de fișiere.

iso9660 - Sistemul de fișiere pentru CD-ROM-uri este descris în standardul ISO-9660, care permite doar nume scurte de fișiere. Titluri lungi sunt acceptate diferit pe sisteme de operare diferite, folosind o varietate de extensii care sunt incompatibile între ele. Linux poate rula atât extensia Rockridge, care este comună în UNIX, cât și extensia Joliet, dezvoltată de Microsoft.

udf - acest format ( format universal disc) a apărut și dezvoltat ca un succesor al ISO 9660.

Sisteme de fișiere în rețea

Sisteme de fișiere nu trebuie să fie pornit disc local- Ei
se poate conecta la un computer și printr-o rețea. Nucleul Linux acceptă diverse sisteme de fișiere de rețea, dintre care următoarele sunt cele mai frecvent utilizate.

smbfs/cifs - ajută la conectarea directoarelor de rețea Windows sau Samba la un arbore de directoare.

nfs este cel mai important sistem de fișiere de rețea din UNIX.

coda - acest sistem este foarte asemănător cu NFS. Are multe caracteristici suplimentare, dar nu este foarte comun.

ncpfs - rulează pe protocolul kernel NetWare; oH este folosit de Novell Netware.

Sisteme de fișiere virtuale

Linux are mai multe sisteme de fișiere care nu sunt concepute pentru a stoca date pe hard disk (sau alte medii de stocare), ci doar pentru a face schimb de informații între kernel și programele utilizatorului.
devpts - Acest sistem de fișiere oferă acces la pseudoterminale (abreviat ca PTY) prin /dev/pts/* conform specificației UNIX-98. (Pseudo-terminale emulează o interfață serială. Pe sistemele UNIX/Linux, astfel de interfețe sunt folosite de emulatorii de terminale, cum ar fi xterm. În mod obișnuit, sunt folosite dispozitive precum /dev/ttypn. În schimb, specificația UNIX-98 definește dispozitive noi. Mai mult informatii detaliate raportat în terminalul text H0WT0.)
proc și sysfs - sistemul de fișiere proc este utilizat pentru a afișa informații despre servicii legate de managementul nucleului și al procesului. În plus, sistemul de fișiere sysfs construiește relații între kernel și hardware. Ambele sisteme de fișiere sunt montate la /proc și /sys.
tmpfs - Acest sistem este construit pe baza memoriei partajate conform Sistemului V. Este de obicei montat la poziția /dev/shm și permite schimbul eficient de informații între două programe. Pe unele distribuții (cum ar fi Ubuntu), directoarele /var/run și /var/lock sunt create și folosind sistemul de fișiere tmpfs. Fișierele din aceste directoare sunt folosite de unii daemoni de rețea pentru a stoca numerele de identificare a procesului, precum și informațiile de acces la fișiere. Datorită tmpfs, aceste date sunt acum reflectate în RAM. Metoda garantează viteză mare și, de asemenea, că, după ce computerul este oprit, nu vor mai rămâne fișiere în directoarele /var/run sau /var/lock.

usbfs - sistemul de fișiere usbfs, începând cu versiunea de kernel 2.6 și o versiune ulterioară, oferă informații despre dispozitivele USB conectate. Este de obicei integrat în sistemul de fișiere proc. Despre suportul dispozitivelor USB în Linux.

Alte sisteme de fișiere

auto - de fapt, nu există niciun sistem de fișiere sub acest nume. Cu toate acestea, cuvântul auto poate fi folosit în /etc/fstab sau cu comanda mount pentru a specifica sistemul de fișiere. În acest caz, Linux va încerca să recunoască singur sistemul de fișiere. Această metodă funcționează cu majoritatea sistemelor de fișiere majore.
autofs, autofs4

autofs, autofs4 nu sunt, de asemenea, sisteme de fișiere, ci extensii de nucleu care execută automat comanda mount pentru sistemele de fișiere selectate. Dacă un sistem de fișiere nu este folosit de ceva timp, comanda umount este rulată automat pe el. Această metodă este convenabilă în primul rând în cazurile în care doar câteva dintre multe directoare NFS sunt utilizate în mod activ în același timp.

Pentru a efectua astfel de operațiuni, scriptul /etc/init.d/ autofs execută automat programul de montare automată când sistemul pornește. Este configurat folosind fișierul /etc/auto.master. Programele corespunzătoare sunt instalate automat, de exemplu, în Red Hat și Fedora. În orice caz, autofs este activat numai după configurarea /etc/auto.master sau /etc/auto.misc.
cramfs și squashfs

cramfs și squashfs - Sistemele de fișiere Cram și Squash sunt doar pentru citire. Acestea sunt folosite pentru a „împacheta” cât mai multe fișiere arhivate posibil în memorie flash sau ROM (memorie doar pentru citire).

fuze - FUSE înseamnă Filesystem in Userspace și permite ca driverele de sistem de fișiere să fie dezvoltate și utilizate în afara nucleului. Prin urmare, FUSE este întotdeauna utilizat cu un driver de sistem de fișiere extern. FUSE funcționează, în special, cu driverul NTFS ntfs-3g.

gfs și ocfs - Global File System și Cluster File System de la Oracle (Oracle Cluster File System) vă permit să construiți sisteme de fișiere de rețea uriașe care pot fi accesate în paralel de mai multe computere în același timp.

jffs and yaffs - Sistem de fișiere de jurnalizare pentru media flash (Journaling Fișier Flash Sistemul și încă un alt sistem de fișiere Flash sunt optimizate în mod special pentru a funcționa cu unități SSD și medii flash. Folosind algoritmi speciali, ei încearcă să folosească toate celulele de memorie în mod uniform (tehnologia de nivelare a uzurii) pentru a evita defecțiunea prematură a sistemului.
buclă

buclă - folosit pentru a lucra cu pseudo-dispozitive. Un dispozitiv loopback este un adaptor capabil de acces dosar obișnuit ca un dispozitiv bloc. Datorită acestuia, puteți plasa orice sistem de fișiere în orice fișier și apoi îl puteți conecta la arborele de directoare folosind mount. Funcția de kernel responsabilă pentru acest lucru - suport pseudo-dispozitiv - este implementată în modulul de buclă.

Există o varietate de utilizări pentru pseudodispozitive. În special, ele pot fi utilizate atunci când se creează discuri în RAM pentru inițializarea inițială (Initial disc RAM) pentru GRUB sau LILO, la implementarea sistemelor de fișiere criptate sau la testarea imaginilor ISO pe CD.

Sisteme de fișiere media de stocare

Sisteme de fișiere
ISO 9660
Extensia sistemului de fișiere Joliet ISO 9660.
Rock Ridge (RRIP, IEEE P1282) – o extensie de sistem de fișiere ISO 9660 concepută pentru a stoca atributele fișierelor utilizate în sistemele de operare POSIX
Amiga Rock Ridge Extensions
El Torito
Extensii Apple ISO9660
HFS, HFS+
Universal Disk Format este o specificație a unui format de sistem de fișiere independent de sistemul de operare pentru stocarea fișierelor medii optice. UDF este o implementare a standardului ISO/IEC 13346
Muntele Rainier

Cum să faceți posibilă accesarea unei partiții de disc sau a unui mediu amovibil cu sisteme de fișiere într-un mediu Windows Ext2/3/4 ? Dacă, de exemplu, există și un al doilea sistem pe computer Linux. Și trebuie să lucrați cu datele sale din mediu Windows. Sau un alt exemplu - când discuri virtuale cu sisteme instalate pe mașini virtuale sunt montate în Windows Linux sau Android. Cu Ext2/3/ 4 Windows nu poate funcționa nativ; pentru aceasta este nevoie instrumente de la terți. Care sunt aceste mijloace? Să ne uităm la cele de mai jos.


***
Primele trei instrumente vor face posibilă citirea numai de pe dispozitivele de informare Ext2/3/4. Cea mai recentă soluție vă va permite atât să citiți, cât și să scrieți date. Toate instrumentele discutate mai jos sunt gratuite.

1. DiskInternals Linux Reader

Un program simplu este un manager de fișiere primitiv, realizat ca un Windows Explorer standard, cu suport pentru sisteme de fișiere Ext 2/3/4 , Reiser4 , HFS , UFS2. În fereastra programului vom vedea partițiile și dispozitivele cu Linux sau Android.

Pentru a copia, trebuie să selectați un folder sau un fișier, apăsați butonul "Salva".

Apoi specificați calea de copiere.

2. Plugin pentru Total Commander DiskInternals Reader

Fanii popularului pot extrage date Linux sau Androidîn Windows folosind acest manager de fișiere. Dar mai întâi instalați un plugin special în el. Unul dintre aceste plugin-uri este , se poate conecta și citi dispozitive de informații formatate în Ext2/3/4 , Fat/exFAT , HFS/HFS+ , ReiserFS. Descărcați pluginul, despachetați arhiva acestuia în interior , confirmați instalarea.

Hai să lansăm (important) în numele administratorului. Să mergem la secțiune. Clic.

Aici, împreună cu alte partiții de disc și medii, cel cu Ext2/3/4 .

Datele sunt copiate în mod tradițional mod - apăsând F5 pe al doilea panou.

3. Plugin pentru Total Commander ext4tc

O alternativă simplificată la soluția anterioară - ext4tc, un alt plugin pentru . Se poate conecta la dispozitive de citire a informațiilor formatate numai în Ext2/3/4. Descărcați pluginul, despachetați arhiva acestuia în managerul de fișiere și începeți instalarea.

Hai să lansăm (important) în numele administratorului. Clic. Să mergem la .

Dacă trebuie să copiați date, utilizați modul obișnuit cu tasta F5.

4. Driver de suport Ext2Fsd

Program Ext2Fsd– acesta este șoferul Ext2/3/4, implementează suport pentru aceste sisteme de fișiere la nivel de sistem de operare. Partițiile de disc și unitățile formatate cu aceste sisteme de fișiere pot fi lucrate cu dispozitive media obișnuite, acceptate de Windows, într-o fereastră Explorer sau programe de la terți. Driverul vă permite să citiți și să scrieți date.

Descărcați cea mai recentă versiune actuală Ext2Fsd.

În timpul instalării activăm (dacă pentru muncă pe termen lung) trei casete de selectare sugerate:

1 — Rularea automată a driverului cu Windows;
2 - Suport de înregistrare pentru Ext2;
3 - Suport pentru formatare Ext3.

În etapa de pre-finisare, activăm opțiunea de a lansa fereastra managerului de șoferi - - împreună cu alocarea de informații dispozitivelor din Ext2/3/4 litere de unitate.

În fereastra care se deschide Vom vedea mass-media cu scrisoarea deja atribuită. De exemplu, în cazul nostru, un transportator cu Ext4 se dă prima scrisoare gratuită F.

Acum putem lucra cu discul Fîn fereastra Explorer.

Atribuiți o scrisoare noilor dispozitive conectate cu Ext2/3/4 se poate face folosind meniul contextual apelat pe fiecare dintre cele afișate în fereastră dispozitive. Dar pur și simplu atribuind o literă de unitate, un astfel de dispozitiv nu va apărea după reporniți Windows, această soluție este doar pentru o singură sesiune de computer. Pentru a face un dispozitiv nou cu Ext2/3/4 vizibil permanent în mediul Windows, trebuie să faceți dublu clic pe el pentru a deschide fereastra de configurare și a seta parametrii de conexiune permanenți. În a doua coloană aveți nevoie de:

Pentru mediile amovibile, activați caseta de selectare indicată de numărul 1 în captură de ecran și specificați litera unității;
Pentru discurile și partițiile interne, activați caseta de selectare indicată în captura de ecran de mai jos cu numărul 2 și, de asemenea, specificați litera unității.

Dacă aveți două sisteme de operare instalate, Windows și Linux, atunci probabil că ați dori să fiți conținut pe partiții ale unui sistem de operare gratuit direct din Windows, fără a reporni computerul.

Din păcate, nu există suport pentru partițiile Linux OS în Windows. Dar în zadar. Mi se pare că acesta ar putea fi un gest frumos din partea Microsoft.

Esența problemei este că Windows folosește sistemul de fișiere NTFS, iar Linux are propriul mod de organizare a fișierelor, sistemul de fișiere extins, cea mai recentă versiune are numărul de serie 4.

Linux este mai ușor de utilizat decât sora sa comercială: Linux are suport pentru sistemul de fișiere în mod implicit Windows NTFS. Desigur, nu veți putea instala Linux pe o partiție NTFS, dar puteți citi și scrie date dintr-o astfel de partiție.

Ext2 IFS

Ext2 IFS acceptă Windows NT4.0/2000/XP/2003/Vista/2008 versiunile x86 și x64 și vă permite să vizualizați conținutul partițiilor Linux ext2 și să le puteți scrie. Utilitarul instalează driverul de sistem ext2fs.sys, care se extinde caracteristici ferestreși include suport complet pentru ext2: partițiilor ext2 li se atribuie litere de unitate, iar fișierele și folderele de pe ele sunt afișate în casetele de dialog ale tuturor aplicațiilor, de exemplu, în Explorer.

Ext2 FSD

Ext2 FSD este un driver gratuit pentru sistemele Windows (versiunile 2K/XP/VISTA/7 x86 și x64). La fel ca utilitarul anterior, care este și un driver în esență, include suport complet pentru sistemul de fișiere ext2 din Windows.

LTOOLS este un set de utilitare de linie de comandă care vă permite să citiți și să scrieți date pe/de pe partițiile Linux ext2, ext3 și ReiserFS (sisteme de fișiere Linux standard) de pe o mașină care rulează DOS sau Windows.

Există o versiune a programului cu înveliș grafic(scris în Java) – LTOOLSgui, precum și o versiune cu un shell grafic scris în .

Ext2Read

Desertul este, ca întotdeauna, cel mai delicios.

Ext2Read este un utilitar de tip manager de fișiere care vă permite să vizualizați și să scrieți în partițiile ext2/ext3/ext4. Acceptă LVM2 și, ceea ce îl deosebește de alte programe din această recenzie, sistemul de fișiere ext4. Suport încorporat pentru copierea recursivă a directoarelor.

Și iată cel de-al doilea desert. La început s-a spus că ar fi un gest bun din partea Microsoft să includă suport partiții Linuxîn Windows în mod implicit.

Gestul a fost totuși făcut la 20 de ani de la Linux. Convinge-te singur.

Asta e tot. Vă mulțumim pentru atenție. Mă duc să lupt cu cockchafers. Sunt atât de mulți în această primăvară. 🙂

De ce este posibil ca un smartphone să nu lanseze programe de pe un card de memorie? Prin ce diferă fundamental ext4 de ext3? De ce va dura o unitate flash mai mult dacă o formatați în NTFS și nu în FAT? Care este principala problemă cu F2FS? Răspunsurile se află în caracteristicile structurale ale sistemelor de fișiere. Vom vorbi despre ele.

Introducere

Sistemele de fișiere definesc modul în care sunt stocate datele. Acestea determină ce limitări va întâmpina utilizatorul, cât de rapide vor fi operațiunile de citire și scriere și cât timp va funcționa unitatea fără defecțiuni. Acest lucru este valabil mai ales pentru SSD-urile bugetare și pentru frații lor mai mici - unitățile flash. Cunoscând aceste caracteristici, puteți profita la maximum de orice sistem și puteți optimiza utilizarea acestuia pentru sarcini specifice.

Trebuie să alegeți tipul și parametrii sistemului de fișiere de fiecare dată când trebuie să faceți ceva non-trivial. De exemplu, doriți să accelerați cele mai comune operațiuni cu fișiere. La nivel de sistem de fișiere, acest lucru poate fi realizat căi diferite: indexarea va oferi cautare rapida, iar pre-rezervarea blocurilor gratuite va face mai ușor să rescrieți fișierele care se schimbă frecvent. Pre-optimizarea datelor din RAM va reduce numărul de operațiuni I/O necesare.

Asemenea proprietăți ale sistemelor de fișiere moderne precum scrierea leneșă, deduplicarea și alți algoritmi avansați ajută la creșterea perioadei de funcționare fără probleme. Sunt relevante în special pentru SSD-urile ieftine cu cipuri de memorie TLC, unități flash și carduri de memorie.

Există optimizări separate pentru matricele de discuri diferite niveluri: De exemplu, sistemul de fișiere poate suporta oglindirea ușoară a volumului, instantanee instantanee sau scalare dinamică fără a scoate volumul offline.

Cutie neagră

Utilizatorii lucrează în cea mai mare parte cu sistemul de fișiere implicit sistem de operare. Rareori creează noi partiții de disc și chiar mai rar se gândesc la setările lor - pur și simplu folosesc parametrii recomandați sau chiar cumpără medii preformatate.

Pentru fanii Windows, totul este simplu: NTFS pe toate partițiile de disc și FAT32 (sau același NTFS) pe unitățile flash. Dacă există un NAS și folosește un alt sistem de fișiere, atunci pentru majoritatea rămâne dincolo de percepție. Pur și simplu se conectează la el prin rețea și descarcă fișiere, ca dintr-o cutie neagră.

Pe dispozitivele mobile cu Android ext4 se găsește cel mai des în memorie internași FAT32 pe cardurile microSD. Lui Yabloko nu îi pasă deloc ce fel de sistem de fișiere au: HFS+, HFSX, APFS, WTFS... pentru ei există doar pictograme frumoase de foldere și fișiere desenate de cei mai buni designeri. Utilizatorii Linux au cea mai bogată opțiune, dar puteți adăuga suport pentru sisteme de fișiere non-native atât în ​​Windows, cât și în macOS - mai multe despre asta mai târziu.

Rădăcini comune

Au fost create peste o sută de sisteme de fișiere diferite, dar puțin mai mult de o duzină pot fi considerate actuale. Deși toate au fost dezvoltate pentru propriile aplicații specifice, multe au ajuns să fie legate la nivel conceptual. Ele sunt similare deoarece folosesc același tip de structură de reprezentare a (meta)datelor - B-trees („bi-trees”).

Ca orice sistem ierarhic, un arbore B începe cu o înregistrare rădăcină și apoi se ramifică în elemente frunză - înregistrări individuale ale fișierelor și atributele acestora, sau „frunze”. Principalul scop al creării unei astfel de structuri logice a fost accelerarea căutării obiectelor sistemului de fișiere pe mare matrice dinamice- ca hard disk-uri cu o capacitate de câțiva terabytes sau chiar și mai impresionante matrice RAID.

Arborii B necesită mult mai puține accesări la disc decât alte tipuri arbori echilibrați, în timp ce efectuează aceleași operații. Acest lucru se realizează datorită faptului că obiectele finale din arborii B sunt situate ierarhic la aceeași înălțime, iar viteza tuturor operațiunilor este precis proporțională cu înălțimea arborelui.

Ca și alți copaci echilibrați, copacii B au lungimi egale de la rădăcină la orice frunză. În loc să crească în sus, ele se ramifică mai mult și cresc mai late: toate punctele de ramificație dintr-un arbore B stochează multe referințe la obiecte copil, făcându-le ușor de găsit în mai puține apeluri. Număr mare pointers reduce numărul de operațiuni pe disc care consumă cel mai mult timp - poziționarea capului la citirea blocurilor arbitrare.

Conceptul de arbori B a fost formulat încă din anii șaptezeci și de atunci a suferit diverse îmbunătățiri. Într-o formă sau alta este implementat în NTFS, BFS, XFS, JFS, ReiserFS și multe SGBD-uri. Toți sunt rude din punct de vedere principii de baza organizarea datelor. Diferențele se referă la detalii, adesea destul de importante. Sistemele de fișiere înrudite au, de asemenea, un dezavantaj comun: toate au fost create pentru a funcționa special cu discuri chiar înainte de apariția SSD-urilor.

Memoria flash ca motor al progresului

Unitățile cu stare solidă înlocuiesc treptat unitățile de disc, dar deocamdată sunt forțate să folosească sisteme de fișiere care le sunt străine, transmise prin moștenire. Sunt construite pe matrice de memorie flash, ale căror principii de funcționare diferă de cele ale dispozitivelor de disc. În special, memoria flash trebuie ștearsă înainte de a fi scrisă, operație pe care cipurile NAND nu o pot realiza la nivel individual de celulă. Este posibil numai pentru blocuri mari în întregime.

Această limitare se datorează faptului că în memoria NAND toate celulele sunt combinate în blocuri, fiecare dintre ele având o singură conexiune comună la magistrala de control. Nu vom intra în detalii despre organizarea paginii și nu vom descrie ierarhia completă. Însuși principiul operațiunilor de grup cu celule și faptul că dimensiunile blocurilor de memorie flash sunt de obicei mai mari decât blocurile abordate în orice sistem de fișiere sunt importante. Prin urmare, toate adresele și comenzile pentru unitățile cu flash NAND trebuie traduse prin stratul de abstractizare FTL (Flash Translation Layer).

Compatibilitatea cu logica dispozitivelor de disc și suportul pentru comenzile interfețelor lor native este asigurată de controlerele de memorie flash. De obicei, FTL este implementat în firmware-ul lor, dar poate fi implementat (parțial) pe gazdă - de exemplu, Plextor scrie drivere pentru SSD-urile sale care accelerează scrierea.

Este imposibil să faci fără FTL, deoarece chiar și scrierea unui bit într-o anumită celulă declanșează o serie întreagă de operații: controlerul găsește blocul care conține celula dorită; blocul este citit complet, scris în cache sau în loc liber, apoi este șters în întregime, după care este rescris înapoi cu modificările necesare.

Această abordare amintește de viața de zi cu zi a armatei: pentru a da un ordin unui soldat, sergentul face construcție generală, îl cheamă pe bietul din formație și le poruncește celorlalți să se împrăștie. În memoria acum rară NOR, organizarea era forțe speciale: fiecare celulă era controlată independent (fiecare tranzistor avea un contact individual).

Sarcinile controlerelor sunt în creștere, deoarece cu fiecare generație de memorie flash procesul tehnic de producție scade pentru a crește densitatea și a reduce costul stocării datelor. Odată cu standardele tehnologice, durata de viață estimată a cipurilor este, de asemenea, în scădere.

Modulele cu celule SLC cu un singur nivel aveau o resursă declarată de 100 de mii de cicluri de rescriere și chiar mai mult. Multe dintre ele încă funcționează pe vechi unități flash și carduri CF. Pentru MLC de clasă enterprise (eMLC), resursa a fost declarată în intervalul de la 10 la 20 de mii, în timp ce pentru MLC obișnuit de gradul de consumator este estimată la 3-5 mii. Memoria de acest tip este stoarsă în mod activ de TLC și mai ieftin, a cărui resursă abia ajunge la o mie de cicluri. Menținerea duratei de viață a memoriei flash la un nivel acceptabil necesită trucuri software, iar noile sisteme de fișiere devin unul dintre ele.

Inițial, producătorii au presupus că sistemul de fișiere nu este important. Controlerul în sine trebuie să deservească o serie de celule de memorie de scurtă durată de orice tip, distribuind sarcina între ele într-un mod optim. Pentru driverul sistemului de fișiere, acesta simulează un disc obișnuit și el însuși efectuează optimizări de nivel scăzut pentru orice acces. Cu toate acestea, în practică, optimizarea variază de la dispozitiv la dispozitiv, de la magic la fals.

În SSD-urile pentru întreprinderi, controlerul încorporat este un computer mic. Are o memorie tampon uriașă (o jumătate de gigaoctet sau mai mult) și acceptă multe tehnici de eficiență a datelor pentru a evita ciclurile inutile de rescriere. Cipul organizează toate blocurile din cache, efectuează scrieri leneșe, efectuează deduplicare din mers, rezervă unele blocuri și șterge altele în fundal. Toată această magie se întâmplă complet neobservată de OS, programe și utilizator. Cu un astfel de SSD, chiar nu contează ce sistem de fișiere este folosit. Optimizări interne au un impact mult mai mare asupra productivității și resurselor decât cele externe.

SSD-urile bugetare (și chiar mai mult unitățile flash) costă mult mai puțin controlere inteligente. Cache-ul din ele este limitat sau absent, iar tehnologiile avansate de server nu sunt folosite deloc. Controlerele din cardurile de memorie sunt atât de primitive încât adesea se pretinde că nu există deloc. Prin urmare, pentru dispozitivele ieftine cu memorie flash, metodele externe de echilibrare a încărcăturii rămân relevante - în primul rând folosind sisteme de fișiere specializate.

De la JFFS la F2FS

Una dintre primele încercări de a scrie un sistem de fișiere care să țină cont de principiile organizării memoriei flash a fost JFFS - Journaling Flash File System. Inițial, această dezvoltare a companiei suedeze Axis Communications a avut ca scop creșterea eficienței memoriei dispozitivelor de rețea pe care Axis le-a produs în anii nouăzeci. Prima versiune a JFFS a acceptat doar memoria NOR, dar deja în a doua versiune a devenit prieten cu NAND.

În prezent, JFFS2 are o utilizare limitată. Practic este încă folosit în distribuții Linux pentru sistemele încorporate. Poate fi găsit în routere, camere IP, NAS și alți obișnuiți ai Internetului lucrurilor. În general, oriunde este necesară o cantitate mică de memorie fiabilă.

O altă încercare de a dezvolta JFFS2 a fost LogFS, care a stocat inoduri într-un fișier separat. Autorii acestei idei sunt Jorn Engel, angajat al diviziei germane a IBM, și Robert Mertens, profesor la Universitatea din Osnabrück. Sursă LogFS este disponibil pe GitHub. Judecând după faptul că ultima schimbare a fost făcut acum patru ani, LogFS nu a câștigat niciodată popularitate.

Dar aceste încercări au stimulat apariția unui alt sistem de fișiere specializat - F2FS. A fost dezvoltat de Samsung Corporation, care reprezintă o parte considerabilă din memoria flash produsă în lume. Samsung face cipuri Flash NAND pentru propriile dispozitive și la cererea altor companii și, de asemenea, dezvoltă SSD-uri cu interfețe fundamental noi în loc de cele vechi de disc. Crearea unui sistem de fișiere specializat optimizat pentru memorie flash a fost o necesitate de mult așteptată din punctul de vedere al Samsung.

Acum patru ani, în 2012, Samsung a creat F2FS (Flash Friendly File System). Ideea ei a fost bună, dar implementarea s-a dovedit a fi brută. Sarcina cheie la crearea F2FS a fost simplă: reducerea numărului de operațiuni de rescriere a celulelor și distribuirea sarcinii pe acestea cât mai uniform posibil. Acest lucru necesită efectuarea de operații pe mai multe celule din același bloc în același timp, mai degrabă decât forțarea lor pe rând. Aceasta înseamnă că ceea ce este necesar nu este rescrierea instantanee a blocurilor existente la prima solicitare a sistemului de operare, ci stocarea în cache a comenzilor și a datelor, adăugarea de noi blocuri la spațiul liber și ștergerea întârziată a celulelor.

Astăzi, suportul F2FS este deja implementat oficial în Linux (și, prin urmare, în Android), dar în practică nu oferă încă avantaje speciale. Caracteristica principală a acestui sistem de fișiere (rescrie leneșă) a condus la concluzii premature cu privire la eficacitatea acestuia. Vechiul truc de cache a păcălit chiar și versiunile timpurii ale benchmark-urilor, în care F2FS a demonstrat un avantaj imaginar nu de câteva procente (cum era de așteptat) sau chiar de mai multe ori, ci de ordine de mărime. Driverul F2FS a raportat pur și simplu finalizarea unei operațiuni pe care controlerul tocmai plănuia să o facă. Cu toate acestea, dacă câștigul real de performanță pentru F2FS este mic, atunci uzura celulelor va fi cu siguranță mai mică decât atunci când se utilizează același ext4. Acele optimizări pe care un controler ieftin nu le poate face vor fi efectuate la nivelul sistemului de fișiere însuși.

Extensii și hărți de biți

Deocamdată, F2FS este perceput ca exotic pentru geek. Chiar și în propriile smartphone-uri Samsung încă folosește ext4. Mulți o consideră dezvoltare ulterioară ext3, dar acest lucru nu este în întregime adevărat. Este despre mai mult despre revoluție decât despre spargerea barierei de 2 TB per fișier și pur și simplu creșterea altor indicatori cantitativi.

Când computerele erau mari și fișierele mici, adresarea nu era o problemă. Fiecărui fișier i s-a alocat un anumit număr de blocuri, ale căror adrese au fost introduse în tabelul de corespondență. Așa a funcționat sistemul de fișiere ext3, care rămâne în funcțiune până în prezent. Dar în ext4 a apărut o metodă de adresare fundamental diferită - extents.

Extensiunile pot fi considerate ca extensii de inoduri ca seturi discrete de blocuri care sunt adresate în întregime ca secvențe contigue. O măsură poate conține întreg dosarul dimensiune medie, iar pentru fișiere mari este suficient să alocați o duzină sau două extent. Acest lucru este mult mai eficient decât abordarea a sute de mii de blocuri mici de patru kiloocteți.

Mecanismul de înregistrare în sine s-a schimbat și în ext4. Acum blocurile sunt distribuite imediat într-o singură solicitare. Și nu în avans, ci imediat înainte de a scrie date pe disc. Alocarea leneșă cu mai multe blocuri vă permite să scăpați de operațiunile inutile de care ext3 s-a făcut vinovat: în ea, blocurile pentru un fișier nou au fost alocate imediat, chiar dacă încapea în întregime în cache și era planificat să fie șters ca temporar.


Dieta restricționată în grăsimi

Pe lângă copacii echilibrați și modificările acestora, există și alți populari structuri logice. Există sisteme de fișiere cu un tip de organizare fundamental diferit - de exemplu, liniară. Probabil că folosești cel puțin unul dintre ele des.

Mister

Ghici ghicitoarea: la doisprezece a început să se îngrașă, la șaisprezece era o grasă proastă, iar la treizeci și doi a îngrășat și a rămas o simplă. Cine este ea?

Așa este, aceasta este o poveste despre sistemul de fișiere FAT. Cerințele de compatibilitate i-au oferit o ereditate proastă. Pe dischete era pe 12 biți hard disk-uri- la început a fost pe 16 biți, dar a ajuns în zilele noastre ca pe 32 de biți. În fiecare următoarea versiune numărul de blocuri adresabile a crescut, dar în esență nimic nu s-a schimbat.

Sistemul de fișiere FAT32 încă popular a apărut acum douăzeci de ani. Astăzi este încă primitiv și nu acceptă liste de control al accesului, cote de disc, compresie de fundal sau altele tehnologii moderne optimizarea procesării datelor.

De ce este nevoie de FAT32 în zilele noastre? Totul este încă doar pentru a asigura compatibilitatea. Producătorii cred pe bună dreptate că o partiție FAT32 poate fi citită de orice sistem de operare. De aceea o creează pe dur extern discuri, USB Flash și carduri de memorie.

Cum să eliberați memoria flash a smartphone-ului dvs

Cardurile microSD(HC) utilizate în smartphone-uri sunt formatate în FAT32 în mod implicit. Acesta este principalul obstacol în calea instalării aplicațiilor pe ele și a transferului de date din memoria internă. Pentru a o depăși, trebuie să creați o partiție pe card cu ext3 sau ext4. Puteți transfera totul în el atributele fișierului(inclusiv drepturi de proprietar și de acces), astfel încât orice aplicație poate rula ca și cum ar fi lansată din memoria internă.

Windows nu știe cum să creeze mai mult de o partiție pe unități flash, dar pentru aceasta puteți rula Linux (cel puțin într-o mașină virtuală) sau un utilitar avansat pentru a lucra cu partiționarea logică - de exemplu, MiniTool Partition Wizard Free. După ce a descoperit o partiție primară suplimentară cu ext3/ext4 pe card, aplicația Link2SD și altele similare vor oferi mult mai multe opțiuni decât în ​​cazul unei singure partiții FAT32.


Un alt argument în favoarea alegerii FAT32 este adesea citat ca lipsa sa de jurnalizare, ceea ce înseamnă operații de scriere mai rapide și mai puțină uzură a celulelor de memorie NAND Flash. În practică, utilizarea FAT32 duce la invers și dă naștere la multe alte probleme.

Unitățile flash și cardurile de memorie mor rapid din cauza faptului că orice modificare a FAT32 determină suprascrierea acelorași sectoare în care se află două lanțuri de tabele de fișiere. Am salvat întreaga pagină web și a fost suprascrisă de o sută de ori - cu fiecare adăugare a unui alt GIF mic pe unitatea flash. Ai lansat un software portabil? Acesta creează fișiere temporare și le modifică constant în timpul rulării. Prin urmare, este mult mai bine să utilizați NTFS pe unități flash cu tabelul $MFT rezistent la eșec. Fișierele mici pot fi stocate direct în tabelul principal de fișiere, iar extensiile și copiile acestuia sunt scrise zone diferite memorie flash. În plus, indexarea NTFS face căutarea mai rapidă.

INFO

Pentru FAT32 și NTFS, restricțiile teoretice privind nivelul de imbricare nu sunt specificate, dar în practică sunt aceleași: într-un director de prim nivel pot fi create doar 7707 subdirectoare. Cei cărora le place să joace păpuși matrioșca îl vor aprecia.

O altă problemă cu care se confruntă majoritatea utilizatorilor este că este imposibil să scrieți un fișier mai mare de 4 GB pe o partiție FAT32. Motivul este că în FAT32 dimensiunea fișierului este descrisă de 32 de biți în tabelul de alocare a fișierelor, iar 2^32 (minus unu, pentru a fi precis) este exact patru giga. Se pare că nici un film de calitate normală și nici o imagine DVD nu pot fi scrise pe o unitate flash proaspăt achiziționată.

Copierea fișierelor mari nu este atât de rău: atunci când încercați să faceți acest lucru, eroarea este cel puțin vizibilă imediat. În alte situații, FAT32 acționează ca o bombă cu ceas. De exemplu, ai copiat software portabil pe o unitate flash și la început îl folosești fără probleme. După mult timp, unul dintre programe (de exemplu, contabilitate sau e-mail), baza de date devine umflată și... pur și simplu se oprește actualizarea. Fișierul nu poate fi suprascris deoarece a atins limita de 4 GB.

O problemă mai puțin evidentă este că în FAT32 data creării unui fișier sau director poate fi specificată în două secunde. Acest lucru nu este suficient pentru multe aplicații criptografice care folosesc marcaje temporale. Precizia scăzută a atributului date este un alt motiv pentru care FAT32 nu este considerat un sistem de fișiere valid din punct de vedere al securității. Cu toate acestea, ea părţile slabe poate fi folosit în scopuri proprii. De exemplu, dacă copiați orice fișier dintr-o partiție NTFS pe un volum FAT32, acestea vor fi șterse de toate metadatele, precum și de permisiunile moștenite și setate special. FAT pur și simplu nu le suportă.

exFAT

Spre deosebire de FAT12/16/32, exFAT a fost dezvoltat special pentru USB Flash și carduri de memorie mari (≥ 32 GB). FAT extins elimină dezavantajul menționat mai sus al FAT32 - suprascrierea acelorași sectoare cu orice modificare. Ca un sistem pe 64 de biți, practic nu are limite semnificative pe dimensiunea fișierului. Teoretic, poate avea o lungime de 2^64 de octeți (16 EB), iar cardurile de această dimensiune nu vor apărea curând.

Un alt lucru important diferenta exFAT- suport pentru liste de control al accesului (ACL). Acesta nu mai este același simplist din anii nouăzeci, dar natura închisă a formatului împiedică implementarea exFAT. Suportul ExFAT este implementat integral și legal numai în Windows (începând cu XP SP2) și OS X (începând cu 10.6.5). Pe Linux și *BSD este acceptat fie cu restricții, fie nu tocmai legal. Microsoft necesită licență pentru utilizarea exFAT și există multe controverse juridice în acest domeniu.

Btrfs

O alta reprezentant luminos Sistemele de fișiere bazate pe arborele B se numesc Btrfs. Acest FS a apărut în 2007 și a fost creat inițial în Oracle pentru a lucra cu SSD-uri și RAID-uri. De exemplu, poate fi scalat dinamic: creând noi inoduri direct pe sistemul care rulează sau împărțind un volum în subvolume fără a le aloca spațiu liber.

Mecanismul de copiere pe scriere implementat în Btrfs și integrarea completă cu modulul de kernel Device Mapper vă permit să faceți instantanee aproape instantanee prin dispozitive cu bloc virtual. Precomprimarea (zlib sau lzo) și deduplicarea accelerează operațiunile de bază, prelungind și durata de viață a memoriei flash. Acest lucru este vizibil mai ales atunci când lucrați cu baze de date (se realizează compresia de 2-4 ori) și fișiere mici (sunt scrise în blocuri mari ordonate și pot fi stocate direct în „frunze”).

Btrfs acceptă, de asemenea, modul de înregistrare completă (date și metadate), verificarea volumului fără demontare și multe alte caracteristici moderne. Codul Btrfs este publicat sub Licență GPL. Acest sistem de fișiere a fost acceptat ca stabil în Linux începând cu versiunea de kernel 4.3.1.

Jurnalele de bord

Aproape toate sistemele de fișiere mai mult sau mai puțin moderne (ext3/ext4, NTFS, HFSX, Btrfs și altele) aparțin grupului general al celor jurnalizate, deoarece păstrează evidența modificărilor efectuate într-un jurnal separat (jurnal) și sunt verificate în raport cu acesta în evenimentul unei defecțiuni în timpul operațiunilor de disc. Cu toate acestea, granularitatea înregistrării și toleranța la erori ale acestor sisteme de fișiere diferă.

Ext3 acceptă trei moduri de înregistrare: în buclă închisă, ordonat și complet. Primul mod implică doar înregistrarea modificari generale(metadate) efectuate asincron în ceea ce privește modificările în datele în sine. În al doilea mod, se realizează aceeași înregistrare a metadatelor, dar strict înainte de a face orice modificări. Al treilea mod este echivalent cu înregistrarea completă (modificări atât în ​​metadate, cât și în fișierele în sine).

Doar ultima opțiune asigură integritatea datelor. Cele două rămase doar accelerează detectarea erorilor în timpul scanării și garantează restabilirea integrității sistemului de fișiere în sine, dar nu și a conținutului fișierelor.

Jurnalizarea în NTFS este similară cu al doilea mod de înregistrare în ext3. Doar modificările metadatelor sunt înregistrate în jurnal, iar datele în sine se pot pierde în cazul unei erori. Această metodă de înregistrare în NTFS nu a fost concepută ca o modalitate de a obține fiabilitatea maximă, ci doar ca un compromis între performanță și toleranța la erori. Acesta este motivul pentru care oamenii care sunt obișnuiți să lucreze cu sisteme complet jurnalizate iau în considerare pseudo-jurnalizarea NTFS.

Abordarea implementată în NTFS este în anumite privințe chiar mai bună decât cea implicită în ext3. În plus, NTFS creează periodic puncte de control pentru a se asigura că toate operațiunile de disc amânate anterior sunt finalizate. Punctele de control nu au nicio legătură cu punctele de recuperare din \Informații despre volumul sistemului\ . Acestea sunt doar intrări în jurnalul de service.

Practica arată că o astfel de jurnalizare NTFS parțială este în majoritatea cazurilor suficientă pentru o funcționare fără probleme. La urma urmei, chiar și cu o întrerupere bruscă de curent dispozitive de disc nu pierde puterea instantaneu. Sursa de alimentare și numeroșii condensatori din unități oferă doar cantitatea minimă de energie care este suficientă pentru a finaliza operația de scriere curentă. SSD modern având în vedere viteza și eficiența lor, aceeași cantitate de energie este de obicei suficientă pentru a efectua operațiuni în așteptare. O încercare de a trece la înregistrarea completă ar reduce viteza majorității operațiunilor în mod semnificativ.

Conectarea fișierelor terță parte în Windows

Utilizarea sistemelor de fișiere este limitată de suportul acestora la nivelul sistemului de operare. De exemplu, Windows nu înțelege ext2/3/4 și HFS+, dar uneori este necesar să le folosiți. Acest lucru se poate face prin adăugarea driverului corespunzător.

AVERTIZARE

Majoritatea driverelor și pluginurilor pentru suportul sistemelor de fișiere terțe au limitările lor și nu funcționează întotdeauna stabil. Acestea pot intra în conflict cu alte drivere, antivirusuri și programe de virtualizare.

Un driver deschis pentru citirea și scrierea partițiilor ext2/3 cu suport parțial pentru ext4. Cea mai recentă versiune acceptă extensii și partiții de până la 16 TB. LVM, listele de control al accesului și atributele extinse nu sunt acceptate.


Există un plugin gratuit pentru Total Commander. Suportă citirea partițiilor ext2/3/4.


coLinux este un port deschis și liber Kernel-urile Linux. Împreună cu un driver pe 32 de biți, vă permite să rulați Linux pe Windows de la 2000 la 7 fără a utiliza tehnologii de virtualizare. Acceptă numai versiuni pe 32 de biți. Dezvoltarea unei modificări pe 64 de biți a fost anulată. CoLinux vă permite, de asemenea, să organizați accesul la partițiile ext2/3/4 din Windows. Sprijinul pentru proiect a fost suspendat în 2014.

Este posibil ca Windows 10 să aibă deja suport încorporat pentru sistemele de fișiere specifice Linux, este doar ascuns. Aceste gânduri sunt sugerate de driverul la nivel de kernel Lxcore.sys și de serviciul LxssManager, care este încărcat ca bibliotecă de procesul Svchost.exe. Pentru mai multe informații despre acest lucru, vezi raportul lui Alex Ionescu „The Linux Kernel Hidden Inside Windows 10”, pe care l-a prezentat la Black Hat 2016.


ExtFS pentru Windows este un driver plătit produs de Paragon. Funcționează pe Windows 7 până la 10 și acceptă accesul de citire/scriere la volumele ext2/3/4. Oferă suport aproape complet pentru ext4 pe Windows.

HFS+ pentru Windows 10 este un alt driver proprietar produs de Paragon Software. În ciuda numelui, funcționează în toate versiunile de Windows, începând de la XP. Oferă acces complet la sistemele de fișiere HFS+/HFSX pe discuri cu orice aspect (MBR/GPT).

WinBtrfs este o dezvoltare timpurie a driverului Btrfs pentru Windows. Deja în versiunea 0.6 acceptă atât accesul de citire, cât și de scriere la volumele Btrfs. Poate gestiona legături rigide și simbolice, acceptă fluxuri de date alternative, ACL-uri, două tipuri de compresie și modul de citire/scriere asincron. În timp ce WinBtrfs nu știe cum să folosească mkfs.btrfs, btrfs-balance și alte utilitare pentru a menține acest sistem de fișiere.

Capacități și limitări ale sistemelor de fișiere: tabel rezumativ

Sistemul de fișiere Dimensiunea maximă a volumului Limitați dimensiunea unui fișier Lungimea numelui corect al fișierului Lungimea numelui complet al fișierului (inclusiv calea de la rădăcină) Limitați numărul de fișiere și/sau directoare Acuratețea datei fișierului/directorului Drepturi dos-tu-pa Legături dure Legături simbolice Instantanee Comprimarea datelor în fundal Criptarea datelor în fundal Bunicul-ple-ka-ţiune de date
FAT16 2 GB în sectoare de 512 octeți sau 4 GB în clustere de 64 KB 2 GB 255 de octeți cu LFN
FAT32 8 TB sectoare a câte 2 KB fiecare 4 GB (2^32 - 1 octet) 255 de octeți cu LFN până la 32 de subdirectoare cu CDS 65460 10 ms (creare) / 2 s (modificare) Nu Nu Nu Nu Nu Nu Nu
exFAT ≈ 128 PB (2^32-1 clustere de 2^25-1 octeți) teoretic / 512 TB din cauza restricțiilor terțelor părți 16 EB (2^64 - 1 octet) 2796202 în catalog 10 ms ACL Nu Nu Nu Nu Nu Nu
NTFS 256 TB în clustere de 64 KB sau 16 TB în clustere de 4 KB 16 TB (Win 7) / 256 TB (Win 8) 255 de caractere Unicode (UTF-16) 32.760 de caractere Unicode, până la maximum 255 de caractere per element 2^32-1 100 ns ACL da da da da da da
HFS+ 8 EB (2^63 octeți) 8 EB 255 de caractere Unicode (UTF-16) nu limitate separat 2^32-1 1 s Unix, ACL da da Nu da da Nu
APFS 8 EB (2^63 octeți) 8 EB 255 de caractere Unicode (UTF-16) nu limitate separat 2^63 1 ns Unix, ACL da da da da da da
Ext3 32 TB (teoretic) / 16 TB în clustere de 4 KB (datorită limitărilor programelor e2fs) 2 TB (teoretic) / 16 GB pentru programe mai vechi 255 de caractere Unicode (UTF-16) nu limitate separat 1 s Unix, ACL da da Nu Nu Nu Nu
Ext4 1 EB (teoretic) / 16 TB în clustere de 4 KB (datorită limitărilor programelor e2fs) 16 TB 255 de caractere Unicode (UTF-16) nu limitate separat 4 miliarde 1 ns POSIX da da Nu Nu da Nu
F2FS 16 TB 3,94 TB 255 de octeți nu limitate separat 1 ns POSIX, ACL da da Nu Nu da Nu
BTRFS 16 EB (2^64 - 1 octet) 16 EB 255 de caractere ASCII 2^17 octeți 1 ns POSIX, ACL da da da da da da

Sistem de fișiere EXT3

Spre deosebire de EXT2, EXT3 este jurnalizate sistem de fișiere, adică nu va ajunge într-o stare inconsistentă după eșecuri. Dar este pe deplin compatibil cu EXT2.

Dezvoltat de Red Hat

În prezent, cel principal pentru LINUX.

Driverul Ext3 păstrează copii exacte complete ale blocurilor modificate (1KB, 2KB sau 4KB) în memorie până la finalizarea operațiunii. Acest lucru poate părea risipitor. Blocurile complete conțin nu numai date modificate, ci și date nemodificate.

Această abordare se numește „ logare fizică", care reflectă utilizarea „blocurilor fizice” ca unitate de bază a jurnalizării. Abordarea de a stoca doar octeți modificabili, mai degrabă decât blocuri întregi, se numește „ logare logică" (Se folosește XFS). Deoarece ext3 folosește „înregistrare fizică”, jurnalul din ext3 este mai mare decât în ​​XFS. Datorită utilizării blocurilor complete în ext3, atât driverul, cât și subsistemul de înregistrare evită complexitățile care apar cu „logica”. Logare" .

Tipuri de înregistrare acceptate de Ext3, care pot fi activate din fișierul /etc/fstab:

o date=jurnal(modul de jurnalizare a datelor complete) - toate datele noi sunt mai întâi scrise în jurnal și numai după aceea sunt transferate în locația sa permanentă. În cazul unui accident, jurnalul poate fi recitit, readucerea datelor și metadatele la o stare constantă.
Cel mai lent, dar cel mai de încredere.

o date=ordonate- se înregistrează doar modificările la metadatele sistemului de fișiere, dar în mod logic metadatele și blocurile de date sunt grupate într-un singur modul numit tranzacție. Înainte de a scrie metadate noi pe disc, date aferente blocurile sunt scrise mai întâi. Acest mod de înregistrare ext3 este instalat implicit.
Când adăugați date la sfârșitul unui fișier, modul data=ordonat este garantat pentru a asigura integritatea (ca și în modul de jurnalizare a datelor complete). Cu toate acestea, dacă datele sunt scrise într-un fișier peste cele existente, atunci există posibilitatea de a amesteca blocurile „originale” cu cele modificate. Acesta este un rezultat al datelor=ordonate care nu urmăresc înregistrările unde bloc nou se află deasupra celui existent și nu provoacă modificarea metadatelor.

o date=writeback(numai metadate) - sunt înregistrate numai modificările aduse metadatelor sistemului de fișiere. Cea mai rapidă metodă de înregistrare. Acesta este tipul de jurnalizare pe care îl vedeți cu sistemele de fișiere XFS, JFS și ReiserFS.

3.3.3 Sistemul de fișiere XFS

XFS este un sistem de fișiere de jurnal dezvoltat de Silicon Graphics, dar acum lansat ca sursă deschisă.

Informații oficiale la http://oss.sgi.com/projects/xfs/

XFS a fost creat la începutul anilor 90 (1992-1993) de Silicon Grapgics (acum SGI) pentru computerele multimedia care rulează Irix OS. Sistemul de fișiere era destinat fișierelor și sistemelor de fișiere foarte mari. O caracteristică a acestui sistem de fișiere este dispozitivul jurnal - o parte din metadatele sistemului de fișiere în sine sunt scrise în jurnal în așa fel încât întregul proces de recuperare se reduce la copierea acestor date din jurnal în sistemul de fișiere. Dimensiunea jurnalului este setată la crearea sistemului; trebuie să fie de cel puțin 32 de megaocteți; și nu aveți nevoie de mai mult - este greu să obțineți un astfel de număr de tranzacții neînchise.

Câteva caracteristici:

o Funcționează mai eficient cu fișiere mari.

o Are capacitatea de a muta jurnalul pe alt disc pentru a îmbunătăți performanța.

o Salvează datele din memoria cache numai când memoria este plină, și nu periodic ca celelalte.

o Sunt înregistrate numai metadatele.

o Se folosesc arbori B+.

o Se utilizează înregistrarea logică

3.3.4 Sistem de fișiere RFS

RFS (RaiserFS)- sistem de fișiere de jurnalizare dezvoltat de Namesys.

Informații oficiale despre RaiserFS

Câteva caracteristici:

o Lucrează mai eficient cu o cantitate mare fișiere mici, în ceea ce privește performanța și utilizarea eficientă a spațiului pe disc.

o Utilizează arborele echilibrat b* special optimizat (o versiune îmbunătățită a arborelui B+)

o Alocă dinamic i-noduri în loc de un set static al acestora creat la crearea unui sistem de fișiere „tradițional”.

o Dimensiuni dinamice ale blocurilor.

3.3.4 Sistem de fișiere JFS

JFS (sistem de fișiere jurnalizate) - Un sistem de fișiere de jurnal dezvoltat de IBM pentru sistemul de operare AIX, dar acum lansat ca sursă deschisă.

Informații oficiale despre tehnologia Jurnaled File System pentru Linux

Câteva caracteristici:

o Jurnalele JFS urmează modelul clasic de tranzacție a bazei de date

o Doar metadatele sunt înregistrate

o Dimensiunea jurnalului nu depășește 32 de megaocteți.

o Mod de înregistrare asincronă - efectuat când traficul I/O scade

o Se utilizează înregistrarea logică.

3.4 Tabel de comparație a unor sisteme de fișiere moderne

NTFS EXT4 RFS XFS JFS
Stocarea informațiilor despre fișier MFT inodul inodul inodul inodul
Dimensiunea maximă a partiției 16 EB (2 60) 1 ebyte 4 gigablocuri (deoarece blocurile sunt dinamice) 16 ebytes 32 PB
Dimensiunile blocurilor de la 512 octeți la 64 KB 1 KB - 4 KB Până la 64 KB (fix în prezent 4 KB) de la 512 octeți la 64 KB 512/1024/2048/4096 octeți
Număr maxim de blocuri 2^48 2^32 2^32
Dimensiunea maximă a fișierului 2^64 16 TB (pentru blocuri de 4 KB) 8 TB 8 ebyți 4 PB (2 50)
Lungimea maximă a numelui fișierului
Logare da da da da da
Gestionare gratuită a blocurilor Nu Bazat pe bitmap Arborii B indexați după offset și dimensiune Tree+ Binary Buddy
Extinderi pentru spațiul liber Nu Nu da Nu
Arborele B pentru articolele de director da Nu Ca un subarboresc al arborelui principal al sistemului de fișiere da da
B-trees pentru adresarea blocurilor de fișiere Nu În interiorul arborelui principal al sistemului de fișiere da da
Extinderi pentru adresarea blocurilor de fișiere Nu Da (din versiunea 4) da da
Date din inodul (fișiere mici) Nu da da Nu
Date de legătură simbolică în inode Nu da da da
Intrări de director în interiorul inodelor (directoare mici) Nu da da da
Alocare dinamică inod/MFT da Nu da da da
Structuri pentru gestionarea inodurilor alocate dinamic Nu General B*arbore B+arbore B+arborele cu regiuni de inoduri contigue
Suport rar pentru fișiere da Nu da da da