| EXT2(5) | فایلهای پیکربندی | EXT2(5) |
نام (NAME)
ext2 - سیستمفایل گسترشیافته دوم لینوکس (second extended file system)
توضیحات (DESCRIPTION)
سیستمفایل ext2 یکی از سیستمفایلهای استاندارد لینوکس است. سیستمفایلهای گسترشیافته دوم، سوم و چهارم، یا همان ext2، ext3 و ext4 که معمولاً به این نامها شناخته میشوند، سیستمفایلهای لینوکسی هستند که از نظر تاریخی سیستمفایل پیشفرض برای بسیاری از توزیعهای لینوکس بودهاند. آنها سیستمفایلهای همهمنظورهای هستند که برای گسترشپذیری و سازگاری با نسخههای پیشین طراحی شدهاند. بهویژه، سیستمفایلهایی که پیشتر برای استفاده با سیستمفایلهای ext2 و ext3 در نظر گرفته شده بودند را میتوان با استفاده از درایور سیستمفایل ext4 سوار کرد؛ و در واقع در بسیاری از توزیعهای مدرن لینوکس، درایور سیستمفایل ext4 برای مدیریت درخواستهای سوار کردن سیستمفایلهای ext2 و ext3 پیکربندی شده است.
قابلیتهای سیستمفایل (FILE SYSTEM FEATURES)
یک سیستمفایل قالببندیشده برای ext2، ext3 یا ext4 میتواند مجموعهای از پرچمهای قابلیتهای سیستمفایل زیر را فعال داشته باشد. برخی از این قابلیتها بسته به نسخه هسته لینوکس مورد استفاده، توسط تمامی پیادهسازیهای درایورهای سیستمفایل ext2، ext3 و ext4 پشتیبانی نمیشوند. در سایر سیستمعاملها، مانند GNU/HURD یا FreeBSD، تنها مجموعه بسیار محدودی از قابلیتهای سیستمفایل در پیادهسازیهای ext2 آنها پشتیبانی میشود.
- 64bit
-
سیستمفایل را قادر میسازد که بزرگتر از ۲^۳۲ بلوک باشد. این قابلیت در صورت نیاز بهطور خودکار تنظیم میشود، اما در صورتی که ممکن باشد سیستمفایل نیاز به تغییر اندازه به مقداری بزرگتر از ۲^۳۲ بلوک داشته باشد، تعیین صریح این قابلیت میتواند مفید باشد، حتی اگر در زمان ایجاد اولیه از این آستانه کوچکتر بوده باشد. توجه داشته باشید که برخی هستهها و نسخههای قدیمیتر e2fsprogs از سیستمفایلهایی با این قابلیت فعال ext4 پشتیبانی نمیکنند. - bigalloc
-
این قابلیت ext4 امکان تخصیص خوشهای بلوکها را فراهم میکند، بهطوری که واحد تخصیص مضربی از توانهای ۲ از تعداد بلوکها خواهد بود. یعنی هر بیت در آنچه پیشتر به عنوان بیتمپ تخصیص بلوک شناخته میشد، اکنون نشان میدهد که آیا یک خوشه در حال استفاده است یا خیر، که هر خوشه بهطور پیشفرض از ۱۶ بلوک تشکیل شده است. این قابلیت میتواند زمان صرفشده برای انجام تخصیص بلوک را کاهش دهد و پراکندگی کمتری بهویژه برای فایلهای بزرگ به همراه داشته باشد. اندازه را میتوان با استفاده از گزینه -C در mke2fs مشخص کرد.
- هشدار: قابلیت bigalloc هنوز در حال توسعه است و ممکن است به طور کامل در هسته شما پشتیبانی نشود یا دارای باگهای مختلفی باشد. لطفاً برای جزئیات به صفحه وب http://ext4.wiki.kernel.org/index.php/Bigalloc مراجعه کنید. ممکن است با تخصیص تاخیری تداخل داشته باشد (گزینه سوار کردن nodelalloc را ببینید).
- این قابلیت نیازمند فعال بودن قابلیت extent است.
- casefold
-
این قابلیت ext4 پشتیبانی از کدگذاری نویسهها را در سطح سیستمفایل برای دایرکتوریهایی با پرچم casefold (+F) فعال فراهم میکند. این قابلیت نامها را روی دیسک حفظ میکند، اما به برنامهها اجازه میدهد با استفاده از نسخهای از نظر کدگذاری معادل از نام فایل، به جستجوی فایل در سیستمفایل بپردازند. - dir_index
-
استفاده از درختهای B درهمسازیشده (hashed b-trees) برای سرعت بخشیدن به جستجوی نامها در دایرکتوریهای بزرگ. این قابلیت توسط سیستمفایلهای ext3 و ext4 پشتیبانی میشود و توسط سیستمفایلهای ext2 نادیده گرفته میشود. - dir_nlink
-
بهطور معمول، ext4 اجازه میدهد یک اینود حداکثر ۶۵,۰۰۰ پیوند سخت داشته باشد. این امر برای فایلهای معمولی و همچنین دایرکتوریها اعمال میشود، به این معنی که نمیتوان بیش از ۶۴,۹۹۸ زیردایرکتوری در یک دایرکتوری داشت (زیرا هر یک از مدخلهای '.' و '..'، و همچنین مدخل دایرکتوری برای آن دایرکتوری در دایرکتوری والد آن به عنوان یک پیوند سخت به حساب میآیند). این قابلیت با وادار کردن ext4 به استفاده از شمارش پیوند ۱ برای نشان دادن اینکه تعداد پیوندهای سخت به یک دایرکتوری در زمانی که ممکن است از حد مجاز فراتر رود نامشخص است، این محدودیت را برطرف میکند. - ea_inode
-
بهطور معمول، ویژگیهای گسترشیافته فایل و متادیتای مرتبط باید در داخل اینود یا بلوک ویژگیهای گسترشیافته مرتبط با اینود جای گیرند. این قابلیت اجازه میدهد در صورت لزوم، مقدار هر ویژگی گسترشیافته در بلوکهای داده یک اینود مجزا قرار گیرد و محدودیت اندازه و تعداد ویژگیهای گسترشیافته در هر فایل افزایش یابد. - encrypt
-
پشتیبانی از رمزنگاری در سطح سیستمفایل را برای بلوکهای داده و نام فایلها فعال میکند. متادیتای اینود (برچسبهای زمانی، اندازه فایل، مالکیت کاربر/گروه و غیره) رمزنگاری نمیشود
- این قابلیت بیشتر در سیستمفایلهایی با چندین کاربر یا جاهایی که نباید همه فایلها رمزنگاری شوند مفید است. در بسیاری از موارد کاربردی، بهویژه در سیستمهای تککاربره، رمزنگاری در لایه دستگاه بلوکی با استفاده از dm-crypt ممکن است امنیت بسیار بهتری را فراهم کند.
- ext_attr
-
این قابلیت امکان استفاده از ویژگیهای گسترشیافته را فراهم میکند. این قابلیت توسط ext2، ext3 و ext4 پشتیبانی میشود. - extent
-
این قابلیت ext4 اجازه میدهد نگاشت شماره بلوکهای منطقی برای یک اینود خاص به بلوکهای فیزیکی روی دستگاه ذخیرهسازی با استفاده از یک درخت اکستنت (extent tree) ذخیره شود، که ساختار دادهای کارآمدتری نسبت به طرح سنتی بلوک غیرمستقیم مورد استفاده در سیستمفایلهای ext2 و ext3 است. استفاده از درخت اکستنت، بار اضافی بلوک متادیتا را کاهش میدهد، عملکرد سیستمفایل را بهبود میبخشد و نیاز به اجرای e2fsck(8) روی سیستمفایل را کاهش میدهد. (توجه: هر دو نام extent و extents به دلایل تاریخی و سازگاری با نسخههای پیشین به عنوان نامهای معتبر برای این قابلیت پذیرفته میشوند.) - extra_isize
-
این قابلیت ext4 مقدار مشخصی از فضا را در هر اینود برای متادیتای گسترشیافته مانند برچسبهای زمانی نانوثانیهای و زمان ایجاد فایل رزرو میکند، حتی اگر هسته فعلی در حال حاضر نیازی به رزرو این مقدار فضا نداشته باشد. بدون این قابلیت، هسته مقدار فضا را برای قابلیتهایی که در حال حاضر به آنها نیاز دارد رزرو میکند و مابقی ممکن است توسط ویژگیهای گسترشیافته مصرف شود.
برای اینکه این قابلیت مفید باشد، اندازه اینود باید ۲۵۶ بایت یا بزرگتر باشد.
- filetype
-
این قابلیت ذخیره اطلاعات نوع فایل را در مدخلهای دایرکتوری فعال میکند. این قابلیت توسط ext2، ext3 و ext4 پشتیبانی میشود. - flex_bg
-
این قابلیت ext4 اجازه میدهد متادیتای مربوط به هر گروه بلوکی (بیتمپهای تخصیص و جدولهای اینود) در هر کجای رسانه ذخیرهسازی قرار گیرند. علاوه بر این، mke2fs متادیتای مربوط به هر گروه بلوکی را به صورت مجتمع با شروع از اولین گروه بلوکی هر "گروه flex_bg" قرار میدهد. اندازه گروه flex_bg را میتوان با استفاده از گزینه -G مشخص کرد. - has_journal
-
ایجاد یک ژورنال برای اطمینان از یکپارچگی سیستمفایل حتی پس از خاموش شدنهای نامناسب. تنظیم این قابلیت سیستمفایل معادل استفاده از گزینه -j همراه با mke2fs یا tune2fs است. این قابلیت توسط ext3 و ext4 پشتیبانی میشود و توسط درایور سیستمفایل ext2 نادیده گرفته میشود. - huge_file
-
این قابلیت ext4 اجازه میدهد فایلها بزرگتر از ۲ ترابایت باشند. - inline_data
- اجازه میدهد دادهها در ناحیه اینود و ویژگیهای گسترشیافته ذخیره شوند.
- journal_dev
-
این قابلیت در ابربلوک موجود در یک دستگاه ژورنال خارجی فعال میشود. اندازه بلوک برای ژورنال خارجی باید با اندازه بلوک سیستمفایلی که از آن استفاده میکند یکسان باشد.
- دستگاه ژورنال خارجی را میتوان با تعیین گزینه -J device=<دستگاه-خارجی> در mke2fs(8) یا tune2fs(8) برای یک سیستمفایل استفاده کرد.
- large_dir
-
این قابلیت محدودیت تعداد فایلها در هر دایرکتوری را با افزایش حداکثر اندازه دایرکتوریها و برای دایرکتوریهای درخت B درهمسازیشده (نگاه کنید به dir_index)، افزایش حداکثر ارتفاع درخت B درهمسازیشده مورد استفاده برای ذخیره مدخلهای دایرکتوری، بالا میبرد. - large_file
-
این پرچم قابلیت هنگامی که فایلی بزرگتر از ۲ گیگابایت ایجاد میشود، بهطور خودکار توسط هستههای مدرن تنظیم میگردد. هستههای بسیار قدیمی نمیتوانستند فایلهای بزرگ را مدیریت کنند، بنابراین از این پرچم قابلیت برای جلوگیری از سوار کردن سیستمفایلهایی که قادر به درک آنها نبودند توسط آن هستهها استفاده میشد. - metadata_csum
-
این قابلیت ext4 بررسی چکسام متادیتا را فعال میکند. این قابلیت چکسامها را برای تمامی متادیتای سیستمفایل (ابربلوک، بلوکهای توصیفکننده گروه، بیتمپهای اینود و بلوک، دایرکتوریها و بلوکهای درخت اکستنت) ذخیره میکند. الگوریتم چکسام استفادهشده برای بلوکهای متادیتا با الگوریتم استفادهشده برای توصیفکنندههای گروه در قابلیت uninit_bg متفاوت است. این دو قابلیت با یکدیگر ناسازگار هستند و metadata_csum بهطور ترجیحی بهجای uninit_bg استفاده خواهد شد. - metadata_csum_seed
-
این قابلیت به سیستمفایل اجازه میدهد بذر چکسام متادیتا را در ابربلوک ذخیره کند، که به مدیر سیستم اجازه میدهد UUID یک سیستمفایل با قابلیت metadata_csum را در حالی که سوار شده است تغییر دهد. - meta_bg
-
این قابلیت ext4 اجازه میدهد اندازه سیستمفایلها به صورت برخط (on-line) بدون نیاز صریح به رزرو فضا برای رشد اندازه توصیفکنندههای گروه بلوکی تغییر یابد. این طرح همچنین برای تغییر اندازه سیستمفایلهایی که بزرگتر از ۲^۳۲ بلوک هستند استفاده میشود. توصیه نمیشود این قابلیت هنگام ایجاد سیستمفایل تنظیم شود، زیرا این روش جایگزین ذخیرهسازی توصیفکنندههای گروه بلوکی، زمان مورد نیاز برای سوار کردن سیستمفایل را کند میکند، و هستههای جدیدتر میتوانند در صورت لزوم هنگام انجام تغییر اندازه برخط و در صورتی که فضای رزروشده بیشتری در اینود تغییر اندازه در دسترس نباشد، این قابلیت را بهطور خودکار تنظیم کنند. - mmp
-
این قابلیت ext4 محافظت از سوار کردن چندگانه (Multiple Mount Protection یا MMP) را فراهم میکند. قابلیت MMP به محافظت از سیستمفایل در برابر سوار شدن همزمان در چندین جا کمک میکند و در محیطهای ذخیرهسازی اشتراکی مفید است. - orphan_file
-
این قابلیت ext4 یک گلوگاه بالقوه مقیاسپذیری را برای بارهای کاری که تعداد زیادی عملیات کوتاه کردن (truncate) یا گسترش فایل را به صورت موازی انجام میدهند رفع میکند. این قابلیت توسط هستههای لینوکس از نسخه ۵.۱۵ و توسط e2fsprogs از نسخه ۱.۴۷.۰ پشتیبانی میشود. - project
-
این قابلیت ext4 پشتیبانی از سهمیهبندی پروژه (project quota) را فراهم میکند. با این قابلیت، شناسه پروژه (project ID) اینود هنگام سوار شدن سیستمفایل مدیریت خواهد شد. - quota
-
اینودهای سهمیهبندی (اینود شماره ۳ برای سهمیه کاربر و اینود شماره ۴ برای سهمیه گروه) را ایجاد کرده و آنها را در ابربلوک تنظیم میکند. با این قابلیت، سهمیهبندیها هنگام سوار شدن سیستمفایل بهطور خودکار فعال میشوند.
- باعث میشود فایلهای سهمیهبندی (یعنی user.quota و group.quota که در طرح قدیمیتر سهمیهبندی وجود داشتند) به اینودهای پنهان تبدیل شوند.
- resize_inode
-
این قابلیت سیستمفایل نشان میدهد فضایی رزرو شده است تا جدول توصیفکننده گروه بلوکی بتواند هنگام تغییر اندازه یک سیستمفایل سوارشده گسترش یابد. عملیات تغییر اندازه برخط توسط هسته و با فراخوانی resize2fs(8) انجام میشود. بهطور پیشفرض، mke2fs تلاش میکند فضای کافی را رزرو کند تا سیستمفایل بتواند تا ۱۰۲۴ برابر اندازه اولیه خود رشد کند. این مقدار را میتوان با استفاده از گزینه گسترشیافته resize تغییر داد.
- این قابلیت نیازمند فعال بودن قابلیت sparse_super یا sparse_super2 است.
- sparse_super
-
این قابلیت سیستمفایل بر روی تمامی سیستمفایلهای مدرن ext2، ext3 و ext4 تنظیم میشود. این قابلیت نشان میدهد که نسخههای پشتیبان ابربلوک و توصیفکنندههای گروه بلوکی تنها در چند گروه بلوکی وجود دارند، نه در همه آنها. - sparse_super2
-
این قابلیت نشان میدهد که در نهایت حداکثر دو ابربلوک و توصیفکننده گروه بلوکی پشتیبان وجود خواهد داشت. گروههای بلوکی مورد استفاده برای ذخیره ابربلوک(های) پشتیبان و توصیفکننده(های) گروه بلوکی در ابربلوک ذخیره میشوند، اما معمولاً یکی در ابتدای گروه بلوکی شماره ۱ و یکی در آخرین گروه بلوکی سیستمفایل قرار خواهد گرفت. این قابلیت در واقع نسخه شدیدتری از sparse_super است و به گونهای طراحی شده که درصد بسیار بیشتری از دیسک دارای بلوکهای پیوسته برای فایلهای داده باشد. - stable_inodes
-
شمارههای اینود و UUID سیستمفایل را به عنوان پایدار (stable) علامتگذاری میکند. resize2fs(8) اجازه کوچک کردن سیستمفایل با این قابلیت را نخواهد داد، و همچنین tune2fs(8) اجازه تغییر UUID آن را نمیدهد. این قابلیت استفاده از تنظیمات رمزنگاری تخصصی که از شمارههای اینود و UUID بهره میبرند را امکانپذیر میسازد. توجه داشته باشید که قابلیت encrypt همچنان باید به طور جداگانه فعال شود. قابلیت stable_inodes یک قابلیت سازگاری ("compat") است، بنابراین هستههای قدیمیتر آن را مجاز میدانند. - uninit_bg
-
این قابلیت سیستمفایل ext4 نشان میدهد که توصیفکنندههای گروه بلوکی با استفاده از چکسام محافظت خواهند شد، که باعث میشود mke2fs(8) بتواند سیستمفایل را بدون مقداردهی اولیه تمامی گروههای بلوکی با امنیت ایجاد کند. هسته یک حد بالا از اینودهای استفادهنشده را نگه میدارد و جدولها و بلوکهای اینود را به صورت تنبلانه (lazy) مقداردهی اولیه میکند. این قابلیت زمان بررسی سیستمفایل با e2fsck(8) را سرعت میبخشد، و همچنین زمان مورد نیاز mke2fs(8) برای ایجاد سیستمفایل را کاهش میدهد. - verity
-
پشتیبانی از فایلهای محافظتشده با verity را فعال میکند. فایلهای verity فقطخواندنی هستند و دادههای آنها به صورت شفاف در برابر یک درخت مرکل (Merkle tree) پنهانشده پس از پایان فایل اعتبارسنجی میشوند. با استفاده از هش ریشه درخت مرکل، یک فایل verity را میتوان مستقل از اندازه فایل، به طور کارآمد احراز اصالت کرد.
- این قابلیت بیش از همه برای احراز اصالت فایلهای مهم فقطخواندنی در سیستمفایلهای خواندن-نوشتن مفید است. اگر خود سیستمفایل فقطخواندنی باشد، استفاده از dm-verity برای احراز اصالت کل دستگاه بلوکی ممکن است امنیت بسیار بهتری فراهم کند.
گزینههای سوار کردن (MOUNT OPTIONS)
این بخش گزینههای سوار کردنی را تشریح میکند که مختص ext2، ext3 و ext4 هستند. سایر گزینههای عمومی سوار کردن نیز ممکن است استفاده شوند؛ برای جزئیات به mount(8) مراجعه کنید.
گزینههای سوار کردن برای ext2 (Mount options for ext2)
سیستمفایل `ext2' سیستمفایل استاندارد لینوکس است. از زمان لینوکس ۲.۵.۴۶، برای بیشتر گزینههای سوار کردن، مقدار پیشفرض توسط ابربلوک سیستمفایل تعیین میشود. آنها را با tune2fs(8) تنظیم کنید.
- acl|noacl
- پشتیبانی از فهرستهای کنترل دسترسی پازیکس (POSIX Access Control Lists) یا عدم پشتیبانی. به صفحه راهنمای acl(5) مراجعه کنید.
- bsddf|minixdf
- تعیین
رفتار برای
فراخوانی
سیستمی 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 اضافه کرد.)
- check=none یا nocheck
- در زمان سوار کردن هیچ بررسی انجام نمیشود. این حالت پیشفرض است و سریع است. توصیه میشود گهگاه، برای نمونه در زمان بوت، e2fsck(8) اجرا شود. رفتار غیر پیشفرض پشتیبانی نمیشود (گزینههای check=normal و check=strict حذف شدهاند). توجه داشته باشید که در صورت استفاده از درایور هسته ext4 برای سیستمفایلهای ext2 و ext3، نیازی به پشتیبانی از این گزینههای سوار کردن نیست.
- debug
- چاپ اطلاعات اشکالزدایی در هر بار سوار کردن (یا سوار کردن مجدد).
- errors={continue|remount-ro|panic}
- تعریف رفتار در زمان مواجهه با خطا. (نادیده گرفتن خطاها و صرفاً علامتگذاری سیستمفایل به عنوان دارای خطا و ادامه کار، یا سوار کردن مجدد سیستمفایل به صورت فقطخواندنی، یا وحشت هسته (panic) و متوقف کردن سیستم.) پیشفرض در ابربلوک سیستمفایل تنظیم میشود و با استفاده از tune2fs(8) قابل تغییر است.
- grpid|bsdgroups و nogrpid|sysvgroups
- این گزینهها شناسه گروهی (GID) که یک فایل تازه ایجادشده دریافت میکند را مشخص میکنند. هنگامی که grpid تنظیم شده باشد، فایل شناسه گروه دایرکتوریای که در آن ایجاد شده است را میگیرد؛ در غیر این صورت (پیشفرض) شناسه fsgid فرایند فعلی را دریافت میکند، مگر اینکه دایرکتوری بیت setgid را فعال داشته باشد، که در این صورت شناسه gid را از دایرکتوری والد میگیرد، و اگر خودش نیز یک دایرکتوری باشد بیت setgid آن نیز فعال میشود.
- grpquota|noquota|quota|usrquota
- گزینه سوار کردن usrquota (مشابه quota) پشتیبانی از سهمیه کاربر را روی سیستمفایل فعال میکند. گزینه grpquota پشتیبانی از سهمیه گروه را فعال میکند. برای فعالسازی واقعی و مدیریت سیستم سهمیهبندی، به ابزارهای سهمیهبندی نیاز دارید.
- nouid32
- غیرفعال کردن شناسههای ۳۲ بیتی UID و GID. این گزینه برای سازگاری با هستههای قدیمیتر است که تنها مقادیر ۱۶ بیتی را ذخیره کرده و انتظار دارند.
- oldalloc یا orlov
- استفاده از تخصیصدهنده قدیمی یا تخصیصدهنده Orlov برای اینودهای جدید. پیشفرض Orlov است.
- resgid=n و resuid=n
- سیستمفایل ext2 درصد مشخصی از فضای در دسترس را رزرو میکند (بهطور پیشفرض ۵٪، نگاه کنید به mke2fs(8) و tune2fs(8)). این گزینهها مشخص میکنند چه کسی میتواند از بلوکهای رزروشده استفاده کند (بهطور تقریبی: هر کس که دارای uid مشخصشده باشد یا متعلق به گروه مشخصشده باشد).
- sb=n
- بهجای استفاده از ابربلوک معمولی، از یک ابربلوک جایگزین مشخصشده توسط n استفاده شود. این گزینه معمولاً زمانی استفاده میشود که ابربلوک اصلی آسیب دیده باشد. مکان ابربلوکهای پشتیبان به اندازه بلوک سیستمفایل، تعداد بلوکها در هر گروه و قابلیتهایی مانند sparse_super بستگی دارد.
- ابربلوکهای پشتیبان اضافی را میتوان با استفاده از برنامه mke2fs همراه با گزینه -n برای چاپ مکان وجود ابربلوکها پیدا کرد، به شرطی که به mke2fs آرگومانهایی داده شود که با طرحبندی سیستمفایل همخوانی دارند (مانند اندازه بلوک، بلوکها در هر گروه، sparse_super و غیره).
- شماره بلوک در اینجا از واحدهای ۱ کیلوبایتی استفاده میکند. بنابراین، اگر میخواهید از بلوک منطقی ۳۲۷۶۸ در سیستمفایلی با بلوکهای ۴ کیلوبایتی استفاده کنید، مقدار "sb=131072" را به کار ببرید.
- user_xattr|nouser_xattr
- پشتیبانی از ویژگیهای گسترشیافته "user." (یا عدم پشتیبانی).
گزینههای سوار کردن برای ext3 (Mount options for ext3)
سیستمفایل ext3 نسخهای از سیستمفایل ext2 است که با قابلیت ژورنالبندی تقویت شده است. این سیستمفایل از همان گزینههای ext2 و همچنین موارد اضافی زیر پشتیبانی میکند:
- journal_dev=devnum/journal_path=path
- هنگامی که شمارههای اصلی/فرعی (major/minor) دستگاه ژورنال خارجی تغییر کرده باشد، این گزینهها به کاربر امکان میدهند مکان جدید ژورنال را مشخص کند. دستگاه ژورنال یا از طریق شمارههای اصلی/فرعی جدید کدگذاریشده در devnum شناسایی میشود یا از طریق مسیری به دستگاه.
- norecovery/noload
- هنگام سوار کردن، ژورنال بارگذاری نشود. توجه داشته باشید که اگر سیستمفایل به درستی پیادهسازی و جدا نشده باشد، رد کردن بازپخش ژورنال منجر به ناهمخوانیهایی در سیستمفایل خواهد شد که میتواند مشکلات متعددی ایجاد کند.
- data={journal|ordered|writeback}
- حالت ژورنالبندی برای دادههای فایل را مشخص میکند. متادیتا همیشه ژورنال میشود. برای استفاده از حالتهایی غیر از ordered روی سیستمفایل ریشه، حالت را به عنوان پارامتر بوت به هسته ارسال کنید، مانند rootflags=data=journal.
- journal
- تمام دادهها پیش از نوشته شدن در سیستمفایل اصلی، در ژورنال ثبت میشوند.
- ordered
- این حالت پیشفرض است. تمام دادهها پیش از آنکه متادیتای آنها در ژورنال ثبت شود، مستقیماً در سیستمفایل اصلی نوشته میشوند.
- writeback
- ترتیب دادهها حفظ نمیشود – ممکن است دادهها پس از ثبت متادیتای آنها در ژورنال، در سیستمفایل اصلی نوشته شوند. طبق گزارشها این گزینه بالاترین توان عملیاتی را دارد. این گزینه یکپارچگی داخلی سیستمفایل را تضمین میکند، اما ممکن است پس از کرش و بازیابی ژورنال، دادههای قدیمی در فایلها ظاهر شوند.
- data_err=ignore
- در صورت بروز خطا در بافر داده فایل در حالت ordered، فقط یک پیام خطا چاپ شود.
- data_err=abort
- در صورت بروز خطا در بافر داده فایل در حالت ordered، ژورنال متوقف شود (abort).
- barrier=0 / barrier=1
- استفاده از سدهای نوشتن (write barriers) را در کد jbd غیرفعال / فعال میکند. مقدار barrier=0 غیرفعال و barrier=1 فعال میکند (پیشفرض). این قابلیت همچنین به پشته ورودی/خروجی نیاز دارد که بتواند از سدها پشتیبانی کند، و اگر jbd هنگام نوشتن سد با خطایی روبرو شود، سدها را مجدداً با یک هشدار غیرفعال خواهد کرد. سدهای نوشتن ترتیب صحیح ثبت ژورنالها روی دیسک را تضمین میکنند و استفاده از کشهای ناپایدار نوشتن دیسک را با اندکی کاهش کارایی ایمن میسازند. اگر دیسکهای شما به نحوی دارای باتری پشتیبان هستند، غیرفعال کردن سدها میتواند با حفظ امنیت کارایی را بهبود بخشد.
- commit=nrsec
- آغاز ثبت ژورنال در هر nrsec ثانیه. مقدار پیشفرض ۵ ثانیه است. عدد صفر به معنای مقدار پیشفرض است.
- user_xattr
- فعالسازی ویژگیهای گسترشیافته کاربر (Extended User Attributes). به صفحه راهنمای attr(5) مراجعه کنید.
- jqfmt={vfsold|vfsv0|vfsv1}
- علاوه بر سیستم سهمیهبندی قدیمی (همانند ext2، یعنی jqfmt=vfsold موسوم به سهمیهبندی نسخه ۱)، ext3 از سهمیهبندی ژورنالشده (نسخه ۲ سهمیهبندی) نیز پشتیبانی میکند. مقدار jqfmt=vfsv0 یا jqfmt=vfsv1 سهمیهبندیهای ژورنالشده را فعال میسازد. سهمیهبندی ژورنالشده این مزیت را دارد که حتی پس از کرش سیستم، نیازی به بررسی سهمیه نیست. هنگامی که قابلیت سیستمفایل quota فعال باشد، سهمیهبندی ژورنالشده بهطور خودکار استفاده میشود و این گزینه سوار کردن نادیده گرفته خواهد شد.
- usrjquota=aquota.user|grpjquota=aquota.group
- برای سهمیهبندیهای ژورنالشده (jqfmt=vfsv0 یا jqfmt=vfsv1)، گزینههای سوار کردن usrjquota=aquota.user و grpjquota=aquota.group برای مشخص کردن فایلهای پایگاهداده سهمیه مورد استفاده الزامی هستند. هنگامی که قابلیت سیستمفایل quota فعال باشد، سهمیهبندی ژورنالشده بهطور خودکار استفاده شده و این گزینه نادیده گرفته میشود.
گزینههای سوار کردن برای ext4 (Mount options for ext4)
سیستمفایل 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 | nojournal_checksum
- گزینه journal_checksum اعتبارسنجی چکسام تراکنشهای ژورنال را فعال میکند. این کار به کد بازیابی در e2fsck و هسته اجازه میدهد تا خرابیها در ژورنال را تشخیص دهند. این یک تغییر سازگار است و توسط هستههای قدیمیتر نادیده گرفته میشود.
- journal_async_commit
- بلوک commit میتواند بدون انتظار برای بلوکهای توصیفکننده روی دیسک نوشته شود. در صورت فعال بودن، هستههای قدیمیتر نمیتوانند دستگاه را سوار کنند. این گزینه به طور داخلی 'journal_checksum' را فعال میکند.
- barrier=0 / barrier=1 / barrier / nobarrier
- این گزینههای سوار کردن اثری مشابه با ext3 دارند. گزینههای سوار کردن "barrier" و "nobarrier" برای یکدستی با سایر گزینههای سوار کردن ext4 اضافه شدهاند. سیستمفایل ext4 سدهای نوشتن را بهطور پیشفرض فعال میکند.
- inode_readahead_blks=n
- این پارامتر تنظیمی، حداکثر تعداد بلوکهای جدول اینود را کنترل میکند که الگوریتم پیشخوانی (readahead) جدول اینود ext4 در بافر کش از پیش بخواند. مقدار باید توانی از ۲ باشد. مقدار پیشفرض ۳۲ بلوک است.
- stripe=n
- تعداد بلوکهای سیستمفایل که mballoc تلاش میکند برای اندازه تخصیص و تراز استفاده کند. برای سیستمهای RAID5/6، این باید تعداد دیسکهای داده ضربدر اندازه تکه (chunk) RAID بر حسب بلوکهای سیستمفایل باشد.
- delalloc
- به تعویق انداختن تخصیص بلوک تا زمان نوشتن روی دیسک (write-out).
- nodelalloc
- غیرفعال کردن تخصیص تاخیری. بلوکها زمانی تخصیص مییابند که داده از حافظه کاربر به کش صفحه کپی شود.
- max_batch_time=usec
- حداکثر مدت زمانی که ext4 باید منتظر بماند تا عملیاتهای اضافی سیستمفایل با یک عملیات نوشتن همگام به صورت دستهای ادغام شوند. از آنجا که یک عملیات نوشتن همگام باعث اجبار یک commit و سپس انتظار برای تکمیل I/O میشود، هزینه زیادی ندارد و میتواند یک برد بزرگ در توان عملیاتی باشد، ما مدت کوتاهی صبر میکنیم تا ببینیم آیا تراکنش دیگری میتواند همراه با نوشتن همگام ارسال شود یا خیر. الگوریتم استفادهشده به گونهای طراحی شده است که با اندازهگیری مدت زمانی (بهطور میانگین) که برای تکمیل ثبت یک تراکنش طول میکشد، بهطور خودکار بر اساس سرعت دیسک تنظیم شود. به این زمان "زمان ثبت" (commit time) گفته میشود. اگر زمانی که تراکنش در حال اجرا بوده کمتر از زمان ثبت باشد، ext4 به اندازه زمان ثبت به خواب میرود تا ببیند آیا سایر عملیاتها به تراکنش خواهند پیوست یا خیر. زمان ثبت توسط max_batch_time محدود میشود که مقدار پیشفرض آن ۱۵۰۰۰ میکروثانیه (۱۵ میلیثانیه) است. این بهینهسازی را میتوان با تنظیم max_batch_time روی ۰ بهطور کامل غیرفعال کرد.
- min_batch_time=usec
- این پارامتر حداقل زمان ثبت (همانطور که در بالا توضیح داده شد) را روی min_batch_time تنظیم میکند. پیشفرض آن صفر میکروثانیه است. افزایش این پارامتر ممکن است توان عملیاتی بارهای کاری چندنخی و همگام روی دیسکهای بسیار سریع را بهبود بخشد، هرچند ممکن است تاخیر (latency) را افزایش دهد.
- journal_ioprio=prio
- اولویت I/O (از ۰ تا ۷، که در آن ۰ بالاترین اولویت است) که باید برای عملیاتهای I/O ارسالشده توسط kjournald2 در طول یک عملیات commit استفاده شود. مقدار پیشفرض ۳ است که اندکی اولویت بالاتری نسبت به اولویت I/O پیشفرض دارد.
- abort
- شبیهسازی اثرات فراخوانی ext4_abort() برای مقاصد اشکالزدایی. این گزینه معمولاً هنگام سوار کردن مجدد سیستمفایلی که قبلاً سوار شده است استفاده میشود.
- auto_da_alloc|noauto_da_alloc
- بسیاری از
برنامههای
دارای نقص
هنگام
جایگزینی
فایلهای
موجود از
طریق
الگوهایی
مانند:
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 الگوهای جایگزینی از طریق تغییر نام و جایگزینی از طریق کوتاه کردن را تشخیص میدهد و اجبار میکند که هر بلوک تخصیص تاخیری به گونهای تخصیص یابد که در ثبت ژورنال بعدی، در حالت پیشفرض data=ordered، بلوکهای داده فایل جدید پیش از ثبت عملیات rename() روی دیسک رانده شوند. این کار تقریباً همان سطح تضمینهای ext3 را فراهم میکند و از مشکل "طول صفر" (zero-length) که در صورت کرش سیستم پیش از رانده شدن بلوکهای تخصیص تاخیری به دیسک رخ میدهد جلوگیری میکند.
- noinit_itable
- هیچیک از بلوکهای جدول اینود مقداردهینشده در پسزمینه مقداردهی اولیه نشوند. این قابلیت میتواند توسط دیسکهای نصب استفاده شود تا فرایند نصب در سریعترین زمان ممکن تکمیل شود؛ فرایند مقداردهی اولیه جدول اینود سپس تا زمان سوار شدن بعدی سیستمفایل به تعویق خواهد افتاد.
- init_itable=n
- کد مقداردهی اولیه تنبل itable به میزان n برابر تعداد میلیثانیههایی که برای صفر کردن جدول اینود گروه بلوکی قبلی طول کشید صبر میکند. این کار تاثیر منفی بر کارایی سیستم را در حین مقداردهی اولیه جدول اینود سیستمفایل به حداقل میرساند.
- discard/nodiscard
- کنترل میکند که آیا ext4 هنگام آزادسازی بلوکها باید دستورهای discard/TRIM را به دستگاه بلوکی زیرین ارسال کند یا خیر. این گزینه برای دستگاههای SSD و LUNهای کمحجم/تخصیص پویا (thin-provisioned) مفید است، اما تا زمان انجام آزمایشهای کافی بهطور پیشفرض غیرفعال است.
- block_validity/noblock_validity
- این گزینه امکانات داخل هسته را برای ردیابی بلوکهای متادیتای سیستمفایل در ساختارهای داده داخلی فعال/غیرفعال میکند. این کار به تخصیصدهنده چندبلوکی و سایر روالها اجازه میدهد اکستنتهایی را که ممکن است با بلوکهای متادیتای سیستمفایل همپوشانی داشته باشند سریعاً پیدا کنند. این گزینه برای مقاصد اشکالزدایی در نظر گرفته شده است و از آنجا که بر کارایی تاثیر منفی میگذارد، بهطور پیشفرض غیرفعال است.
- dioread_lock/dioread_nolock
- کنترل میکند که آیا ext4 باید از قفل خواندن DIO استفاده کند یا خیر. اگر گزینه dioread_nolock مشخص شده باشد، ext4 اکستنت مقداردهینشده را قبل از نوشتن بافر تخصیص میدهد و پس از تکمیل IO، اکستنت را به مقداردهیشده تبدیل میکند. این رویکرد به کد ext4 اجازه میدهد از استفاده از قفل دوطرفه (mutex) اینود اجتناب کند، که مقیاسپذیری را در حافظههای با سرعت بالا بهبود میبخشد. با این حال این گزینه با ژورنالبندی دادهها کار نمیکند و گزینه dioread_nolock همراه با هشدار هسته نادیده گرفته میشود. توجه داشته باشید که مسیر کد dioread_nolock تنها برای فایلهای مبتنی بر اکستنت استفاده میشود. به دلیل محدودیتهای این گزینه، بهطور پیشفرض غیرفعال است (یعنی dioread_lock فعال است).
- max_dir_size_kb=n
- اندازه دایرکتوریها را محدود میکند بهطوری که هر تلاشی برای گسترش آنها فراتر از محدودیت مشخصشده بر حسب کیلوبایت منجر به خطای ENOSPC شود. این گزینه در محیطهای با محدودیت حافظه مفید است، جایی که یک دایرکتوری بسیار بزرگ میتواند باعث مشکلات جدی در عملکرد شود یا حتی فرایند کشنده کمبود حافظه (Out Of Memory killer) را تحریک کند. (برای نمونه، اگر فقط ۵۱۲ مگابایت حافظه در دسترس باشد، یک دایرکتوری ۱۷۶ مگابایتی ممکن است عملکرد سیستم را به شدت مختل کند.)
- i_version
- پشتیبانی از نسخه اینود ۶۴ بیتی را فعال میکند. این گزینه بهطور پیشفرض غیرفعال است.
- nombcache
- این گزینه استفاده از mbcache را برای یکسانسازی ویژگیهای گسترشیافته (deduplication) غیرفعال میکند. در سیستمهایی که ویژگیهای گسترشیافته به ندرت یا هرگز بین فایلها به اشتراک گذاشته نمیشوند، استفاده از mbcache برای یکسانسازی، بار محاسباتی غیرضروری اضافه میکند.
- prjquota
- گزینه سوار کردن prjquota پشتیبانی از سهمیه پروژه را روی سیستمفایل فعال میکند. برای فعالسازی واقعی و مدیریت سیستم سهمیهبندی به ابزارهای سهمیهبندی نیاز دارید. این گزینه سوار کردن نیازمند قابلیت سیستمفایل project است.
ویژگیهای فایل (FILE ATTRIBUTES)
سیستمفایلهای ext2، ext3 و ext4 از تنظیم ویژگیهای فایل زیر در سیستمهای لینوکس با استفاده از ابزار chattr(1) پشتیبانی میکنند:
a - فقط الحاق (append only)
A - عدم بهروزرسانی atime
d - عدم پشتیبانگیری با dump
D - بهروزرسانی همگام دایرکتوری
i - تغییرناپذیر (immutable)
S - بهروزرسانی همگام (synchronous updates)
u - غیرقابل حذف (undeletable)
علاوه بر این، سیستمفایلهای ext3 و ext4 از پرچم زیر نیز پشتیبانی میکنند:
j - ژورنالبندی دادهها
در نهایت، سیستمفایل ext4 از پرچم زیر نیز پشتیبانی میکند:
e - قالب اکستنتها (extents format)
برای شرح کامل این پرچمهای ویژگی، لطفاً به صفحه راهنمای chattr(1) مراجعه کنید.
پشتیبانی هسته (KERNEL SUPPORT)
این بخش درایور سیستمفایل (مانند ext2، ext3، ext4) و نسخه هسته بالادستی که یک قابلیت سیستمفایل خاص از آن پشتیبانی شده است را فهرست میکند. توجه داشته باشید که در برخی موارد این قابلیت در نسخههای پیشین هسته نیز وجود داشته اما باگهای جدی و شناختهشدهای داشته است. در موارد دیگر ممکن است این قابلیت همچنان در وضعیت آزمایشی در نظر گرفته شود. در نهایت، توجه داشته باشید که ممکن است برخی توزیعها قابلیتها را به هستههای قدیمیتر بکپورت (backport) کرده باشند؛ بهویژه نسخههای هسته در برخی توزیعهای سازمانی (Enterprise) میتوانند بسیار گمراهکننده باشند.
- 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 (online resizing)
- 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
همچنین ببینید (SEE ALSO)
mke2fs(8), mke2fs.conf(5), e2fsck(8), dumpe2fs(8), tune2fs(8), debugfs(8), mount(8), chattr(1)
| مه ۲۰۲۵ | e2fsprogs |