Scroll to navigation

EXT4(5) Dosya Biçimleri ve Dosya Dönüşümleri EXT4(5)

İSİM

ext2 - ikinci genişletilmiş dosya sistemi
ext3 - üçüncü genişletilmiş dosya sistemi
ext4 - dördüncü genişletilmiş dosya sistemi

AÇIKLAMA

İkinci, üçüncü ve dördüncü genişletilmiş dosya sistemleri veya yaygın olarak bilindikleri gibi ext2, ext3 ve ext4, geçmişte birçok Linux dağıtımı için öntanımlı dosya sistemi olan Linux dosya sistemleridir. Genişletilebilirlik ve geriye dönük uyumluluk için tasarlanmış genel amaçlı dosya sistemleridir. Özellikle, daha önce ext2 ve ext3 dosya sistemleriyle kullanılması amaçlanan dosya sistemleri, ext4 dosya sistemi sürücüsü kullanılarak bağlanabilir ve aslında birçok modern Linux dağıtımında, ext4 dosya sistemi sürücüsü, ext2 ve ext3 dosya sistemlerini bağlama isteklerini yerine getirmek üzere yapılandırılmıştır.

DOSYA SİSTEMİNİN ÖZELLİKLERİ

Ext2, ext3 veya ext4 için biçimlendirilmiş bir dosya sistemi, aşağıdaki dosya sistemi özellik bayraklarından uygun olanlarını etkinleştirilerek özel bir birleşim oluşturabilir. Bu özelliklerden bazıları, kullanılan Linux çekirdek sürümüne bağlı olarak ext2, ext3 ve ext4 dosya sistemi sürücülerinin tüm gerçeklenimlerinde desteklenmez. GNU/HURD veya FreeBSD gibi başka işletim sistemlerinin ext2 gerçeklenimlerinde ise yalnızca çok kısıtlayıcı bir dizi dosya sistemi özelliği desteklenmiş olabilir.

64bit
Dosya sisteminin 2^32 bloktan daha büyük olmasını sağlar. Bu özellik gerektiğinde otomatik olarak ayarlanır, ancak dosya sisteminin ilk oluşturulduğunda bu eşikten daha küçük olsa bile, 2^32 bloktan daha büyük olarak yeniden boyutlandırılması gerekiyorsa bu özelliğin açıkça belirtilmesi yararlı olabilir. Bazı eski çekirdeklerin ve e2fsprogs’un eski sürümlerinin, bu ext4 özelliği etkinleştirilmiş dosya sistemlerini desteklemeyeceği unutulmamalıdır.

Bu ext4 özelliği, kümelenmiş blok tahsisini mümkün kılar, böyle bir tahsis birimindeki blok sayısı ikinin üstellerinden biri (8, 16, vb.) olmalıdır. Böylece, geleneksel olarak blok ayırma bit eşlemi olarak bilinen eşlemdeki her bit, öntanımlı olarak 16 bloktan oluşan bir kümenin kullanımda olup olmadığını gösterir. Bu özellik, blok ayırma için harcanan zamanı azaltabilir ve özellikle büyük dosyalar için daha az saçılım sağlar. Küme boyutu, mke2fs(8) komutunun -C seçeneği kullanılarak belirtilebilir.

bigalloc özelliği hala geliştirme aşamasındadır ve çekirdeğiniz tarafından tam olarak desteklenmeyebilir veya çeşitli hataları olabilir. Ayrıntılar için: http://ext4.wiki.kernel.org/index.php/Bigalloc.
Gecikmeli tahsis ile çakışabilir (bkz: nodelalloc bağlama seçeneği).

Bu özellik extent özelliğinin etkin olmasını gerektirir.

Bu ext4 özelliği, harf büyüklüğüne duyarlılık (+F) bayrağının etkin olduğu dizinler için dosya sistemi düzeyinde karakter kodlama desteği sağlar. Bu özellik diskte ad koruyucudur, ancak uygulamaların dosya adına eşdeğer sürümde bir kodlama kullanarak dosya sisteminde bir dosya aramasına olanak tanır.

Büyük dizinlerde ad aramalarını hızlandırmak için aşlı b-ağaçları (b-tree) kullanılır. Bu özellik, ext3 ve ext4 dosya sistemleri tarafından desteklenir, ext2 dosya sistemleri tarafından yok sayılır.

Normalde, ext4, bir dosya düğümünün en fazla 65.000 sabit bağa sahip olmasına izin verir. Bu, dizinlerin yanı sıra normal dosyalar için de geçerlidir; bu, bir dizinde 64.998’den fazla alt dizin bulunamayacağı anlamına gelir (çünkü ’.’ ve ’..’ girişlerinin her biri ve dizinin üst dizindeki kendi dizin girdisi sabit bağ sayılır). Bu özellik, bir dizine giden sabit bağ sayısının azami sınır aşıldığında bilinmediğini belirtmek için ext4’ün bağ sayısı olarak 1’i kullanmasına neden olarak bu sınırı yükseltir.

Normalde, bir dosyanın genişletilmiş öznitelikleri ve ilişkili meta verileri, düğüme veya düğümün ilişkili genişletilmiş öznitelik bloğuna sığmalıdır. Bu özellik, her bir genişletilmiş öznitelik değerinin, gerekirse başka bir düğümün veri bloklarına yerleştirilmesine olanak vererek, dosya başına genişletilmiş özniteliklerin boyutu ve sayısı üzerindeki sınırı yükseltir.

Veri bloklarının ve dosya adlarının dosya sistemi düzeyinde şifrelenmesi için destek sağlar. Dosya düğümü meta verileri (zaman damgaları, dosya boyutu, kullanıcı/grup sahipliği vb.) şifrelenmez.

Bu özellik en çok, birden fazla kullanıcıya sahip dosya sistemlerinde veya tüm dosyaların şifrelenmemesinin gerektiği durumlarda kullanışlıdır. Çoğu kullanımda, özellikle tek kullanıcılı sistemlerde, dm-crypt kullanarak blok aygıtı katmanında şifreleme çok daha iyi güvenlik sağlayabilir.

Bu özellik, genişletilmiş özniteliklerin kullanılmasını sağlar. Bu özellik ext2, ext3 ve ext4 tarafından desteklenir.

Bu ext4 özelliği, ext2 ve ext3 dosya sistemleri tarafından kullanılan geleneksel dolaylı blok şemasından daha verimli bir veri yapısı olan genişletilmiş (extent) ağacı kullanarak, belirli bir düğüm için mantıksal blok numaralarının depolanacağı depolama aygıtındaki fiziksel bloklara eşlenmesine olanak sağlar. Genişletilmiş ağacın kullanılması, meta veri bloğunun ek yükünü azaltır, dosya sistemi başarımını iyileştirir ve dosya sisteminde e2fsck(8) çalıştırma gereksinimini azaltır.

Geriye uyumluluk adına extent ve extents her ikisi de bu özellik için geçerli ad olarak kabul edilmektedir.

Bu ext4 özelliği, nanosaniye zaman damgaları ve dosya oluşturma süresi gibi genişletilmiş meta veriler için, mevcut çekirdeğin bu kadar fazla alan ayırması gerekmese de, her dosya düğümünde belirli bir miktarda alan ayırır. Bu özellik olmadan, çekirdek, o an ihtiyaç duyulan özellikler için alan ayırır ve geri kalanı genişletilmiş öznitelikler tarafından tüketilebilir.

Bu özelliğin kullanışlı olabilmesi için dosya düğümü boyutunun en azından 256 bayt veya üstü olması gerekir.

Bu özellik dosya türü bilgilerinin dizin girdilerinde saklanmasını sağlar. Bu özellik ext2, ext3 ve ext4 tarafından desteklenir.

Bu ext4 özelliği, her bloğun grup meta verilerinin (tahsis bit eşlemleri ve dosya düğümü tabloları) depolama ortamında herhangi bir yere yerleştirilmesine olanak sağlar. Ek olarak, mke2fs(8), her flex_bg grubunun ilk blok grubundan başlayarak her bloğun grup meta verilerini bir arada yerleştirecektir. flex_bg grubunun boyutu mke2fs(8) komutunun -G seçeneği kullanılarak belirlenebilir.

Temiz olmayan sistem kapanmalarında bile dosya sistemi tutarlılığını sağlamak için bir günlük oluşturur. Bu özelliği etkinleştirmek, mke2fs(8) veya tune2fs(8) ile -j seçeneğini kullanmaya eşdeğerdir. Bu özellik ext3 ve ext4 tarafından desteklenir, ext2 dosya sistemi sürücüsü tarafından yok sayılır.

Bu ext4 özelliği, dosya boyutunun 2 terabayttan büyük olmasına izin verir.

Verilerin dosya düğümünde ve genişletilmiş öznitelik alanında depolanmasına izin verir.

Bu özellik, harici günlük aygıtında bulunan süper blokta etkinleştirilir. Harici günlüğün blok boyutu, onu kullanan dosya sistemi ile aynı olmalıdır.

Harici günlük aygıtı, mke2fs(8) veya tune2fs(8) komutuna -j device=harici-aygıt seçeneği belirtilerek dosya sistemi tarafından kullanılabilir.

Bu özellik, dizinlerin azami boyutunu yükselterek dizin başına dosya sayısı sınırını ve aşlı b-ağacı dizinleri için (bkz: dir_index), dizin girdilerini saklamakta kullanılan aşlı b-ağacının azami boyutunu artırır.

Bu özelliğin bayrağı, 2 gigabayttan daha büyük bir dosya oluşturulduğunda günümüz çekirdekleri tarafından otomatik olarak tanımlanır. Çok eski çekirdekler büyük dosyaları işleyemezdi, bu nedenle bu özelliğin bayrağı, bu çekirdeklerin anlayamadıkları dosya sistemlerini bağlamalarını engellemek için kullanılmaktadır.

Bu ext4 özelliği, meta veri sağlama toplamını etkinleştirir. Bu özellik, tüm dosya sistemi meta verilerinin (süper blok, grup tanımlayıcı bloklar, dosya düğüm ve blok bit eşlemleri, dizinler ve genişletilmiş ağaç blokları) sağlama toplamlarını saklar. Meta veri blokları için kullanılan sağlama toplamı algoritması, uninit_bg özellikli grup tanımlayıcıları için kullanılandan farklıdır. Bu iki özellik uyumsuzdur ve uninit_bg yerine tercihli olarak metadata_csum kullanılır.

Bu özellik, dosya sisteminin meta veri sağlama toplamı tohumunu süper blokta saklamasına izin verir; bu, yöneticinin, dosya sistemi bağlıyken metadata_csum özelliğini kullanarak bir dosya sisteminin UUID’sini değiştirmesine olanak tanır.

Bu ext4 özelliği, blok grubu tanıtıcılarının boyutundaki büyüme için açıkça yer ayırmaya gerek kalmadan dosya sistemlerinin çevrimiçi olarak yeniden boyutlandırılmasına olanak tanır. Bu şema ayrıca 2^32 bloktan daha büyük dosya sistemlerini yeniden boyutlandırmak için de kullanılır. Yeni bir dosya sistemi oluşturulurken bu özelliğin atanması önerilmez, çünkü blok grubu tanıtıcılarının bu yöntemle depolanması, dosya sistemini bağlamak için gereken süreyi yavaşlatacaktır. Daha yeni çekirdekler, çevrimiçi yeniden boyutlandırma yaparken yeniden boyutlandırma düğümünde ayrılmış daha fazla alan yoksa gereken boyutu ayarlamak için bu özelliği otomatik olarak etkinleştirebilir.

Bu ext4 özelliği, çoklu bağlama koruması sağlar. mmp, dosya sisteminin birden fazla bağlanmadan korunmasına yardımcı olur. Paylaşılan depolama ortamlarında kullanışlıdır.

Bu ext4 özelliği proje kota desteği sağlar. Bu özellik ile dosya sistemi bağlandığında dosya düğümünün proje kimliği yönetilir.

Kota düğümleri oluşturur (3. dosya düğümü: kullanıcı kotası, 4. dosya düğümü: grup kotası) ve süperblokta bunları tanımlar. Bu özellik ile dosya sistemi bağlandığında kotalar otomatik olarak etkinleştirilir.

Kota dosyalarının (yani, eski kota tasarımında bulunan user.quota ve group.quota dosyalarının) dosya düğümlerinin gizlenmesine neden olur.

Bu dosya sistemi özelliği, bağlı bir dosya sistemini yeniden boyutlandırılırken blok grubu tanım tablosunun genişletilebilmesi için gerekecek yedek alanın ayrıldığını gösterir. Çevrimiçi yeniden boyutlandırma işlemi, resize2fs(8) tarafından tetiklenir ve çekirdek tarafından gerçekleştirilir. Öntanımlı olarak mke2fs(8), dosya sisteminin başlangıç boyutunun 1024 katına kadar büyüyebileceği alanı ayırmaya çalışır. Bu, genişletilmiş yeniden boyutlandırma seçeneği kullanılarak değiştirilebilir.

Bu özellik, aşağıdaki sparse_super veya sparse_super2 özelliğinin etkin olmasını gerektirir.

Bu dosya sistemi özelliği, günümüzde ext2, ext3 ve ext4 dosya sistemlerinin tamamında etkindir. Süperblok ve blok grubu tanıtıcılarının yedek kopyalarının bütün blok gruplarında değil, yalnızca birkaçında mevcut olduğunu gösterir.

Bu özellik, süperblok ve blok grubu tanıtıcılarının en fazla iki yedeği olacağını gösterir. Yedek süperblok(lar)ı ve blok grubu tanıtıcı(lar)ını depolamak için kullanılan blok grupları süperblokta saklanır, ancak genelde bir süperblok dosya sisteminin 1. blok grubunun başlangıcında saklanırken diğeri ise dosya sisteminin son blok grubunda yer alır. Bu özellik aslında sparse_super’in daha uç bir çeşidi olup veri dosyaları için kullanılan bitişik blokların diskin daha büyük bir yüzdesini kaplamasına izin verecek şekilde tasarlanmıştır.

Dosya sisteminin dosya düğümü numaralarını ve UUID’yi kararlı olarak imler. Bu özellikli bir dosya sisteminin daraltılmasına resize2fs(8) ve UUID’sinin değiştirilmesine de tune2fs(8) izin vermez. Bu özellik, dosya düğüm numaralarını ve UUID’yi kullanan özel şifreleme özelliklerinin kullanılmasına izin verir. Şifreleme özelliğinin yine de ayrıca etkinleştirilmesi gerektiği unutulmamalıdır. stable_inodes eski çekirdeklerde kullanılabilen geriye uyumlu bir özelliktir.

Bu ext4 dosya sistemi özelliği, blok grubu tanıtıcılarının sağlama toplamları kullanılarak korunacağını ve böylece mke2fs(8)’nin tüm blok gruplarını ilklendirmeden bir dosya sisteminin oluşturmasını güvenli hale getireceğini belirtir. Çekirdek, kullanılmayan düğümleri için bu sağlama toplamlarını tutacak ve düğüm tablolarını ve bloklarını yavaş yavaş ilkendirecektir. Bu özellik, e2fsck(8) kullanılarak dosya sisteminin denetlenme süresini hızlandırır ve ayrıca dosya sistemini oluştururken mke2fs(8) için gereken süreyi de kısaltır.

Doğruluk korumalı dosyalar için desteği etkinleştirir. Doğruluk korumalı dosyalar salt okunurdur ve verileri, dosyanın sonunda gizlenmiş bir Merkle ağacı kullanılarak şeffaf bir şekilde doğrulanır. Merkle ağacının kök aşı kullanılarak, bir doğruluk korumalı dosyanın kimliği, dosyanın boyutundan bağımsız olarak verimli bir şekilde doğrulanabilir.

Bu özellik, oku-yaz dosya sistemlerinde önemli salt okunur dosyaların kimliğini doğrulamak için çok kullanışlıdır. Dosya sisteminin kendisi salt okunursa, tüm blok aygıtının kimliğini doğrulamak için dm-verity kullanmak çok daha iyi güvenlik sağlayabilir.

BAĞLAMA SEÇENEKLERİ

Bu bölümde, ext2, ext3 ve ext4’e özgü bağlama seçenekleri açıklanmıştır. Diğer genel bağlama seçenekleri de kullanılabilir; ayrıntılar için bkz: mount(8)

Ext2 için bağlama seçenekleri

’ext2’ dosya sistemi standart Linux dosya sistemidir. Linux çekirdeğinin 2.5.46 sürümünden beri, çoğu bağlama seçeneği için öntanımlılar dosya sisteminin süper bloğu tarafından belirlenir. Bunlar tune2fs(8) ile tanımlanabilir.

POSIX Erişim Denetim Listeleri desteklenir|desteklenmez. Bkz: acl(5) kılavuz sayfası.

statfs(2) sistem çağrısının davranışını belirler. minixdf davranışı, dosya sisteminin toplam blok sayısının statfs yapısının f_blocks alanında döndürülmesi, bsddf davranışı ise (öntanımlıdır), ext2 dosya sistemi tarafından dosya depolama için kullanılamayan ek blokların döndürülen toplam blok sayısından çıkarılmasıdır. Örnek:

% mount /k -o minixdf; df /k; umount /k
Dosyasistemi   1K-blok     Dolu       Boş   Kull%    Bağlanılan yer
/dev/sda6      2630655    86954   2412169      3%     /k
% mount /k -o bsddf; df /k; umount /k
Dosyasistemi   1K-blok     Dolu       Boş   Kull%    Bağlanılan yer
/dev/sda6      2543714       13   2412169      0%     /k

(Bu örneğin, /etc/fstab içinde verilen seçeneklere komut satırı seçeneklerinin eklenebileceğini gösterdiğine dikkat edilmelidir)

Bağlama sırasında denetim yapılmaz. Bu öntanımlı ve hızlıdır. Örneğin sistem önyüklemesi sırasında veya ertesinde bir e2fsck(8) çağrısı akıllıca olur. Öntanımlı olmayan davranış desteklenmemektedir (check=normal ve check=strict seçenekleri kaldırıldı). Ext2 ve ext3 dosya sistemleri için ext4 çekirdek sürücüsü kullanılıyorsa, bu bağlama seçeneklerinin desteklenmesi gerekmediği unutulmamaldır.

Her bağlama veya yeniden bağlama sırasında hata ayıklama bilgileri basılır.

Bir hata saptandığında davranışı belirler.
continue: Hatalar yok sayılır ve dosya sistemi hatalı olarak imlenir.
remount-ro: Dosya sistemi yeniden salt okunur olarak bağlanır.
panic: Panikleyip sistem kapatılır.

Öntanımlı davranış dosya sisteminin süper bloğuna yazılır ve tune2fs(8) kullanılarak değiştirilebilir.

Bu seçenekler, yeni oluşturulan bir dosyanın hangi grup kimliğini alacağını tanımlar. grpid seçeneğiyle oluşturulduğu üst dizinin grup kimliğini alır; aksi halde (öntanımlı) bsdgroups ile üst dizin setgid bitlerine sahip olmadığı sürece mevcut sürecin dosya sistemi grup kimliğini alır, üst dizin setgid bitlerine sahipse üst dizinin grup kimliğini alır ve ayrıca kendisi dizin ise üst dizinin setgid bitlerini de alır.

usrquota (quota ile aynıdır) bağlama seçeneği dosya sisteminde kullanıcı kotası desteğini etkin kılar. grpquota bağlama seçeneği ise grup kotası desteğini etkin kılar. Kota sistemini gerçekten etkin kılmak ve yönetmek için kota araçları gerekir.

32 bitlik kullanıcı ve grup kimliklerini devre dışı bırakır. Bu, yalnızca 16 bitlik değerleri saklayan ve bekleyen eski çekirdeklerle birlikte çalışabilirlik içindir.

Yeni dosya düğümleri için eski yer ayırıcı veya Orlov yer ayırıcı kullanılır. Orlov öntanımıdır.

Ext2 dosya sistemi boş alanın belli bir miktarını yedek olarak ayırır (öntanımlı olarak %5, bkz: mke2fs(8) ve tune2fs(8)). Bu seçenekler yedek blokları kimin kullanacağını belirler. (Kabaca: Belirtilen kullanıcı kimlik kime aitse o veya belirtilen grup kimlik kimlere aitse onlar.)

Normal süper blok yerine numarası N olan süper blok kullanılır. Bu seçenek normalde birincil süper blok bozulduğunda kullanılır. Yedek süper blokların yerleri dosya sisteminin blok boyuna, her gruptaki blok sayısına ve sparse_super gibi özelliklere bağlıdır.

mke2fs(8)’in dosya sistemini tutarlı değerlerle (örneğin, blok boyutu, gruptaki blok sayısı, sparse_super, vb.) yapılandırıldığı varsayımıyla, süper blokların yerleri mke2fs(8) komutunun -n seçeneği ile çıktılanarak ek yedek süper blokların yerleri saptanabilir.

Buradaki bloklar 1 kilobaytlık birimlerden oluşur. Yani, 4 kilobaytlık bloklardan 32768 mantıksal blok ile oluşturulmuş bir dosya sisteminde "sb=131072" olur (yedek süper bloğun dosya sisteminin son bloğuna yerleştirilmesi nedeniyle).

"user." ile başlayan gelişmiş öznitelikler desteklenir|desteklenmez.

Ext3 için bağlama seçenekleri

Ext3 dosya sistemi, günlük kayıtlı ext2 dosya sistemidir. Ext2 ile aynı seçenekleri ve ek olarak aşağıdakileri destekler:

Harici günlükleme aygıtının büyük/küçük aygıt numaraları değiştiğinde, bu seçenekler kullanıcının yeni günlük konumunu belirlemesine olanak tanır. Günlük aygıtı, aygıtno ile kodlanmış yeni büyük/küçük aygıt numaraları aracılığıyla veya aygıta giden bir yol aracılığıyla tanımlanır.

Günlüğü dosya sistemini bağlarken yüklemez. Dosya sistemi temiz şekilde ayrılmamışsa, günlüğün geri yüklenmesinin atlanırsa, bunun dosya sisteminde bir takım sorunlara yol açabilecek tutarsızlıklara sebep olabileceği unutulmamalıdır.

Dosya verileri için günlükleme kipini belirler. Meta veriler daima günlüğe kaydedilir. Kök dosya sisteminde ordered dışındaki kipleri kullanmak için, kip önyükleme girdisi olarak çekirdeğe aktarılabilir (örn, rootflags=data=journal).

Tüm veriler, ana dosya sistemine yazılmadan önce günlüğe kaydedilir.

Bu öntanımlı kiptir. Tüm veriler, meta veriler günlüğe kaydedilmeden önce doğrudan ana dosya sistemine yazılmaya çalışılır.

Veri sıralaması korunmaz – veriler, meta veriler günlüğe işlendikten sonra ana dosya sistemine yazılabilir. Bunun en verimli çıktılama seçeneği olduğuna dair bir rivayet vardır. Dahili dosya sistemi bütünlüğünü garanti eder, ancak bir çökme ve günlüklü kurtarma sonrasında eski verilerin dosyalarda görünmesi olasılığı da vardır.

ordered kipte bir dosyanın veri tamponunda bir hata oluşursa, sadece hata iletisini basar.

ordered kipte bir dosyanın veri tamponunda bir hata oluşursa, günlüklemeden çıkılır.

Bu, jbd kodunda yazma engellerinin kullanımını devre dışı bırakır|etkinleştirir. barrier=0 devre dışı bırakır, barrier=1 etkinleştirilir (öntanımlıdır). Bu aynı zamanda engelleri destekleyebilen bir G/Ç yığıtı da gerektirir ve jbd bir engel yazılırken bir hata alırsa, bir uyarı ile engelleri tekrar devre dışı bırakır. Yazma engelleri, günlük teslimatların disk üzerinde uygun şekilde sıralanmasını zorlayarak, geçici disk yazma önbelleklerinin kullanımını bir miktar başarım düşüşüyle güvenli hale getirir. Diskleriniz batarya ile besleniyorsa, engelleri devre dışı bırakmak başarımı güvenli bir şekilde artırabilir.

Günlükleme SÜRE saniyede bir yapılır. 5 saniye öntanımlıdır. 0 değeri öntanımlı değerin geçerli olacağı anlamına gelir.

Gelişmiş kullanıcı öznitelikleri etkin olur. Bkz: attr(5)

Eski kota sisteminin (ext2’deki jqfmt=vfsold, yani kotanın 1. sürümünün) yanı sıra ext3 günlüklü kotaları da (kotanın 2. sürümü) desteklenir. jqfmt=vfsv0 veya jqfmt=vfsv1 seçeneği günlüklü kotaları etkinleştirir. Günlüklü kotaların getirisi, bir çökmeden sonra bile kota denetiminin gerekmemesidir. Kotalı dosya sistemi özelliği etkinleştirildiğinde, günlüklü kotalar otomatik olarak kullanılır ve bu bağlama seçeneği yok sayılır.

Günlüklü kotalar için (jqfmt=vfsv0 veya jqfmt=vfsv1), kota sistemine kullanılacak kota veritabanı dosyalarının hangileri olacağı usrjquota=aquota.user ve grpjquota=aquota.group bağlama seçenekleri ile belirtilir.

Ext4 için bağlama seçenekleri

Ext4 dosya sistemi, büyük dosya sistemini desteklemek için ölçeklenebilirlik ve güvenilirlik geliştirmelerini içeren, ext3 dosya sisteminin genişletilmiş üst sürümüdür.

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 ve jqfmt seçenekleri ext3 veya ext2 ile geriye yönelik uyumludur.

journal_checksum, günlükleme işlemlerinde sağlama toplamlarına olanak tanır. Bu, e2fsck(8)’da kurtarma koduna izin verir ve çekirdeğin, çekirdekteki bozulmayı algılamasını sağlar. Geriye uyumlu bir değişikliktir ve eski çekirdekler tarafından yok sayılır.

Teslimat bloğu, tanımlayıcı bloklar beklenmeden diske yazılabilir. Etkinleştirilirse, eski çekirdekler aygıtı bağlayamaz. Bu, dahili olarak journal_checksum seçeneğini etkinleştirir.

Bu bağlama seçenekleri, ext3’teki seçenek ile aynı etkiye sahiptir. Diğer ext4 bağlama seçenekleriyle tutarlı olması için barrier ve nobarrier seçenekleri eklenmiştir.

Ext4 dosya sisteminde engeller öntanımlı olarak etkindir.

Ext4’ün dosya düğümü tablosunu ileri doğru okuma algoritmasının tampon önbelleğine önceden okuyacağı azami dosya düğümü tablosu bloklarının sayısını belirler. Değer 2’nin üsteli olmalıdır. Öntanımlı değer 32 bloktur.

mballoc’un ayırma boyutu ve hizalama için kullanmaya çalışacağı dosya sistemi bloklarının sayısı. RAID 5/6 sistemleri için, (veri disklerinin sayısı) * (blok sayısı olarak RAID bölütünün boyu) olmalıdır.

Blok tahsisini yazma zamanına kadar erteler.

Gecikmeli tahsis devre dışı bırakılır. Veri kullanıcı önbelleğinden sayfa önbelleğine kopyalanınca, bloklar tahsis edilir.

Ek dosya sistemi işlemlerinin eşzamanlı bir yazma işlemiyle birlikte toplu hale getirilmesi için ext4’ün beklemesi gereken mikrosaniye cinsinden azami süre. Eşzamanlı (sırasını bekleyen) bir yazma işlemi bir teslimatı ve ardından girdi/çıktının tamamlanmasını beklemeyi gerektirdiğinden, çok maliyetli olmayacağı ve büyük bir verim kazancı sağlayabileceği için, eşzamanlı yazma işlemini üstlenebilecek başka bir aktarım olup olmadığını görmek için kısa bir süre bekletilir. Kullanılan algoritma, bir aktarımın teslimatı için geçen süreyi (ortalama olarak) ölçerek diskin hızını otomatik olarak ayarlamak üzere tasarlanmıştır. Bu zaman, "teslimat zamanı" olarak adlandırılır. Aktarım süresi, teslimat süresinden azsa, ext4, işleme başka aktarımların katılıp katılmayacağını görmek için teslimat süresi tamamlanana dek uyumayı dener. max_batch_time teslimat süresini öntanımlı olarak 15000 µs (15 ms) ile sınırlandırılır. Bu en iyileme, max_batch_time seçeneğine 0 atanarak tamamen kapatılabilir.

Bu seçenek (yukarıda açıklanan) teslimat süresinin asgarisini belirler. 0 (sıfır) mairosaniye öntanımlıdır. Bu değerin arttırılması çok evreliliğin, çok hızlı disklerdeki eşzamanlı iş yüklerinin verimini artan gecikme pahasına arttırabilir.

Bir teslimat sırasında kjournald2 tarafından gönderilen G/Ç işlemleri için kullanılan G/Ç önceliği (0 ila 7 arası, 0 ÖNCELİK en yüksek önceliktir). Öntanımlı değer 3 olup öntanımlı G/Ç önceliğinden biraz daha yüksektir.

Hata ayıklama amacıyla ext4_abort() çağrısını taklit eder. Bu normalde, zaten bağlı bir dosya sistemini yeniden bağlarken kullanlılır.

Birçok bozuk uygulama, mevcut dosyaları

fd = open("foo.new")/write(fd,...)/close(fd)/ rename("foo.new", "foo")

veya daha kötüsü

fd = open("foo", O_TRUNC)/write(fd,...)/close(fd).

gibi kalıplarla değiştirirken fsync(2) çağrısını kullanmaz. auto_da_alloc etkinse, ext4, yeniden-adlandırarak-değiştir ve kırparak-değiştir kalıplarını algılayacak ve gecikmeli tahsis bloklarının tahsisini zorlayacaktır, öyle ki bir sonraki günlük teslimatında, öntanımlı data=ordered kipinde, yeni dosyanın veri bloklarının rename(2) işleminden önce diske teslimatı zorlanacaktır. Bu, ext3 ile kabaca aynı seviyede garanti sağlar ve gecikmeli tahsis blokları diske zorlanmadan önce sistem çöktüğünde ortya çıkabilecek "sıfır uzunluk" sorununu önler.

İlklendirilmemiş dosya düğümü tablosu blokları artalanda ilklendirilmez. Bu özellik, kurulum işleminin olabildiğince çabuk tamamlanabilmesi için kurulum CD’leri tarafından kullanılabilir; dosya düğümü tablosunun ilklendirilmesi, dosya sisteminin bir sonraki bağlanmasına kadar ertelenir.

Tembel dosya düğümü tablosu ilklendirme kodu, önceki blok grubunun dosya düğümü tablosunu sıfırlamak için geçen milisaniye cinsinden sürenin N katı bekler. Bu, dosya sisteminin dosya düğümü tablosu ilklendirilirken ortalama sistem yükünü en aza indirir.

Bloklar serbest bırakılırken ext4’ün ilgili blok aygıtına devre-dışı-bırak/kırparak-değiştir komutları verip vermeyeceğini belirler. Bu, SSD aygıtları ve seyrek/ince olarak sağlanan LUN’lar için kullanışlıdır, ancak yeterli sınama yapılıncaya kadar öntanımlı olarak etkin değildir.

Bu seçenek, dahili veri yapıları içinde yer alan dosya sistemi meta veri bloklarını izlemek için çekirdek içi oluşumu etkinleştirir veya devre dışı bırakır. Bu, çoklu blok ayırıcının ve diğer yordamların, dosya sistemi meta veri bloklarıyla örtüşebilecek genişletilmiş ağaçları hızlı bir şekilde bulmasını sağlar. Bu seçenek hata ayıklama amaçlıdır ve başarımı olumsuz etkilediği için öntanımlı olarak etkin değildir.

Ext4’ün doğrudan G/Ç okuma kilidini kullanıp kullanmayacağını belirler. dioread_nolock seçeneği belirtilirse, ext4, tampona yazmadan önce ilklendirilmemiş genişletilmiş ağaca yer tahsis eder ve G/Ç tamamlandıktan sonra genişletilmiş ağacı ilklendirilmiş ağaca dönüştürür. Bu yaklaşım, ext4 kodunun yüksek hızlı depolamalarda ölçeklenebilirliği artıran dosya düğümü mutekslerini kullanmaktan kaçınmasını sağlar. Ancak bu, veri günlükleme ile çalışmaz ve çekirdek uyarısıyla dioread_nolock seçeneği yok sayılır. dioread_nolock seçeneğinin yalnızca genişletilmiş ağaç tabanlı dosyalar için kullanıldığı unutulmamalıdır. Bu seçenekler içerdikleri kısıtlamalar nedeniyle öntanımlı olarak etkin değildir. (örneğin, dioread_lock).

Dizin boyutunu sınırlar, böylece N kilobaytlık sınırın ötesine genişletme girişimi ENOSPC hatasına neden olur. Bu, çok büyük bir dizinin ciddi başarım kaybına neden olabileceği ve hatta "yetersiz bellek katili"ni tetikleyebileceği, belleğin kısıtlı olduğu ortamlarda kullanışlıdır. (Örneğin, yalnızca 512 MB kullanılabilir bellek varsa, 176 MB’lık bir dizin, sistemde ciddi kramplara yol açabilir.)

64 bitlik dosya düğümü sürümü desteğini etkinleştirir; öntanımlı olarak etkin değildir.

Bu seçenek, genişletilmiş öznitelik tekilleştirmesi için mbcache kullanımını devre dışı bırakır. Genişletilmiş özniteliklerin dosyalar arasında nadiren paylaşıldığı veya hiç paylaşılmadığı sistemlerde, veri tekilleştirme için mbcache kullanımı hesaplama yükünü gereksiz yere arttırır.

Dosya sisteminde proje kotası desteğini etkinleştirir. Kota sistemini gerçekten etkinleştirmek ve yönetmek için kota araçlarına ihtiyacınız vardır. Bu bağlama seçeneği, project dosya sistemi özelliğinin etkin olmasını gerektirir.

fsync(2) gecikmesini iyileştirmek için hızlı gönderi günlük kaydı özelliğini etkinleştirir.

DOSYA ÖZNİTELİKLERİ

ext2, ext3 ve ext4 dosya sistemleri, Linux sistemlerinde chattr(1) komutu ile aşağıdaki dosya özniteliklerini destekler:

a - yalnızca sona ekle
A - erişim zamanı güncellenmez
d - dosya dump uygulamasından etkilenmez
D - dizin güncellemelerini eşzamanlı olur
i - dosya değiştirilemez
S - synchronous updates
u - dosya silinince kurtarılabilir

Ek olarak, ext3 ve ext4 dosya sistemleri şu seçeneği destekler::

j - dosya sistemi günlüklemesi yapılır

Son olarak, ext4 dosya sistemi şu seçeneği destekler:

e - blokları eşlemek için uzantılar kullanılır

Bu dosya özniteliklerinin açıklamaları chattr(1) kılavuz sayfasında bulunabilir.

ÇEKİRDEK DESTEĞİ

Bu bölümde, belirli bir dosya sistemi özelliğinin desteklendiği dosya sistemi sürücüsü (örneğin, ext2, ext3, ext4) ve desteklendiği çekirdek sürümü listelenmiştir. Bazı durumlarda özelliğin erken çekirdek sürümlerinde de mevcut olduğu, ancak bilinen ciddi yazılım hatalarının da bulunduğu unutulmamalıdır. Diğer durumlarda, özellik hala deneysel durumda kabul edilebilir. Son olarak, bazı dağıtımların desteklenmiş özelliklere sahip eski çekirdekler içerebileceği unutulmamalıdır; özellikle belirli "enterprise" dağıtımlardaki çekirdek sürümleri son derece yanıltıcı olabilir.

Özellik Dosya Sistemi Çekirdek Sürümü
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 (çevrimiçi yeniden boyutlandırma)
64bit ext4 2.6.28
dir_nlink ext4 2.6.28
extent ext4 2.6.28
extra_isize 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
fast_commit ext4 5.10

İLGİLİ BELGELER

mke2fs(8), mke2fs.conf(5), e2fsck(8), dumpe2fs(8), tune2fs(8) debugfs(8), mount(8), chattr(1).

TELİF HAKKI VE LİSANS

Telif hakkı ©1993, 1994, 1995 Theodore Ts’o
Lisans GPLv2+: GNU GPL sürüm 2 veya üstü <http://gnu.org/licenses/gpl.html> Bu bir özgür yazılımdır: Yazılımı değiştirmek ve dağıtmakta özgürsünüz. Yasaların izin verdiği ölçüde HİÇBİR GARANTİ YOKTUR.

ÇEVİREN

© 2022 Nilgün Belma Bugüner
Bu çeviri özgür yazılımdır: Yasaların izin verdiği ölçüde HİÇBİR GARANTİ YOKTUR.
Lütfen, çeviri ile ilgili bildirimde bulunmak veya çeviri yapmak için https://github.com/TLBP/manpages-tr/issues adresinde "New Issue" düğmesine tıklayıp yeni bir konu açınız ve isteğinizi belirtiniz.

Aralık 2021 E2fsprogs 1.46.5