EXT3(5) فایلهای پیکربندی EXT3(5)

ext3 - سیستمفایل گسترشیافته سوم لینوکس با قابلیت ژورنالینگ (third extended file system)

سیستمفایل ext3 نگارش ژورنالدار سیستمفایل ext2 است که پایداری بالایی را در برابر قطع ناگهانی برق فراهم میسازد.

سیستم‌فایل‌های گسترش‌یافته دوم، سوم و چهارم که معمولاً با نام‌های ext2، ext3 و ext4 شناخته می‌شوند، سیستم‌فایل‌های لینوکسی هستند که از گذشته سیستم‌فایل پیش‌فرض بسیاری از توزیع‌های لینوکس بوده‌اند. این سیستم‌فایل‌ها چندمنظوره بوده و با هدف توسعه‌پذیری و سازگاری با نسخه‌های پیشین طراحی شده‌اند. به‌ویژه، سیستم‌فایل‌هایی که قبلاً برای استفاده با سیستم‌فایل‌های ext2 و ext3 در نظر گرفته شده بودند را می‌توان با استفاده از درایور سیستم‌فایل ext4 سوار (mount) کرد؛ در حقیقت در بسیاری از توزیع‌های مدرن لینوکس، درایور سیستم‌فایل ext4 به گونه‌ای پیکربندی شده است که درخواست‌های سوار کردن سیستم‌فایل‌های ext2 و ext3 را نیز مدیریت کند.

یک سیستم‌فایل قالب‌بندی‌شده برای ext2، ext3 یا ext4 می‌تواند مجموعه‌ای از پرچم‌های ویژگی‌های سیستم‌فایل زیر را فعال داشته باشد. بسته به نگارش هسته لینوکس مورد استفاده، برخی از این ویژگی‌ها توسط تمام پیاده‌سازی‌های درایورهای سیستم‌فایل ext2، ext3 و ext4 پشتیبانی نمی‌شوند. در سایر سیستم‌عامل‌ها مانند GNU/HURD یا FreeBSD، تنها مجموعه بسیار محدودی از ویژگی‌های سیستم‌فایل ممکن است در پیاده‌سازی‌های ext2 آن‌ها پشتیبانی شود.

64bit

سیستم‌فایل را قادر می‌سازد تا بزرگ‌تر از ۲^۳۲ بلوک باشد. این ویژگی در صورت نیاز به‌طور خودکار تنظیم می‌شود، اما در صورتی که احتمال نیاز به تغییر اندازه سیستم‌فایل به بیشتر از ۲^۳۲ بلوک وجود داشته باشد، تعیین صریح آن می‌تواند مفید باشد؛ حتی اگر سیستم‌فایل در زمان ایجاد اولیه‌اش کوچک‌تر از این آستانه بوده باشد. توجه داشته باشید که برخی از هسته‌ها و نگارش‌های قدیمی‌تر e2fsprogs از سیستم‌فایل‌هایی که این ویژگی ext4 در آن‌ها فعال است پشتیبانی نمی‌کنند.

این ویژگی ext4 تخصیص بلوک خوشه‌ای را فعال می‌کند، به طوری که واحد تخصیص مضربی از توان ۲ از تعداد بلوک‌ها خواهد بود. بدین معنا که هر بیت در آنچه که پیش‌تر به عنوان بیت‌مپ تخصیص بلوک شناخته می‌شد، اکنون نشان می‌دهد که آیا یک خوشه در حال استفاده است یا خیر؛ در حالی که یک خوشه به طور پیش‌فرض از ۱۶ بلوک تشکیل شده است. این ویژگی می‌تواند زمان صرف‌شده برای تخصیص بلوک‌ها را کاهش دهد و تکه‌تکه‌شدگی (fragmentation) کمتری، به‌ویژه برای فایل‌های بزرگ، به همراه داشته باشد. اندازه را می‌توان با استفاده از گزینه -C در دستور mke2fs مشخص کرد.
هشدار: ویژگی bigalloc همچنان در دست توسعه است و ممکن است به طور کامل در هسته شما پشتیبانی نشود یا دارای اشکالات گوناگونی باشد. لطفاً برای جزئیات به صفحه وب http://ext4.wiki.kernel.org/index.php/Bigalloc مراجعه کنید. این ویژگی ممکن است با تخصیص تاخیری تداخل داشته باشد (گزینه سوار کردن nodelalloc را ببینید).
این ویژگی مستلزم فعال بودن ویژگی extent است.

این ویژگی ext4 پشتیبانی از کدگذاری نویسه‌ها در سطح سیستم‌فایل را برای پوشه‌هایی که پرچم casefold (+F) در آن‌ها فعال است فراهم می‌کند. این ویژگی نام فایل‌ها را روی دیسک به همان صورت اصلی حفظ می‌کند، اما به برنامه‌ها اجازه می‌دهد با استفاده از نگارش معادل کدگذاری‌شده نام فایل، آن را در سیستم‌فایل جستجو کنند (عدم حساسیت به بزرگی و کوچکی حروف).

استفاده از درخت‌های بی درهم‌سازی‌شده (hashed b-trees) برای سرعت بخشیدن به جستجوی نام‌ها در پوشه‌های بزرگ. این ویژگی توسط سیستم‌فایل‌های ext3 و ext4 پشتیبانی می‌شود و توسط سیستم‌فایل‌های ext2 نادیده گرفته می‌شود.

به‌طور معمول، ext4 به یک آی‌نود اجازه نمی‌دهد بیش از ۶۵,۰۰۰ پیوند سخت (hard link) داشته باشد. این محدودیت برای فایل‌های معمولی و همچنین پوشه‌ها اعمال می‌شود، به این معنی که نمی‌تواند بیش از ۶۴,۹۹۸ زیرپوشه در یک پوشه وجود داشته باشد (زیرا هر یک از ورودی‌های '.' و '..' و همچنین ورودی پوشه در پوشه والد به عنوان یک پیوند سخت به شمار می‌آیند). این ویژگی با وادار کردن ext4 به استفاده از شمارش پیوند ۱ برای نشان دادن نامشخص بودن تعداد پیوندهای سخت در زمانی که شمارش پیوند ممکن است از حد مجاز فراتر رود، این محدودیت را برمی‌دارد.

به‌طور معمول، ویژگی‌های گسترش‌یافته یک فایل و فراداده‌های مربوط به آن باید درون آی‌نود یا بلوک ویژگی گسترش‌یافته مرتبط با آی‌نود جای گیرند. این ویژگی اجازه می‌دهد تا در صورت لزوم، مقدار هر ویژگی گسترش‌یافته در بلوک‌های داده یک آی‌نود جداگانه قرار گیرد، که بدین ترتیب محدودیت اندازه و تعداد ویژگی‌های گسترش‌یافته در هر فایل افزایش می‌یابد.

پشتیبانی از رمزنگاری در سطح سیستم‌فایل را برای بلوک‌های داده و نام فایل‌ها فعال می‌کند. فراداده‌های آی‌نود (مهر زمان، اندازه فایل، مالکیت کاربر/گروه و غیره) رمزنگاری نمی‌شوند.
این ویژگی بیشترین کاربرد را در سیستم‌فایل‌های چندکاربره دارد، یا در مواردی که نباید تمام فایل‌ها رمزنگاری شوند. در بسیاری از موارد، به‌ویژه در سیستم‌های تک‌کاربره، رمزنگاری در لایه دستگاه بلوکی با استفاده از dm-crypt می‌تواند امنیت بسیار بهتری را فراهم سازد.

این ویژگی امکان استفاده از ویژگی‌های گسترش‌یافته (extended attributes) را فعال می‌کند. این ویژگی توسط ext2، ext3 و ext4 پشتیبانی می‌شود.

این ویژگی ext4 اجازه می‌دهد تا نگاشت شماره بلوک‌های منطقی یک آی‌نود خاص به بلوک‌های فیزیکی روی دستگاه ذخیره‌سازی با استفاده از یک درخت اکستنت (extent tree) ذخیره شود، که ساختار داده‌ای بسیار کارآمدتر از طرح سنتی بلوک‌های غیرمستقیم مورد استفاده در سیستم‌فایل‌های ext2 و ext3 است. استفاده از درخت اکستنت، سربار بلوک‌های فراداده را کاهش داده، کارایی سیستم‌فایل را بهبود می‌بخشد و نیاز به اجرای e2fsck(8) روی سیستم‌فایل را کاهش می‌دهد. (توجه: هر دو نام extent و extents به دلایل تاریخی و سازگاری با گذشته به عنوان نام‌های معتبر برای این ویژگی پذیرفته می‌شوند.)

این ویژگی ext4 مقدار مشخصی فضا را در هر آی‌نود برای فراداده‌های گسترش‌یافته مانند مهرهای زمانی در مقیاس نانوثانیه و زمان ایجاد فایل رزرو می‌کند، حتی اگر هسته فعلی در حال حاضر نیازی به رزرو این مقدار فضا نداشته باشد. بدون این ویژگی، هسته فقط به اندازه‌ای فضا رزرو می‌کند که در حال حاضر برای ویژگی‌ها نیاز دارد، و باقی‌مانده فضا ممکن است توسط ویژگی‌های گسترش‌یافته مصرف شود.
برای اینکه این ویژگی مفید واقع شود، اندازه آی‌نود باید ۲۵۶ بایت یا بزرگ‌تر باشد.

این ویژگی امکان ذخیره اطلاعات نوع فایل را در ورودی‌های پوشه فراهم می‌کند. این ویژگی توسط ext2، ext3 و ext4 پشتیبانی می‌شود.

این ویژگی ext4 اجازه می‌دهد فراداده‌های هر گروه بلوک (بیت‌مپ‌های تخصیص و جداول آی‌نود) در هر کجای رسانه ذخیره‌سازی قرار گیرند. علاوه بر این، mke2fs فراداده‌های مربوط به گروه‌های بلوکی را با هم و از ابتدای اولین گروه بلوکی هر "گروه flex_bg" قرار می‌دهد. اندازه گروه flex_bg را می‌توان با استفاده از گزینه -G مشخص کرد.

یک ژورنال برای تضمین سازگاری سیستم‌فایل حتی پس از خاموش شدن‌های ناگهانی و غیراصولی ایجاد می‌کند. تنظیم این ویژگی سیستم‌فایل معادل استفاده از گزینه -j در دستورات mke2fs یا tune2fs است. این ویژگی توسط ext3 و ext4 پشتیبانی می‌شود و توسط درایور سیستم‌فایل ext2 نادیده گرفته می‌شود.

این ویژگی ext4 اجازه می‌دهد فایل‌ها بزرگ‌تر از ۲ ترابایت باشند.
امکان ذخیره داده‌ها در ناحیه آی‌نود و ویژگی‌های گسترش‌یافته را فراهم می‌کند.

این ویژگی روی ابربلوک موجود در یک دستگاه ژورنال خارجی فعال می‌شود. اندازه بلوک برای ژورنال خارجی باید دقیقاً برابر با سیستم‌فایلی باشد که از آن استفاده می‌کند.
دستگاه ژورنال خارجی را می‌توان با مشخص کردن گزینه -J device=<دستگاه-خارجی> در mke2fs(8) یا tune2fs(8) توسط یک سیستم‌فایل به کار گرفت.

این ویژگی با افزایش حداکثر اندازه پوشه‌ها و برای پوشه‌های مبتنی بر درخت بی درهم‌سازی‌شده (به dir_index مراجعه کنید)، حداکثر ارتفاع درخت بی درهم‌سازی‌شده مورد استفاده برای ذخیره ورودی‌های پوشه، محدودیت تعداد فایل‌ها در هر پوشه را افزایش می‌دهد.

این پرچم ویژگی توسط هسته‌های مدرن هنگامی که فایلی بزرگ‌تر از ۲ گیگابایت ایجاد می‌شود، به‌طور خودکار تنظیم می‌گردد. هسته‌های بسیار قدیمی نمی‌توانستند فایل‌های بزرگ را مدیریت کنند، بنابراین از این پرچم ویژگی برای جلوگیری از سوار شدن سیستم‌فایل‌ها توسط هسته‌هایی که توانایی پردازش آن را نداشتند استفاده می‌شد.

این ویژگی ext4 بررسی مجموع مقابله‌ای (checksumming) فراداده‌ها را فعال می‌کند. این ویژگی چکسام‌ها را برای تمام فراداده‌های سیستم‌فایل (ابربلوک، بلوک‌های توصیف‌کننده گروه، بیت‌مپ‌های آی‌نود و بلوک، پوشه‌ها و بلوک‌های درخت اکستنت) ذخیره می‌کند. الگوریتم چکسام استفاده‌شده برای بلوک‌های فراداده با الگوریتم مورد استفاده برای توصیف‌کننده‌های گروه در ویژگی uninit_bg متفاوت است. این دو ویژگی ناسازگار هستند و metadata_csum به‌طور ترجیحی به‌جای uninit_bg استفاده خواهد شد.

این ویژگی به سیستم‌فایل اجازه می‌دهد بذر (seed) چکسام فراداده را در ابربلوک ذخیره کند، که به مدیر سیستم امکان می‌دهد شناسه یکتای سراسری (UUID) سیستم‌فایلی را که از ویژگی metadata_csum استفاده می‌کند در حالی که سوار شده است، تغییر دهد.

این ویژگی ext4 به سیستم‌فایل‌ها اجازه می‌دهد تا به‌صورت برخط (on-line) بدون نیاز صریح به رزرو فضا برای رشد اندازه توصیف‌کننده‌های گروه بلوکی، تغییر اندازه داده شوند. این طرح همچنین برای تغییر اندازه سیستم‌فایل‌هایی که بزرگ‌تر از ۲^۳۲ بلوک هستند استفاده می‌شود. توصیه نمی‌شود که این ویژگی هنگام ایجاد سیستم‌فایل تنظیم شود، زیرا این روش جایگزین ذخیره‌سازی توصیف‌کننده‌های گروه بلوکی، زمان لازم برای سوار کردن سیستم‌فایل را کند می‌کند، و هسته‌های جدیدتر می‌توانند در هنگام انجام تغییر اندازه برخط و در صورتی که فضای رزروشده دیگری در آی‌نود resize موجود نباشد، این ویژگی را به‌طور خودکار تنظیم کنند.

این ویژگی ext4 حفاظت از سوار شدن چندگانه (Multiple Mount Protection یا MMP) را فراهم می‌کند. ویژگی MMP به محافظت از سیستم‌فایل در برابر سوار شدن چندباره و هم‌زمان کمک می‌کند و در محیط‌های ذخیره‌سازی اشتراکی بسیار مفید است.

این ویژگی ext4 یک گلوگاه بالقوه مقیاس‌پذیری را برای بارهای کاری که تعداد زیادی عملیات کوتاه کردن (truncate) یا گسترش فایل را به صورت موازی انجام می‌دهند، برطرف می‌کند. این ویژگی از نگارش ۵.۱۵ هسته لینوکس و از نگارش ۱.۴۷.۰ ابزار e2fsprogs پشتیبانی می‌شود.

این ویژگی ext4 پشتیبانی از سهمیه‌بندی پروژه (project quota) را فراهم می‌آورد. با این ویژگی، شناسه پروژه (project ID) آی‌نود در هنگام سوار شدن سیستم‌فایل مدیریت خواهد شد.

ایجاد آی‌نودهای سهمیه‌بندی (آی‌نود شماره ۳ برای userquota و آی‌نود شماره ۴ برای group quota) و تنظیم آن‌ها در ابربلوک. با این ویژگی، سهمیه‌بندی‌ها هنگام سوار شدن سیستم‌فایل به‌طور خودکار فعال می‌شوند.
این ویژگی باعث می‌شود فایل‌های سهمیه‌بندی (یعنی user.quota و group.quota که در طرح قدیمی سهمیه‌بندی وجود داشتند) به آی‌نودهای پنهان تبدیل شوند.

این ویژگی سیستم‌فایل نشان می‌دهد که فضایی رزرو شده است تا جدول توصیف‌کننده گروه بلوکی بتواند در حین تغییر اندازه یک سیستم‌فایل سوارشده گسترش یابد. عملیات تغییر اندازه برخط توسط هسته انجام شده و توسط دستور resize2fs(8) آغاز می‌شود. به‌طور پیش‌فرض، mke2fs تلاش می‌کند فضای کافی را رزرو کند تا سیستم‌فایل بتواند تا ۱۰۲۴ برابر اندازه اولیه‌اش رشد کند. این مقدار را می‌توان با استفاده از گزینه گسترش‌یافته resize تغییر داد.
این ویژگی مستلزم فعال بودن ویژگی sparse_super یا sparse_super2 است.

این ویژگی سیستم‌فایل در تمام سیستم‌فایل‌های مدرن ext2، ext3 و ext4 تنظیم شده است. این ویژگی نشان می‌دهد که نسخه‌های پشتیبان ابربلوک و توصیف‌کننده‌های گروه بلوکی تنها در چند گروه بلوکی وجود دارند، نه در همه آن‌ها.

این ویژگی نشان می‌دهد که حداکثر تنها دو ابربلوک و توصیف‌کننده گروه بلوکی پشتیبان وجود خواهد داشت. گروه‌های بلوکی مورد استفاده برای ذخیره ابربلوک(ها) و توصیف‌کننده(های) گروه بلوکی پشتیبان در ابربلوک ذخیره می‌شوند، اما معمولاً یکی در ابتدای گروه بلوکی شماره ۱ و دیگری در آخرین گروه بلوکی سیستم‌فایل قرار خواهد گرفت. این ویژگی در اصل نسخه پیشرفته‌تر و محدودتری از sparse_super است و به گونه‌ای طراحی شده که درصد بسیار بیشتری از دیسک دارای بلوک‌های پیوسته و آماده برای فایل‌های داده باشد.

شماره‌های آی‌نود و شناسه یکتای سراسری (UUID) سیستم‌فایل را به عنوان پایدار علامت‌گذاری می‌کند. دستور resize2fs(8) اجازه کوچک کردن سیستم‌فایلی با این ویژگی را نمی‌دهد، و همچنین tune2fs(8) اجازه تغییر UUID آن را نخواهد داد. این ویژگی امکان استفاده از تنظیمات تخصصی رمزنگاری را فراهم می‌کند که از شماره‌های آی‌نود و UUID بهره می‌برند. توجه داشته باشید که ویژگی encrypt همچنان باید به‌طور جداگانه فعال شود. stable_inodes یک ویژگی "سازگار" (compat) است، بنابراین هسته‌های قدیمی‌تر اجازه استفاده از آن را خواهند داد.

این ویژگی سیستم‌فایل ext4 نشان می‌دهد که توصیف‌کننده‌های گروه بلوکی با استفاده از چکسام‌ها محافظت می‌شوند، که این امر باعث می‌شود اجرای mke2fs(8) برای ایجاد سیستم‌فایل بدون مقداردهی اولیه تمام گروه‌های بلوکی ایمن باشد. هسته، حد بالایی از آی‌نودهای استفاده‌نشده را حفظ می‌کند و جداول آی‌نود و بلوک‌ها را به صورت تنبلانه (lazily) مقداردهی اولیه می‌کند. این ویژگی زمان لازم برای بررسی سیستم‌فایل با استفاده از e2fsck(8) را تسریع می‌کند و همچنین زمان مورد نیاز برای ایجاد سیستم‌فایل توسط mke2fs(8) را کاهش می‌دهد.

پشتیبانی از فایل‌های محافظت‌شده با verity را فعال می‌کند. فایل‌های verity فقط‌خواندنی هستند و داده‌های آن‌ها به‌طور شفاف در برابر یک درخت مرکل (Merkle tree) پنهان در انتهای فایل اعتبارسنجی می‌شود. با استفاده از هش ریشه درخت مرکل، یک فایل verity را می‌توان به‌طور کارآمد و مستقل از اندازه فایل احراز هویت کرد.
این ویژگی بیشترین کاربرد را برای احراز هویت فایل‌های فقط‌خواندنی مهم روی سیستم‌فایل‌های خواندنی-نوشتنی دارد. اگر خود سیستم‌فایل فقط‌خواندنی است، استفاده از dm-verity برای احراز هویت کل دستگاه بلوکی می‌تواند امنیت بسیار بهتری فراهم آورد.

این بخش گزینه‌های سوار کردنی را تشریح می‌کند که مختص ext2، ext3 و ext4 هستند. سایر گزینه‌های عمومی سوار کردن نیز ممکن است استفاده شوند؛ برای جزئیات به mount(8) مراجعه کنید.

سیستم‌فایل `ext2` سیستم‌فایل استاندارد لینوکس است. از نگارش ۲.۵.۴۶ هسته لینوکس به بعد، مقدار پیش‌فرض بیشتر گزینه‌های سوار کردن توسط ابربلوک سیستم‌فایل تعیین می‌شود. این موارد را می‌توان با tune2fs(8) تنظیم کرد.

پشتیبانی از فهرست‌های کنترل دسترسی پوزیکس (POSIX Access Control Lists) یا عدم پشتیبانی از آن. به صفحه راهنمای acl(5) مراجعه کنید.
تعیین رفتار فراخوانی سیستمی statfs. رفتار minixdf این است که در فیلد f_blocks تعداد کل بلوک‌های سیستم‌فایل را برمی‌گرداند، در حالی که رفتار bsddf (که پیش‌فرض است) بلوک‌های سربار استفاده‌شده توسط سیستم‌فایل ext2 را که برای ذخیره‌سازی فایل در دسترس نیستند کسر می‌کند. بنابراین:

% mount /k -o minixdf; df /k; umount /k

File System 1024-blocks Used Available Capacity Mounted on
/dev/sda6 2630655 86954 2412169 3% /k

% mount /k -o bsddf; df /k; umount /k

File System 1024-blocks Used Available Capacity Mounted on
/dev/sda6 2543714 13 2412169 0% /k

(توجه داشته باشید که این مثال نشان می‌دهد می‌توان گزینه‌های خط فرمان را به گزینه‌های داده‌شده در /etc/fstab اضافه کرد.)

هیچ بررسی‌ای در زمان سوار کردن انجام نمی‌شود. این حالت پیش‌فرض است و سرعت بالایی دارد. عاقلانه است که دستور e2fsck(8) هر از چند گاهی، مثلاً در زمان راه‌اندازی سیستم (boot time) اجرا شود. رفتار غیرپیش‌فرض دیگر پشتیبانی نمی‌شود (گزینه‌های check=normal و check=strict حذف شده‌اند). توجه داشته باشید که در صورت استفاده از درایور هسته ext4 برای سیستم‌فایل‌های ext2 و ext3، الزامی به پشتیبانی از این گزینه‌های سوار کردن نیست.
چاپ اطلاعات اشکال‌زدایی در هر بار سوار کردن یا سوار کردن مجدد (remount).
تعیین رفتار هنگام مواجهه با خطا: (یا خطاها نادیده گرفته شوند و فقط سیستم‌فایل معیوب علامت‌گذاری شده و ادامه یابد، یا سیستم‌فایل به‌صورت فقط‌خواندنی مجدداً سوار شود، یا وحشت هسته (panic) رخ داده و سیستم متوقف گردد.) پیش‌فرض در ابربلوک سیستم‌فایل تنظیم شده است و با استفاده از tune2fs(8) قابل تغییر است.
این گزینه‌ها تعیین می‌کنند که یک فایل تازه‌ایجادشده چه شناسه گروهی دریافت کند. وقتی grpid تنظیم شده باشد، شناسه گروه پوشه‌ای را می‌گیرد که در آن ایجاد شده است؛ در غیر این صورت (حالت پیش‌فرض) fsgid فرایند جاری را دریافت می‌کند، مگر اینکه بیت setgid روی پوشه تنظیم شده باشد، که در این صورت gid را از پوشه والد می‌گیرد و اگر خودش پوشه باشد بیت setgid آن نیز فعال می‌شود.
گزینه سوار کردن usrquota (مشابه quota) پشتیبانی از سهمیه‌بندی کاربر را روی سیستم‌فایل فعال می‌کند. گزینه grpquota پشتیبانی از سهمیه‌بندی گروه را فعال می‌سازد. برای فعال‌سازی و مدیریت واقعی سامانه سهمیه‌بندی به ابزارهای quota نیاز دارید.
شناسه‌های کاربری و گروهی ۳۲بیتی (UIDها و GIDها) را غیرفعال می‌کند. این گزینه برای سازگاری و تعامل با هسته‌های قدیمی‌تری است که فقط مقادیر ۱۶بیتی را ذخیره کرده و انتظار دارند.
استفاده از تخصیص‌دهنده قدیمی یا تخصیص‌دهنده Orlov برای آی‌نودهای جدید. پیش‌فرض Orlov است.
سیستم‌فایل ext2 درصد مشخصی از فضای موجود را رزرو می‌کند (به‌طور پیش‌فرض ۵٪، دستورات mke2fs(8) و tune2fs(8) را ببینید). این گزینه‌ها مشخص می‌کنند که چه کسی می‌تواند از بلوک‌های رزروشده استفاده کند (به‌طور کلی: هر کس که دارای uid مشخص‌شده باشد، یا به گروه مشخص‌شده تعلق داشته باشد).
به‌جای استفاده از ابربلوک معمولی، از یک ابربلوک جایگزین که با n مشخص شده است استفاده شود. این گزینه معمولاً زمانی به کار می‌رود که ابربلوک اصلی آسیب دیده باشد. مکان ابربلوک‌های پشتیبان به اندازه بلوک سیستم‌فایل، تعداد بلوک‌ها در هر گروه و ویژگی‌هایی نظیر sparse_super بستگی دارد.
ابربلوک‌های پشتیبان اضافی را می‌توان با استفاده از برنامه mke2fs و با گزینه -n برای چاپ محل قرارگیری ابربلوک‌ها پیدا کرد، به شرطی که به mke2fs آرگومان‌هایی مطابق با چیدمان سیستم‌فایل (مانند اندازه بلوک، بلوک‌ها در هر گروه، sparse_super و غیره) داده شود.
شماره بلوک در اینجا بر حسب واحدهای ۱ کیلوبایتی است. بنابراین، اگر می‌خواهید از بلوک منطقی ۳۲۷۶۸ در یک سیستم‌فایل با بلوک‌های ۴ کیلوبایتی استفاده کنید، باید از "sb=131072" استفاده کنید.
پشتیبانی از ویژگی‌های گسترش‌یافته کاربر ("user.") یا عدم پشتیبانی از آن.

سیستم‌فایل ext3 نگارشی از سیستم‌فایل ext2 است که با قابلیت ژورنالینگ ارتقا یافته است. این سیستم‌فایل علاوه بر گزینه‌های ext2، از گزینه‌های افزوده زیر نیز پشتیبانی می‌کند:

هنگامی که شماره‌های اصلی/فرعی (major/minor numbers) دستگاه ژورنال خارجی تغییر کرده باشد، این گزینه‌ها به کاربر اجازه می‌دهند تا مکان جدید ژورنال را مشخص کند. دستگاه ژورنال یا از طریق شماره‌های اصلی/فرعی جدید کدگذاری‌شده در devnum شناسایی می‌شود، یا از طریق مسیری به دستگاه.
عدم بارگذاری ژورنال هنگام سوار کردن. توجه داشته باشید که اگر سیستم‌فایل به صورت تمیز و اصولی پیاده (unmount) نشده باشد، صرف‌نظر کردن از بازپخش ژورنال (journal replay) منجر به ایجاد ناهمخوانی‌هایی در سیستم‌فایل می‌شود که می‌تواند به مشکلات متعددی بینجامد.
حالت ژورنالینگ را برای داده‌های فایل مشخص می‌کند. فراداده‌ها همیشه ژورنال می‌شوند. برای استفاده از حالت‌هایی به جز ordered روی سیستم‌فایل ریشه (root)، حالت را به عنوان پارامتر راه‌اندازی به هسته ارسال کنید، مانند rootflags=data=journal.
تمام داده‌ها قبل از نوشته شدن در سیستم‌فایل اصلی، در ژورنال ثبت (commit) می‌شوند.
این حالت پیش‌فرض است. تمام داده‌ها پیش از آنکه فراداده مربوط به آن‌ها در ژورنال ثبت شود، مستقیماً روی سیستم‌فایل اصلی نوشته می‌شوند.
ترتیب داده‌ها حفظ نمی‌شود – ممکن است داده‌ها پس از ثبت فراداده در ژورنال، در سیستم‌فایل اصلی نوشته شوند. شایع است که این گزینه بالاترین نرخ گذردهی (throughput) را دارد. این حالت یکپارچگی داخلی سیستم‌فایل را تضمین می‌کند، اما ممکن است پس از خرابی و بازیابی ژورنال، داده‌های قدیمی در فایل‌ها ظاهر شوند.
اگر در حالت ordered خطایی در بافر داده‌های فایل رخ دهد، فقط یک پیام خطا چاپ شود.
اگر در حالت ordered خطایی در بافر داده‌های فایل رخ دهد، ژورنال متوقف (abort) شود.
استفاده از موانع نوشتن (write barriers) در کد jbd را غیرفعال یا فعال می‌کند. مقدار barrier=0 غیرفعال و barrier=1 فعال می‌کند (پیش‌فرض). این ویژگی همچنین نیازمند پشته ورودی/خروجی است که از موانع پشتیبانی کند، و اگر jbd در نوشتن روی یک مانع با خطا مواجه شود، موانع را مجدداً همراه با یک هشدار غیرفعال خواهد کرد. موانع نوشتن، ترتیب صحیح ثبت‌های ژورنال روی دیسک را اعمال می‌کنند و استفاده از حافظه‌های موقت فرار نوشتن دیسک را به قیمت اندکی افت کارایی، ایمن می‌سازند. اگر دیسک‌های شما به نوعی دارای باتری پشتیبان هستند، غیرفعال کردن موانع می‌تواند کارایی را با حفظ ایمنی بهبود بخشد.
آغاز ثبت ژورنال در هر nrsec ثانیه. مقدار پیش‌فرض ۵ ثانیه است. مقدار صفر به معنای پیش‌فرض است.
فعال‌سازی ویژگی‌های گسترش‌یافته کاربر. صفحه راهنمای attr(5) را ببینید.
جدای از سامانه قدیمی سهمیه‌بندی (مانند ext2 با jqfmt=vfsold معروف به سهمیه‌بندی نسخه ۱)، سیستم‌فایل ext3 از سهمیه‌بندی‌های ژورنال‌دار (سهمیه‌بندی نسخه ۲) نیز پشتیبانی می‌کند. گزینه‌های jqfmt=vfsv0 یا jqfmt=vfsv1 سهمیه‌بندی ژورنال‌دار را فعال می‌کنند. سهمیه‌بندی‌های ژورنال‌دار این مزیت را دارند که حتی پس از خرابی سیستم، نیازی به بررسی سهمیه نیست. هنگامی که ویژگی سیستم‌فایل quota فعال باشد، سهمیه‌بندی‌های ژورنال‌دار به‌طور خودکار استفاده می‌شوند و این گزینه سوار کردن نادیده گرفته می‌شود.
برای سهمیه‌بندی‌های ژورنال‌دار (jqfmt=vfsv0 یا jqfmt=vfsv1)، گزینه‌های سوار کردن usrjquota=aquota.user و grpjquota=aquota.group لازم هستند تا به سامانه سهمیه‌بندی بگویند از کدام فایل‌های پایگاه‌داده سهمیه استفاده کند. هنگامی که ویژگی سیستم‌فایل quota فعال باشد، سهمیه‌بندی‌های ژورنال‌دار به‌طور خودکار استفاده می‌شوند و این گزینه سوار کردن نادیده گرفته می‌شود.

سیستم‌فایل ext4 نگارش پیشرفته‌ای از سیستم‌فایل ext3 است که بهبودهای مقیاس‌پذیری و قابلیت اطمینان را برای پشتیبانی از سیستم‌فایل‌های بزرگ شامل می‌شود.

گزینه‌های 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 و jqfmt با ext3 و ext2 سازگار با گذشته هستند.

گزینه journal_checksum اعتبارسنجی مجموع مقابله‌ای (checksumming) تراکنش‌های ژورنال را فعال می‌کند. این امر به کد بازیابی در e2fsck و هسته اجازه می‌دهد تا خرابی در هسته را تشخیص دهند. این یک تغییر سازگار با گذشته است و توسط هسته‌های قدیمی‌تر نادیده گرفته می‌شود.
بلوک ثبت می‌تواند بدون انتظار برای بلوک‌های توصیف‌کننده روی دیسک نوشته شود. در صورت فعال بودن، هسته‌های قدیمی‌تر نمی‌توانند دستگاه را سوار کنند. این گزینه به طور داخلی 'journal_checksum' را نیز فعال می‌کند.
این گزینه‌های سوار کردن همان اثر موجود در ext3 را دارند. گزینه‌های سوار کردن "barrier" و "nobarrier" برای سازگاری و هماهنگی با سایر گزینه‌های سوار کردن ext4 اضافه شده‌اند.
سیستم‌فایل ext4 موانع نوشتن را به طور پیش‌فرض فعال می‌کند.
این پارامتر تنظیمی، حداکثر تعداد بلوک‌های جدول آی‌نود را کنترل می‌کند که الگوریتم خواندن رو به جلوی جدول آی‌نود در ext4 از پیش در حافظه موقت بافر می‌خواند. مقدار باید توانی از ۲ باشد. مقدار پیش‌فرض ۳۲ بلوک است.
تعداد بلوک‌های سیستم‌فایل که mballoc تلاش می‌کند برای اندازه و تراز تخصیص استفاده کند. برای سامانه‌های RAID5/6 این مقدار باید برابر با تعداد دیسک‌های داده ضرب‌در اندازه تکه (chunk size) آرایه RAID بر حسب بلوک‌های سیستم‌فایل باشد.
به تعویق انداختن تخصیص بلوک تا زمان نوشتن نهایی روی دیسک (write-out time).
غیرفعال کردن تخصیص تاخیری. بلوک‌ها زمانی تخصیص می‌یابند که داده‌ها از فضای کاربر به حافظه موقت صفحه (page cache) کپی می‌شوند.
حداکثر زمانی (بر حسب میکروثانیه) که ext4 باید منتظر بماند تا عملیات اضافی سیستم‌فایل همراه با یک عملیات نوشتن همگام به صورت دسته‌ای جمع شوند. از آنجا که یک عملیات نوشتن همگام یک ثبت ژورنال را اجباری کرده و سپس منتظر تکمیل I/O می‌ماند، هزینه زیادی ندارد و می‌تواند بهره‌وری گذردهی بزرگی به همراه داشته باشد؛ زمان کوتاهی منتظر می‌مانیم تا ببینیم آیا تراکنش‌های دیگری می‌توانند به این نوشتن همگام ملحق شوند یا خیر. الگوریتم مورد استفاده به گونه‌ای طراحی شده که با اندازه‌گیری میانگین زمان مورد نیاز برای پایان ثبت یک تراکنش، به طور خودکار سرعت دیسک را بسنجد. به این زمان "زمان ثبت" (commit time) می‌گویند. اگر زمانی که تراکنش در حال اجرا بوده کمتر از زمان ثبت باشد، ext4 تلاش می‌کند به اندازه زمان ثبت به خواب برود تا ببیند آیا سایر عملیات به تراکنش خواهند پیوست یا خیر. زمان ثبت توسط max_batch_time محدود می‌شود که پیش‌فرض آن ۱۵۰۰۰ میکروثانیه (۱۵ میلی‌ثانیه) است. این بهینه‌سازی را می‌توان با تنظیم max_batch_time روی ۰ کاملاً غیرفعال کرد.
این پارامتر زمان ثبت (همان‌طور که در بالا توضیح داده شد) را حداقل برابر با min_batch_time قرار می‌دهد. مقدار پیش‌فرض آن صفر میکروثانیه است. افزایش این پارامتر ممکن است گذردهی بارهای کاری همگام و چندنخی را روی دیسک‌های بسیار سریع افزایش دهد، به قیمت افزایش تاخیر (latency).
اولویت I/O (از ۰ تا ۷، که در آن ۰ بالاترین اولویت است) که باید برای عملیات I/O ارسال‌شده توسط kjournald2 در طول یک عملیات ثبت استفاده شود. مقدار پیش‌فرض ۳ است که اولویتی کمی بالاتر از اولویت پیش‌فرض I/O است.
شبیه‌سازی اثرات فراخوانی ext4_abort() برای اهداف اشکال‌زدایی. این گزینه معمولاً هنگام سوار کردن مجدد یک سیستم‌فایل که قبلاً سوار شده است به کار می‌رود.
بسیاری از برنامه‌های دارای نقص، هنگام جایگزینی فایل‌های موجود با استفاده از الگوهایی نظیر
fd = open("foo.new")/write(fd,...)/close(fd)/ rename("foo.new", "foo")
یا بدتر از آن:
fd = open("foo", O_TRUNC)/write(fd,...)/close(fd)
از fsync() استفاده نمی‌کنند.
اگر auto_da_alloc فعال باشد، ext4 الگوهای جایگزینی از طریق تغییر نام (replace-via-rename) و جایگزینی از طریق کوتاه کردن (replace-via-truncate) را شناسایی کرده و اجبار می‌کند که هرگونه بلوک تخصیص تاخیری تخصیص یابد، به طوری که در ثبت ژورنال بعدی، در حالت پیش‌فرض data=ordered، بلوک‌های داده فایل جدید قبل از ثبت عملیات rename() به دیسک فرستاده شوند. این کار تقریباً همان سطح تضمین‌های ext3 را فراهم می‌کند و از مشکل "طول صفر" (zero-length) که در صورت خرابی سیستم قبل از ارسال بلوک‌های تخصیص تاخیری به دیسک رخ می‌دهد، جلوگیری می‌کند.
هیچ بلوک مقداردهی‌نشده جدول آی‌نود را در پس‌زمینه مقداردهی اولیه نکند. این ویژگی ممکن است توسط دیسک‌های نصب استفاده شود تا فرایند نصب در سریع‌ترین زمان ممکن تکمیل شود؛ فرایند مقداردهی اولیه جدول آی‌نود به دفعه بعد که سیستم‌فایل سوار می‌شود موکول خواهد شد.
کد مقداردهی اولیه تنبلانه itable به اندازه n برابر تعداد میلی‌ثانیه‌هایی که برای صفر کردن جدول آی‌نود گروه بلوکی قبلی طول کشید، منتظر می‌ماند. این کار اثرگذاری روی کارایی سیستم را در حین مقداردهی اولیه جدول آی‌نود به حداقل می‌رساند.
کنترل می‌کند که آیا ext4 در هنگام آزاد شدن بلوک‌ها باید دستورات discard/TRIM را به دستگاه بلوکی زیرین صادر کند یا خیر. این گزینه برای دستگاه‌های SSD و LUNهای دارای تخصیص تنک مفید است، اما تا زمان انجام آزمایش‌های کافی به‌طور پیش‌فرض غیرفعال است.
این گزینه امکانات درون هسته را برای ردیابی بلوک‌های فراداده سیستم‌فایل در ساختارهای داده داخلی فعال یا غیرفعال می‌کند. این کار به تخصیص‌دهنده چندبلوکی و سایر روال‌ها اجازه می‌دهد تا به سرعت اکستنت‌هایی را که ممکن است با بلوک‌های فراداده سیستم‌فایل هم‌پوشانی داشته باشند شناسایی کنند. این گزینه برای اهداف اشکال‌زدایی در نظر گرفته شده است و از آنجا که تأثیر منفی بر کارایی دارد، به‌طور پیش‌فرض غیرفعال است.
کنترل می‌کند که آیا ext4 باید از قفل‌گذاری خواندن DIO استفاده کند یا خیر. اگر گزینه dioread_nolock مشخص شده باشد، ext4 اکستنت مقداردهی‌نشده را قبل از نوشتن بافر تخصیص می‌دهد و پس از تکمیل IO، اکستنت را به مقداردهی‌شده تبدیل می‌کند. این رویکرد به کد ext4 اجازه می‌دهد از استفاده از قفل دوطرفه (mutex) آی‌نود اجتناب کند، که این امر مقیاس‌پذیری را در حافظه‌های ذخیره‌سازی پرسرعت بهبود می‌بخشد. با این حال، این ویژگی با ژورنالینگ داده کار نمی‌کند و گزینه dioread_nolock با یک هشدار هسته نادیده گرفته خواهد شد. توجه داشته باشید که مسیر کد dioread_nolock فقط برای فایل‌های مبتنی بر اکستنت استفاده می‌شود. به دلیل محدودیت‌هایی که این گزینه دارد، به‌طور پیش‌فرض غیرفعال است (یعنی dioread_lock فعال است).
این گزینه اندازه پوشه‌ها را محدود می‌کند، به طوری که هرگونه تلاش برای گسترش آن‌ها فراتر از حد تعیین‌شده بر حسب کیلوبایت باعث بروز خطای ENOSPC می‌شود. این گزینه در محیط‌های با محدودیت حافظه مفید است، جایی که یک پوشه بسیار بزرگ می‌تواند باعث مشکلات شدید کارایی یا حتی تحریک فرایندکش کمبود حافظه (Out Of Memory killer) شود. (به عنوان مثال، اگر فقط ۵۱۲ مگابایت حافظه در دسترس باشد، یک پوشه ۱۷۶ مگابایتی ممکن است عملکرد سیستم را به شدت مختل کند.)
پشتیبانی از نگارش ۶۴بیتی آی‌نود را فعال می‌کند. این گزینه به‌طور پیش‌فرض خاموش است.
این گزینه استفاده از mbcache را برای یکتا‌سازی ویژگی‌های گسترش‌یافته (extended attribute deduplication) غیرفعال می‌کند. در سیستم‌هایی که ویژگی‌های گسترش‌یافته به ندرت یا هرگز بین فایل‌ها به اشتراک گذاشته نمی‌شوند، استفاده از mbcache برای یکتا‌سازی سربار محاسباتی غیرضروری ایجاد می‌کند.
گزینه سوار کردن prjquota پشتیبانی از سهمیه‌بندی پروژه را روی سیستم‌فایل فعال می‌کند. برای فعال‌سازی و مدیریت واقعی سامانه سهمیه‌بندی به ابزارهای سهمیه‌بندی نیاز دارید. این گزینه سوار کردن نیازمند ویژگی سیستم‌فایل project است.

سیستم‌فایل‌های ext2، ext3 و ext4 پشتیبانی از تنظیم ویژگی‌های فایل زیر را در سیستم‌های لینوکس با استفاده از ابزار chattr(1) ارائه می‌دهند:

a - فقط الحاق (append only)

A - بدون به‌روزرسانی زمان دسترسی (no atime updates)

d - بدون نسخه پشتیبان dump (no dump)

D - به‌روزرسانی همگام پوشه‌ها (synchronous directory updates)

i - غیرقابل تغییر (immutable)

S - به‌روزرسانی‌های همگام (synchronous updates)

u - غیرقابل حذف (undeletable)

علاوه بر این، سیستم‌فایل‌های ext3 و ext4 از پرچم زیر نیز پشتیبانی می‌کنند:

j - ژورنالینگ داده‌ها (data journaling)

در نهایت، سیستم‌فایل ext4 از پرچم زیر نیز پشتیبانی می‌کند:

e - قالب اکستنت‌ها (extents format)

برای شرح کامل این پرچم‌های ویژگی، لطفاً به صفحه راهنمای chattr(1) مراجعه فرمایید.

این بخش درایور سیستم‌فایل (مانند ext2، ext3، ext4) و نگارش بالادستی هسته لینوکس را که ویژگی خاصی از سیستم‌فایل از آن زمان پشتیبانی شده است، فهرست می‌کند. توجه داشته باشید که در برخی موارد، ویژگی در نگارش‌های پیشین هسته نیز وجود داشته اما با باگ‌های شناخته‌شده و جدی همراه بوده است. در موارد دیگر ممکن است ویژگی هنوز در وضعیت آزمایشی در نظر گرفته شود. در نهایت، توجه داشته باشید که برخی توزیع‌ها ممکن است ویژگی‌ها را به هسته‌های قدیمی‌تر بک‌پورت کرده باشند؛ به‌ویژه نگارش‌های هسته در برخی "توزیع‌های سازمانی" می‌توانند بسیار گمراه‌کننده باشند.

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 (تغییر اندازه برخط)
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

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

مه ۲۰۲۵ e2fsprogs