ext2 - drugi rozszerzony (ang. extended) system plików
ext3 - trzeci rozszerzony system plików
ext4 - czwarty rozszerzony system plików
Drugi, trzeci i czwarty rozszerzone systemy plików, znane
powszechnie jako ext2, ext3 i ext4, są linuksowymi systemami
plików, które były historycznie domyślnymi
systemami plików w wielu dystrybucjach Linuksa. Są to systemy
plików ogólnego zastosowania, zaprojektowane w celu uzyskania
rozszerzalności i kompatybilności wstecznej. W
szczególności, systemy plików mające być
uprzednio używane jako ext2 i ext3, można zamontować za
pomocą sterownika systemu plików ext4. W wielu
współczesnych dystrybucjach, do obsługi
żądań zamontowania systemów plików ext2 i
ext3, skonfigurowano właśnie sterownik systemu plików
ext4.
System plików sformatowany jako ext2, ext3 lub ext4
może mieć włączony pewien zestaw z
poniższych cech funkcji systemu plików.
Część cech nie jest obsługiwane we wszystkich
implementacjach sterowników systemu plików ext2, ext3 i ext4,
zależy to od używanej wersji jądra Linux. W innych
systemach operacyjnych, takich jak GNU/HURD czy FreeBSD, w ich
implementacjach ext2 może być obsługiwany jedynie
wąski podzbiór cech systemu plików.
- 64bit
-
Umożliwia osiągnięcie przez system plików
rozmiaru większego niż 2^32 bloków. Cecha ta jest w
razie potrzeby włączana automatycznie, ale można
ją również podać jawnie, jeśli system
może wymagać zmiany rozmiaru na ponad 2^32 bloków, a
był mniejszy niż ten próg, gdy go pierwotnie
tworzono. Proszę zauważyć, że niektóre
starsze jądra oraz starsze wersje e2fsprogs nie będą
obsługiwały systemu plików z
włączoną niniejszą cechą ext4.
- bigalloc
-
Cecha ext4 umożliwiająca przydzielanie klastra bloków
tak, że jednostką alokacji jest liczba bloków do
kwadratu. Oznacza to, że każdy bit tradycyjnie
będący mapą bitową alokacji bloków,
teraz staje się wskaźnikiem, mówiącym czy
klaster jest używany, czy też nie, przy czym klaster
składa się domyślnie z 16 bloków. Cecha
może zmniejszyć czas, jaki zajmuje przydzielanie
bloków oraz zmniejszyć fragmentację,
szczególnie w przypadku dużych plików. Rozmiar
można określić opcją mke2fs -C.
- Uwaga: Cecha bigalloc jest wciąż rozwijana i
może nie być w pełni obsługiwana przez
używane jądro oraz posiadać błędy.
Szczegóły opisano na stronie internetowej
http://ext4.wiki.kernel.org/index.php/Bigalloc. Opcja może
interferować z opóźnioną alokacją (zob.
opcję montowania nodelalloc).
- Cecha wymaga włączenia funkcji extent.
- casefold
-
Cecha ext4 zapewnia obsługę kodowania dla katalogów z
włączoną flagą casefold (+F), na poziomie
systemu plików. Cecha ta zachowuje nazwy na dysku, lecz pozwala
aplikacjom odszukanie pliku w systemie plików za pomocą
wersji równoważnej kodowania nazwy pliku.
- dir_index
-
Używa b-drzew z kluczem do przyspieszenia wyszukiwania w
dużych katalogach. Jest to cecha obsługiwana w systemach
plików ext3 i ext4, a ignorowana przez system plików
ext2.
- dir_nlink
-
I-węzeł nie może mieć zwykle w ext4
więcej niż 65 000 dowiązań
zwykłych (twardych). Dotyczy to zarówno zwykłych
plików jak i katalogów, zatem oznacza to
również, że katalog nie może posiadać
więcej niż 64 998 podkatalogów
(ponieważ każdy z wpisów „.” i
„..”, jak również wpis katalogu w jego
katalogu nadrzędnym, liczą się jako dowiązania
zwykłe). Niniejsza cecha umożliwia podniesienie tego limitu,
przez co ext4 użyje wartości dowiązań
zwykłych równej 1 jako wskaźnika, że liczba
dowiązań zwykłych do katalogu nie jest znana, gdy
liczba dowiązań mogła przekroczyć maksymalny
limit.
- ea_inode
-
Atrybuty rozszerzone pliku wraz z powiązanymi metadanymi,
muszą zwykle zmieścić się w
i-węźle lub w bloku atrybutów rozszerzonych
związanym z i-węzłem. Cecha ta pozwala, jeśli
zajdzie taka potrzeba, na umieszczenie wartości każdego
atrybutu rozszerzonego w blokach danych oddzielnego i-węzła,
zwiększając limity rozmiaru i liczby atrybutów
rozszerzonych na plik.
- encrypt
-
Włącza obsługę szyfrowania bloków z
danymi oraz nazw plików na poziomie systemu plików. Metadane
i-węzłów (znaczniki czasu, rozmiar pliku,
własność użytkownika/grupy itp.) nie
są szyfrowane.
- Cecha ta jest najbardziej przydatna w systemach plików z wieloma
użytkownikami lub gdy nie wszystkie pliki mają być
zaszyfrowane. W wielu przypadkach, szczególnie w systemach
używanych przez jednego użytkownika, szyfrowanie na poziomie
urządzenia blokowego, za pomocą dm-crypt, może
zapewnić zdecydowanie większe bezpieczeństwo.
- ext_attr
-
Cecha włącza korzystanie z atrybutów rozszerzonych.
Jest obsługiwana w ext2, ext3 i ext4.
- extent
-
Ta cecha ext4 pozwala na przechowywanie przypisań numerów
bloków logicznych określonego i-węzła do
bloków fizycznych na urządzeniu dyskowym w postaci drzewa
ekstentów, które jest efektywniejszą strukturą
danych od tradycyjnych bloków niebezpośrednich,
używanych w systemach plików ext2 i ext3. Używanie
drzewa ekstentów zmniejsza narzut bloków metadanych,
poprawia wydajność systemu plików i zmniejsza czas
potrzebny do wykonania e2fsck(8) na systemie plików (uwaga:
ze względów historycznych/kompatybilności wstecznej,
jako prawidłowa nazwa akceptowana jest oprócz extent
także extents).
-
Ta cecha ext4 rezerwuje określoną ilość miejsca
w każdym i-węźle na metadane, takie jak znaczniki
nanosekundowe i czas utworzenia pliku, nawet jeśli aktualne
jądro nie wymaga rezerwacji tak dużej przestrzeni. Bez tej
cechy, jądro zarezerwuje przestrzeń na funkcje,
których aktualnie potrzebuje, a reszta może być
zajęta przez atrybuty rozszerzone.
W przypadku tej cechy, użyteczny rozmiar
i-węzła musi wynosić co najmniej 256
bajtów.
- filetype
-
Cecha włącza przechowywanie informacji o typie pliku we
wpisach katalogu. Cecha ta jest obsługiwana w ext2, ext3 i
ext4.
- flex_bg
-
Ta cecha ext4 pozwala na umieszczanie metadanych grup poszczególnych
bloków (mapy bitowych alokacji oraz tablic
i-węzłów) w dowolnym miejscu nośnika.
Dodatkowo, mke2fs(8) umieści metadane grup
poszczególnych bloków razem, począwszy od pierwszej
grupy bloków każdej „grupy flex_bg”. Rozmiar
grupy flex_bg można określić za pomocą opcji
-G.
- has_journal
-
Tworzy dziennik, aby zapewnić spójność systemu
plików nawet po wystąpieniu nieprawidłowego
zamknięcia. Ustawienie tej cechy systemu plików jest
równoważne podaniu opcji -j programowi
mke2fs(8) lub tune2fs(8). Cecha ta jest obsługiwana
przez ext3 i ext4 oraz ignorowana przez sterownik systemu plików
ext2.
- huge_file
-
Ta cecha ext4 pozwala na osiąganie przez pliki rozmiaru
większego niż 2 terabajty.
- inline_data
- Pozwala na przechowywanie danych w przestrzeni i-węzła i
atrybutów rozszerzonych.
- journal_dev
-
Ta cecha jest włączana na superbloku, znajdującym
się w zewnętrznym urządzeniu dziennika. Rozmiar bloku
zewnętrznego dziennika musi być taki sam, jak w przypadku
używającego go systemu plików.
- Zewnętrzne urządzenie dziennika może być
użyte przez system plików, za pomocą opcji -J
device=<urządzenie-zewnętrzne> programu
mke2fs(8) lub tune2fs(8).
- large_dir
-
Cecha ta zwiększa limit liczby plików na katalog, przez
zwiększenie maksymalnego rozmiaru katalogów i, w przypadku
katalogów korzystających z b-drzewami z kluczem (zob.
dir_index), maksymalną wysokość b-drzewa z
kluczem, używanego do przechowywania wpisów
katalogów.
- large_file
-
Ten znacznik cechy jest ustawiany automatycznie przez
współczesne jądra, gdy utworzy się plik o
rozmiarze większym niż 2 gigabajty. Bardzo stare
jądra nie potrafią obsłużyć
dużych plików, zatem cecha ta służyła
do zapobiegania montowania systemów plików, których
stare jądra nie mogły zrozumieć.
- metadata_csum
-
Ta cecha ext4 włącza sumy kontrolne metadanych. Sumy kontrolne
dotyczą wszystkich metadanych systemu plików (superbloku,
bloków deskryptora grupy, map bitowych i-węzła i
bloku, katalogów i bloków drzewa ekstentów). Algorytm
sum kontrolnych używany do bloków metadanych
różni się od wykorzystywanego do deskryptorów
grup, przy włączonej funkcji uninit_bg. Te dwie cechy
są niekompatybilne i preferowana jest cecha metadata_csum,
zamiast uninit_bg.
- metadata_csum_seed
-
Cecha pozwala na przechowywanie przez system plików ziarna sum
kontrolnych metadanych w superbloku, co pozwala na zmianę, przez
administratora, UUID-u systemu plików używającego
metadata_csum, gdy jest on zamontowany.
- meta_bg
-
Ta cecha ext4 pozwala na zmianę systemów plików online,
bez potrzeby jawnego rezerwowania przestrzeni na wzrost rozmiaru
deskryptorów grupy bloków. Schemat ten służy
również do zmiany systemów plików,
które mają więcej niż 2^32 bloków. Nie
zaleca się ustawiania tej cechy przy tworzeniu systemu
plików, ponieważ ta alternatywna metoda przechowywania bloku
deskryptorów grup spowolni montowania systemu plików, a
nowsze jądra mogą ją automatycznie
włączyć, gdy będzie to konieczne przy
dokonywaniu zmiany rozmiaru systemu plików online, gdy zabraknie
przestrzeni dostępnej w zmienianym rozmiarze
i-węzła.
- mmp
-
Ta cecha ext4 udostępnia ochronę przed wielokrotnym
montowaniem (ang. multiple mount protection — MMP). MMP pomaga
chronić system plików przed wielokrotnym zamontowaniem i
jest przydatna w środowiskach korzystających z
wspólnych nośników danych.
- orphan_file
-
Ta funkcja ext4 eliminuje potencjalne wąskie gardło w
zastosowaniach, w których następuje wiele
równoległych przycięć lub rozszerzeń
plików. Jest obsługiwana w jądrach Linux od wersji
5.15 oraz przez e2fsprogs od wersji 1.47.0.
- project
-
Ta cecha ext4 udostępnia obsługę
przydziałów dyskowych na projekt. Dzięki tej cesze, w
zamontowanym systemie plików pilnowany będzie identyfikator
projektu i-węzła.
- quota
-
Tworzy i-węzły przydziałów dyskowych
(i-węzeł #3 do przydziałów użytkownika
(userquota) i i-węzeł #4 do przydziałów grupy
(group quota)) i ustawia je w superbloku. Dzięki tej cesze, w
zamontowanym systemie plików przydziały będą
automatycznie włączone.
- Powoduje, że pliki przydziałów dyskowych (tj.
user.quota i group.quota, które istniały w zaprojektowanych
dawniej przydziałach dyskowych) będą ukrytymi
i-węzłami.
- resize_inode
-
Cecha systemu plików wskazuje, że zarezerwowano
przestrzeń, dzięki której tablica deskryptora grupy
bloków może być rozszerzona przy zmianie rozmiaru
zamontowanego systemu plików. Operacja zmiany rozmiaru
zamontowanego systemu plików jest dokonywana przez jądro, po
jej wyzwoleniu za pomocą resize2fs(8). Domyślnie,
mke2fs(8) postara się zarezerwować
wystarczająco dużo miejsca, aby system plików
mógł być zwiększony do rozmiaru 1024 razy
większego niż rozmiar początkowy. Można to
zmienić za pomocą rozszerzonej opcji resize.
- Cecha ta wymaga włączenia cechy sparse_super lub
sparse_super2.
- sparse_super
-
Cecha ustawiana na wszystkich współczesnych systemach
plików ext2, ext3 i ext4. Wskazuje, że kopie
deskryptorów grupy bloków i superbloku są
dostępne tylko w kilku grupach bloków, nie we
wszystkich.
- sparse_super2
-
Cecha ta wskazuje, że będą występowały co
najwyżej dwie kopie deskryptorów grupy bloków i
superbloku. Grupy bloków przechowujące kopię/kopie
deskryptorów grupy bloków i superbloku są
przechowywane w superbloku, ale zwykle jedna będzie przechowywana
na początku grupy bloków #1, a jeden w ostatniej grupie
bloków w systemie plików. Cechy te są generalnie
bardziej ekstremalną wersją sparse_super i są
zaprojektowane w celu udostępnienia znacznie większej
ciągłej przestrzeni dysku plikom z danymi.
- stable_inodes
-
Oznacza numery i-węzłów i UUID systemu plików
jako stabilne. resize2fs(8) nie pozwoli na zmniejszanie systemu
plików z tą cechą, a tune2fs(8) nie pozwoli na
zmienianie jego UUID. Cecha ta pozwala na korzystanie z wyspecjalizowanych
ustawień szyfrowania, używających numerów
i-węzłów oraz UUID-u. Proszę
zauważyć, że wciąż trzeba oddzielnie
włączyć cechę encrypt.
stable_inodes jest cechą typu „compat”, tak
więc starsze jądra dozwalają ją.
- uninit_bg
-
Ta cecha systemu plików ext4 wskazuje, że deskryptory grupy
bloków będą zabezpieczone sumami kontrolnymi,
dzięki czemu mke2fs(8) może bezpiecznie
utworzyć system plików bez inicjowania wszystkich grup
bloków. Jądro będzie utrzymywało
wartość nieużywanych i-węzłów
oraz zainicjuje bloki i tablicę i-węzłów w
sposób leniwy. Cecha ta przyspiesza również
sprawdzanie systemu plików za pomocą e2fsck(8) oraz
przyspiesza utworzenie systemu plików przy użyciu
mke2fs(8).
- verity
-
Włącza obsługę zabezpieczeń plików
verity. Pliki verity są tylko do odczytu, a ich dane są w
sposób przezroczysty weryfikowane wobec drzewa Merkle, ukrytego za
końcem pliku. Za pomocą skrótu korzenia drzewa
Merkle, plik verity może być w sposób efektywny
uwierzytelniony, niezależnie od jego rozmiaru.
- Cecha jest najbardziej przydatna do uwierzytelniania ważnych
plików tylko do odczytu w systemach plików do odczytu i
zapisu. Jeśli sam system plików jest tylko do odczytu, to
używanie dm-verity do uwierzytelnienia całego
urządzenia blokowego może zapewnić znacznie
wyższe bezpieczeństwo.
Niniejszy rozdział opisuje opcje montowania, które
są typowe dla ext2, ext3 i ext4. Oprócz tego można
używać ogólnych opcji montowania; więcej
szczegółów w podręczniku mount(8).
System plików „ext2” jest standardowym
linuksowym systemem plików. Od Linuksa 2.5.46, w przypadku
większości opcji, ustawienie domyślne zależy od
superbloku systemu plików. Ustawia się je za pomocą
tune2fs(8).
- acl|noacl
- Obsługa list kontroli dostępu (ang. Access Control Lists)
POSIX (lub nie). Więcej szczegółów w
podręczniku acl.
- bsddf|minixdf
- Ustawia zachowanie wywołania systemowego statfs. Zachowanie
minixdf zwraca w polu f_blocks całkowitą
liczbę bloków w systemie plików, natomiast zachowanie
bsddf (domyślne) odejmuje bloki narzutu, wykorzystywane
przez system plików ext2, które nie są
dostępne do przechowywania danych. Oto efekt:
% mount /k -o minixdf; df /k; umount /k
| System plików |
1K-bl |
użyte |
dostępne |
%uż |
zamont. na |
| /dev/sda6 |
2630655 |
86954 |
2412169 |
3% |
/k |
% mount /k -o bsddf; df /k; umount /k
| System plików |
1K-bl |
użyte |
dostępne |
%uż |
zamont. na |
| /dev/sda6 |
2543714 |
13 |
2412169 |
0% |
/k |
Proszę zauważyć, że ten
przykład ukazuje dodanie opcji wiersza poleceń do opcji
przekazanych w /etc/fstab.
- check=none
lub nocheck
- Przy zamontowaniu nie jest dokonywane sprawdzanie. Jest to zachowanie
domyślne. Jest szybkie. Rozsądnym jest wykonywać co
jakiś czas e2fsck(8) np. w czasie rozruchu systemu.
Zachowania inne niż domyślne nie są już
obsługiwane (opcje check=normal i check=strict
zostały usunięte). Proszę zauważyć,
że te opcje montowania nie muszą być
obsługiwane, jeśli do systemów pliku ext2 i ext3
użyto sterownika jądra ext4.
- debug
- Wypisuje informacje debugowania przy każdym montowaniu (oraz
ponownym montowaniu).
- errors={continue|remount-ro|panic}
- Określa zachowanie przy wystąpieniu błędu
(odpowiednio: ignoruje błędy, oznacza system jako
zawierający błędy i kontynuuje; montuje system
ponownie jako tylko do odczytu; prowadzi do paniki jądra i
zatrzymania systemu). Zachowanie domyślne jest ustawiane w
superbloku systemu plików i można je zmienić za
pomocą tune2fs(8).
- grpid|bsdgroups
i nogrpid|sysvgroups
- Opcje te określają jaki identyfikator grupy otrzymuje nowo
utworzony plik. Gdy ustawione jest grpid jest to identyfikator
grupy katalogu, w którym go utworzono. W przeciwnym razie (tak jest
domyślnie) otrzymuje identyfikator grupy systemu plików
(fsgid) bieżącego procesu, chyba że katalog ma
ustawiony bit uprawnień sgid — wówczas plik otrzymuje
identyfikator grupy katalogu, w którym go utworzono, a jeśli
nowy plik jest katalogiem, to dziedziczy również bit
sgid.
- grpquota|noquota|quota|usrquota
- Opcja montowania usrquota (równoważna: quota)
włącza obsługę przydziałów
dyskowych użytkownika w systemie plików. Opcja grpquota
włącza obsługę przydziałów grup.
Konieczne jest skorzystanie z narzędzi do przydziałów
dyskowych, aby faktycznie włączyć i
zarządzać przydziałami dyskowymi.
- nouid32
- Wyłącza 32-bitowe UID-y i GID-y. Umożliwia to
współdziałanie ze starszymi jądrami,
które zachowują wartości 16-bitowe i ich
oczekują.
- oldalloc lub
orlov
- Używa starego alokatora lub alokatora Orlov do nowych
i-węzłów. Domyślny jest Orlov.
- resgid=n i
resuid=n
- System plików ext2 rezerwuje określony procent
dostępnej przestrzeni (domyślnie 5%, zob. mke2fs(8) i
tune2fs(8)). Opcje te określają tego, kto może
korzystać z zarezerwowanych bloków (w przybliżeniu:
kto ma określony identyfikator użytkownika (resuid) lub
należy do podanej grupy (resgid)).
- sb=n
- Zamiast używania zwykłego superbloku, używa
alternatywnego superbloku podanego w n. Opcja ta może
się przydać, gdy podstawowy superblok został
uszkodzony. Położenie superbloku zapasowego zależy od
rozmiaru bloku systemu plików, liczby bloków na grupę
oraz cech takich jak sparse_super.
- Położenie dodatkowej kopii zapasowej superbloku może
być określone poprzez użycie programu
mke2fs(8) z opcją -n wypisującą
położenia superbloków, przy założeniu,
że programowi mke2fs(8) podano argumenty spójne z
charakterystyką danego systemu plików (np. rozmiarem bloku,
liczbą bloków na grupę, sparse_super
itd.)
- Numer bloku używa 1000 jednostek. Zatem aby użyć
logicznego bloku 32768 w systemie plików z 4000 bloków,
należy podać „sb=131072”.
- user_xattr|nouser_xattr
- Obsługuje (lub nie) atrybuty rozszerzone „user.”
System plików ext3 jest wersją systemu plików
ext2 poszerzoną o dziennikowanie. Obsługuje te same opcje co
ext2, a dodatkowo następujące:
- journal_dev=numer-urządzenia/journal_path=ścieżka
- Gdy zmianie ulegną numery główne/poboczne
urządzenia zewnętrznego dziennika, opcje te pozwalają
wskazać nowe położenie dziennika. Urządzenie
dziennika jest identyfikowane albo nowymi numerami: głównym
i pobocznym zakodowanymi w numerze-urządzenia, albo
ścieżką do urządzenia.
- norecovery/noload
- Nie ładuje dziennika przy montowaniu. Proszę
zauważyć, że jeśli system plików
został niepoprawnie odmontowany, to pominięcie odtworzenie
dziennika spowoduje istnienie niespójności w systemie
plików, co może doprowadzić do wielu
problemów.
- data={journal|ordered|writeback}
- Określa tryb dziennikowania plików z danymi. Metadane
są zawsze dziennikowane. Aby użyć trybu innego
niż ordered w głównym systemie plików,
należy przekazać tryb do jądra, jako parametr
rozruchowy np. rootflags=data=journal.
- journal
- Wszystkie dane są zatwierdzane do dziennika, przed zapisem do
głównego systemu plików.
- ordered
- Tryb domyślny. Wymuszane jest zapisywanie wszystkich danych
bezpośrednio do głównego systemu plików, zanim
ich metadane są zatwierdzane w dzienniku.
- writeback
- Kolejność danych nie jest zachowywana – dane
mogą być zapisywane do głównego systemu
plików po zatwierdzeniu ich metadanych do dziennika. Ma to
być opcja zapewniająca największą
przepustowość. Gwarantuje wewnętrzną
spójność systemu plików, ale może
spowodować pojawienie się starych plików po
załamaniu i odtworzeniu dziennika.
- data_err=ignore
- Gdy wystąpi błąd w buforze plików danych w
trybie ordered, ogranicza się jedynie do wypisania komunikatu o
błędzie.
- data_err=abort
- Gdy wystąpi błąd w buforze plików danych w
trybie ordered, przerywa dziennik.
- barrier=0 /
barrier=1
- Wyłącza / włącza używanie barier zapisu
w kodzie jbd (urządzenia blokowego dziennika). barrier=0
wyłącza je, a barrier=1 włącza (tak jest
domyślnie). Wymagany jest również stos
wejścia/wyjścia potrafiący obsługiwać
bariery, a jeśli jbd otrzyma błąd przy zapisie
barier, ponownie wyłączy bariery wypisując
ostrzeżenie. Bariery zapisu wymuszają poprawną
kolejność na dysku w przypadku zatwierdzeń dziennika,
co czyni dyskowe ulotne bufory zapisu bezpiecznymi do użycia, przy
pewnym uszczerbku wydajności. Jeśli dyski komputera
są w jakiś sposób zabezpieczone bateryjnie,
wyłączenie barier może bezpiecznie
zwiększyć wydajność.
- commit=liczba-sekund
- Uruchamia zatwierdzenie dziennika co liczbę-sekund.
Domyślna wartość to 5 sekund. Zero oznacza
wartość domyślną.
- user_xattr
- Włącza rozszerzone atrybuty użytkownika.
Więcej informacji w podręczniku xattr(7).
- jqfmt={vfsold|vfsv0|vfsv1}
- Oprócz starego systemu przydziałów dyskowych (jak w
ext2, jqfmt=vfsold, inaczej quota w wersji 1) ext3 obsługuje
również przydziały dziennikowane (quota w wersji 2).
jqfmt=vfsv0 lub jqfmt=vfsv1 włącza przydziały
dziennikowane. Mają one tę przewagę, że nawet
po załamaniu systemu nie ma konieczności sprawdzania
przydziałów. Gdy włączona jest cecha systemu
plików quota, to przydziały dziennikowane są
używane automatycznie, a ta opcja montowania jest ignorowana.
- usrjquota=aquota.user|grpjquota=aquota.group
- Przy przydziałach dziennikowanych (jqfmt=vfsv0 lub jqfmt=vfsv1),
wymagane są opcje montowania usrjquota=aquota.user i
grpjquota=aquota.group, wskazujące systemowi
przydziałów pliki bazy danych przydziałów,
które mają być używane. Gdy
włączona jest cecha systemu plików quota, to
przydziały dziennikowane są używane automatycznie, a
ta opcja montowania jest ignorowana.
System plików ext4 stanowi wyższy poziom
zaawansowania systemu plików ext3 i zawiera usprawnienia
skalowalności i niezawodności w celu obsługi
dużych systemów plików.
Opcje journal_dev, journal_path, norecovery, noload, data,
commit, orlov, oldalloc, [no]user_xattr,
[no]acl, bsddf, minixdf, debug, errors, data_err, grpid,
bsdgroups, nogrpid, sysvgroups, resgid, resuid, sb, quota, noquota,
nouid32, grpquota, usrquota, usrjquota, grpjquota i jqfmt
są wstecznie kompatybilne z ext3 i ext2.
- journal_checksum
| nojournal_checksum
- Opcja journal_checksum włącza sumy kontrolne transakcji
dziennika. Pozwoli to na wykrywanie błędów w
jądrze przez kod odzyskiwania w e2fsck i jądrze. Jest to
zmiana kompatybilna, która jest ignorowana przez starsze
jądra.
- journal_async_commit
- Bloki zatwierdzeń mogą być zapisywane na dysk bez
czekania na bloki deskryptora. Po włączeniu, starsze
jądra nie będą mogły zamontować
urządzenia. Powoduje wewnętrzne włączenie
opcji journal_checksum.
- barrier=0
/ barrier=1 / barrier / nobarrier
- Te opcje montowania mają taki sam skutek jak w ext3. W celu
zapewnienia spójności z innymi opcjami montowania ext4
dodano opcje montowania „barrier” i
„nobarrier”.
System plików ext4 domyślnie
włącza bariery zapisu.
- inode_readahead_blks=n
- Ten parametr dostosowania kontroluje maksymalną liczbę
bloków tablicy i-węzłów, którą
zbuforuje algorytm odczytania z wyprzedzeniem tablicy
i-węzłów ext4. Wartość musi być
potęgą dwójki. Domyślną
wartością są 32 bloki.
- stripe=n
- Liczba bloków systemu plików, których mballoc
spróbuje użyć do przydzielenia danych i
wyrównania. W przypadku systemów RAID5/6, powinna być
to liczba dysków z danych * rozmiar cząstki (ang. chunk)
RAID w blokach systemu plików.
- delalloc
- Opóźnia przydzielenie bloków do czasu zapisu.
- nodelalloc
- Wyłącza opóźnioną alokację.
Bloki są przydzielane, gdy dane są kopiowane z bufora
użytkownika do bufora strony.
- max_batch_time=mikrosekundy
- Maksymalny czas, jaki ext4 powinien czekać na dodatkowe operacje
systemu plików, w celu dokonania wspólnej, synchronicznej
operacji zapisu. Ze względu na to, że synchroniczne operacje
zapisu wymuszają zatwierdzenie, a później
odczekują na zakończenie wejścia/wyjścia, nie
jest to kosztowne, a może dać duży zysk
przepustowości, oczekuje się niewielki czas, aby
sprawdzić ewentualne inne transakcje mogące być
podczepione do zapisu synchronicznego. Algorytm został
zaprojektowany do automatycznego dostosowania się do
szybkości dysku, mierząc czas, jaki zajmuje
(przeciętnie) zakończenie zatwierdzenia transakcji.
Można to nazwać „czasem zatwierdzenia”.
Jeśli czas, jaki trwała transakcja był mniejszy od
czasu zatwierdzenia, ext4 będzie próbował
odczekać przez czas zatwierdzenia, aby sprawdzić czy inne
operacje dołączą do transakcji. Czas zatwierdzenia
jest ograniczony przez max_batch_time, które domyślnie
wynosi 15000 µs (15 ms). Tę
optymalizację można całkowicie
wyłączyć ustawiając max_batch_time na 0.
- min_batch_time=mikrosekundy
- Ten parametr ustawia czas zatwierdzenia (zgodnie z powyższym
opisem) na minimum min_batch_time. Domyślnie wynosi to zero
mikrosekund. Zwiększenie tego parametru może
zwiększyć przepustowość, przy
obciążeniach wielowątkowych, synchronicznych na
bardzo szybkich dyskach, kosztem zwiększonych
opóźnień.
- journal_ioprio=priorytet
- Priorytet wejścia/wyjścia (od 0 do 7, gdzie 0 jest
najwyższym priorytetem), który powinien być
użyty do operacji wejścia/wyjścia
przedkładanych przez kjournald2 podczas zatwierdzenia.
Domyślnie ustawi wartość 3, czyli nieco więcej
niż domyślny priorytet wejścia/wyjścia.
- abort
- Symuluje efekt wywołania ext4_abort() do celów debugowania.
Opcja używana zwykle przy ponownym montowaniu już
zamontowanego systemu plików.
- auto_da_alloc|noauto_da_alloc
- Wiele niechlujnych aplikacji nie używa fsync() przy
zastępowaniu istniejących plików wzorcami takimi jak
fd = open("foo.new")/write(fd,...)/close(fd)/
rename("foo.new", "foo")
albo nawet gorzej
fd = open("foo",
O_TRUNC)/write(fd,...)/close(fd).
Jeśli włączona jest opcja auto_da_alloc,
to ext4 wykryje wzorce „zastąp przez zmianę
nazwy” oraz „zastąp przez docięcie” i
wymusi sytuację, w której odroczone przydzielenia
bloków są przydzielane w ten sposób, że przy
następnym zatwierdzeniu dziennika, w domyślnym trybie
data=ordered, przed zatwierdzeniem operacji rename() wymuszany jest
zapis bloków danych nowego pliku na dysk. To daje zbliżony
poziom gwarancji jak ext3, i zapobiega problemowi „zerowej
długości”, jaki może przydarzyć
się przy załamaniu systemu, przed wymuszeniem
bloków odroczonej alokacji na dysk.
- noinit_itable
- Nie inicjuje niezainicjowanych bloków tablicy
i-węzłów w tle. Funkcja przydatna na płytach
instalacyjnych, dzięki czemu proces instalacji może
zakończyć się tak szybko jak to możliwe;
proces inicjalizacji tablicy i-węzłów będzie
wtedy odroczony do następnego zamontowania systemu
plików.
- init_itable=n
- Leniwy kod inicjacji i-węzłów odczeka n razy
liczbę milisekund, jaką zajęło wyzerowanie
poprzedniej grupy bloków w tabeli i-węzłów.
Minimalizowany jest w ten sposób wpływ na
wydajność systemu, jaki wywiera inicjowanie tabeli
i-węzłów systemu plików.
- discard/nodiscard
- Kontroluje, czy ext4 powinien wydawać polecenia discard/TRIM do
podległego urządzenia blokowego w momencie zwolnienia
bloków. Przydatne do urządzeń SSD oraz rozszerzalnych
LUN-ów używających plików z dziurami, lecz
domyślnie jest wyłączona, do momentu aż
zostanie wystarczająco dokładnie przetestowana.
- block_validity/noblock_validity
- Ta opcja włącza/wyłącza mechanizm jądra
służący do śledzenia bloków metadanych
systemu plików w wewnętrznych strukturach danych. Pozwala
m.in wieloblokowemu alokatorowi na szybką lokalizację
ekstentów, które mogą się
nakładać na bloki metadanych systemu plików. Opcja
jest przeznaczona do celów debugowania i jest domyślnie
wyłączona, ponieważ negatywnie wpływa na
wydajność.
- dioread_lock/dioread_nolock
- Kontroluje, czy ext4 powinien używać (czy nie) blokowania
odczytu DIO (bezpośredniego wejścia/wyjścia).
Jeśli podano opcję dioread_nolock, to ext4 przydzieli
niezainicjowany ekstent przed zapisem bufora i przekształci ekstent
w celu jego zainicjowania już po ukończeniu
wejścia/wyjścia. Takie podejście pozwala na
uniknięcie używania przez kod ext4 zatrzasków
i-węzłów, co zwiększa
skalowalność na nośnikach o dużej
szybkości. Nie współdziała jednak z
dziennikowaniem danych, opcja dioread_nolock zostanie wówczas
zignorowana, a jądro wypisze ostrzeżenie. Proszę
zauważyć, że kod dioread_nolock jest używany
wyłącznie do plików korzystających z
ekstentów. Ze względu na wszystkie opisane ograniczenia,
opcja jest domyślnie wyłączona (obowiązuje
dioread_lock).
- max_dir_size_kb=n
- Opcja ogranicza rozmiar katalogów, a każda próba
wykroczenia poza podany limit n (w kilobajtach) poskutkuje
błędem ENOSPC. Jest to przydatne w środowiskach o
ograniczonej pamięci operacyjnej, gdzie bardzo duże katalogi
mogą spowodować poważne problemy z
wydajnością, a nawet wywołać mechanizm
OOM-killera (przykładowo, gdy dostępne jest tylko
512 MiB pamięci, katalog o wielkości 176 MiB
może poważnie ograniczyć wydajność
systemu).
- i_version
- Włącza obsługę 64-bitowej wersji
i-węzłów. Opcja domyślnie
wyłączona.
- nombcache
- Opcja wyłącza korzystanie z mbcache w celu deduplikacji
atrybutów rozszerzonych. W systemach, gdzie atrybuty rozszerzone
są rzadko (lub nigdy) dzielone między plikami, użycie
bufora mbcache do deduplikacji niepotrzebnie zwiększa narzut
obliczeniowy.
- prjquota
- Opcja montowania prjquota włącza w systemie plików
obsługę przydziałów dyskowych na poziomie
projektu. Konieczne jest skorzystanie z narzędzi do
przydziałów dyskowych, aby faktycznie
włączyć i zarządzać przydziałami
dyskowymi. Niniejsza opcja montowania wymaga cechy project systemu
plików.
Systemy plików ext2, ext3 i ext4 obsługują
ustawianie następujących atrybutów plików w
systemach Linux, za pomocą narzędzia chattr(1):
a - tylko dopisywanie (ang. append)
A - bez aktualizacji czasu dostępu (atime)
d - bez zrzucania (ang. dump)
D - synchroniczna aktualizacja katalogu (ang.
directory)
i - niezmienialny (ang. immutable)
S - aktualizacje synchroniczne
u - odwracalne kasowanie (ang. undeletable)
Oprócz tego, systemy plików ext3 i ext4
obsługują także:
j - dziennikowanie danych (ang. journaling)
Ponadto, system plików ext4 obsługuje
również:
e - format ekstentów
Opis każdego z atrybutów znajduje się w
podręczniku systemowym chattr(1).
Niniejszy rozdział opisuje sterownik systemu plików
(np. ext2, ext3, ext4) oraz wersję jądra, w której
dodano obsługę danej cechy systemu plików.
Proszę zauważyć, że niekiedy cecha była
obecna we wcześniejszych wersjach jądra, ale znane były
poważne błędy. W niektórych przypadkach cecha
może być wciąż uważana za
eksperymentalną. Proszę również
zwrócić uwagę, że w niektórych
dystrybucjach przeniesiono obsługę cech do starszych
jąder; w szczególności wersje jądra w
niektórych „dystrybucjach biznesowych” mogą
być niezwykle mylące.
- filetype
- ext2, 2.2.0
- sparse_super
- ext2, 2.2.0
- large_file
- ext2, 2.2.0
- has_journal
- ext3, 2.4.15
- ext_attr
- ext2/ext3, 2.6.0
- dir_index
- ext3, 2.6.0
- resize_inode
- ext3, 2.6.10 (zmiana rozmiaru online)
- 64bit
- ext4, 2.6.28
- dir_nlink
- ext4, 2.6.28
- extent
- ext4, 2.6.28
- ext4, 2.6.28
- flex_bg
- ext4, 2.6.28
- huge_file
- ext4, 2.6.28
- meta_bg
- ext4, 2.6.28
- uninit_bg
- ext4, 2.6.28
- mmp
- ext4, 3.0
- bigalloc
- ext4, 3.2
- quota
- ext4, 3.6
- inline_data
- ext4, 3.8
- sparse_super2
- ext4, 3.16
- metadata_csum
- ext4, 3.18
- encrypt
- ext4, 4.1
- metadata_csum_seed
- ext4, 4.4
- project
- ext4, 4.5
- ea_inode
- ext4, 4.13
- large_dir
- ext4, 4.13
- casefold
- ext4, 5.2
- verity
- ext4, 5.4
- stable_inodes
- ext4, 5.5
Tłumaczenie niniejszej strony podręcznika:
Michał Kułach <michal.kulach@gmail.com>
Niniejsze tłumaczenie jest wolną
dokumentacją. Bliższe informacje o warunkach licencji
można uzyskać zapoznając się z
GNU General
Public License w wersji 3 lub nowszej. Nie przyjmuje się
ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika
prosimy zgłaszać na adres listy dyskusyjnej
manpages-pl-list@lists.sourceforge.net.