EXT4(5)

الاسم
ext2 - نظام الملفات الممتد الثاني
ext3 - نظام الملفات الممتد الثالث
ext4 - نظام الملفات الممتد الرابع

الوصف
تعد نظم الملفات الممتدة الثانية والثالثة والرابعة، أو ext2 وext3 وext4 كما تُعرف عادةً، نظم ملفات لينكس التي كانت تاريخيًا نظام الملفات المبدئي للعديد من توزيعات لينكس. وهي نظم ملفات عامة الأغراض صُممت لقابلية التوسع والتوافق الرجعي. على وجه الخصوص، يمكن وصل نظم الملفات التي كانت مخصصة سابقًا للاستخدام مع نظم الملفات ext2 وext3 باستخدام مشغل نظام الملفات ext4، وبالفعل في العديد من توزيعات لينكس الحديثة، ضُبط مشغل نظام الملفات ext4 لمعالجة طلبات الوصل لنظم الملفات ext2 وext3.

ميزات نظام الملفات
يمكن لنظام الملفات المهيأ لـ ext2 أو ext3 أو ext4 أن يتضمن مجموعة مفعّلة من أعلام ميزات نظام الملفات التالية. بعض هذه الميزات لا تدعمها جميع تطبيقات مشغلات نظم الملفات ext2 وext3 وext4، وذلك بناءً على إصدار نواة لينكس المستخدمة. وفي نظم التشغيل الأخرى، مثل GNU/HURD أو FreeBSD، قد تُدعم مجموعة محدودة جدًا من ميزات نظام الملفات في تطبيقاتها لـ ext2.

64bit
    يمكّن نظام الملفات من أن يكون أكبر من 2^32 كتلة. تُعين هذه الميزة آليًا، حسب الحاجة، ولكن قد يكون من المفيد تحديد هذه الميزة صراحةً إذا كان نظام الملفات قد يحتاج إلى تغيير حجمه ليكون أكبر من 2^32 كتلة، حتى لو كان أصغر من هذه العتبة عند إنشائه في الأصل. لاحظ أن بعض النوى الأقدم والإصدارات القديمة من e2fsprogs لن تدعم نظم الملفات التي فُعّلت فيها ميزة ext4 هذه.

bigalloc
    تُفعّل ميزة ext4 هذه تخصيص الكتل العنقودية، بحيث تكون وحدة التخصيص هي قوة للعدد اثنين من الكتل. أي أن كل بت فيما كان يُعرف تقليديًا بخريطة بتات تخصيص الكتل يشير الآن إلى ما إذا كان العنقود مستخدمًا أم لا، حيث يتكون العنقود مبدئيًا من 16 كتلة. يمكن لهذه الميزة تقليل الوقت المستغرق في تخصيص الكتل وتؤدي إلى تجزئة أقل، لا سيما للملفات الكبيرة. يمكن تحديد الحجم باستخدام الخيار mke2fs -C.

    تحذير: لا تزال ميزة bigalloc قيد التطوير، وقد لا تُدعم بالكامل في نواتك أو قد تحتوي على علل مختلفة. يرجى الاطلاع على صفحة الويب http://ext4.wiki.kernel.org/index.php/Bigalloc للتفاصيل. قد تتعارض مع التخصيص المؤجل (راجع خيار الوصل nodelalloc).

    تتطلب هذه الميزة تفعيل ميزة extent.

casefold
    توفر ميزة ext4 هذه دعمًا لترميز المحارف على مستوى نظام الملفات للأدلة التي فُعّل فيها علم casefold (+F). تحافظ هذه الميزة على الأسماء كما هي على القرص، ولكنها تسمح للتطبيقات بالبحث عن ملف في نظام الملفات باستخدام نسخة مكافئة في الترميز لاسم الملف.

dir_index
    استخدم أشجار b المجزأة لتسريع عمليات البحث عن الأسماء في الأدلة الكبيرة. تُدعم هذه الميزة في نظامي الملفات ext3 وext4، ويتجاهلها نظام الملفات ext2.

dir_nlink
    عادةً، يسمح ext4 لعقدة الفهرسة (inode) بألا تحتوي على أكثر من 65,000 وصلة صلبة. ينطبق هذا على الملفات العادية والأدلة على حد سواء، مما يعني أنه لا يمكن وجود أكثر من 64,998 دليلًا فرعيًا في دليل واحد (لأن كل من المدخلين '.' و '..'، بالإضافة إلى مدخل الدليل للدليل في دليله الأصل يُحسب كوصلة صلبة). ترفع هذه الميزة هذا الحد بجعل ext4 يستخدم عدد وصلات بقيمة 1 ليرمز إلى أن عدد الوصلات الصلبة للدليل غير معروف عندما يتجاوز عدد الوصلات الحد الأقصى.

ea_inode
    عادةً، يجب أن تتسع الصفات الممتدة للملف والبيانات الوصفية المرتبطة به داخل عقدة الفهرسة أو كتلة الصفات الممتدة المرتبطة بعقدة الفهرسة. تسمح هذه الميزة بوضع قيمة كل صفة ممتدة في كتل البيانات لعقدة فهرسة منفصلة إذا لزم الأمر، مما يزيد الحد الأقصى لحجم وعدد الصفات الممتدة لكل ملف.

encrypt
    يُفعّل دعم التعمية على مستوى نظام الملفات لكتل البيانات وأسماء الملفات. البيانات الوصفية لعقدة الفهرسة (الأختام الزمنية، حجم الملف، ملكية المستخدم/المجموعة، إلخ) لا تُعمّى.

    تكون هذه الميزة أكثر فائدة في نظم الملفات التي تضم مستخدمين متعددين، أو عندما لا ينبغي تعمية جميع الملفات. وفي العديد من حالات الاستخدام، خاصة في النظم ذات المستخدم الواحد، قد توفر التعمية عند طبقة جهاز الكتل باستخدام dm-crypt أمانًا أفضل بكثير.

ext_attr
    تُفعّل هذه الميزة استخدام الصفات الممتدة. وتُدعم هذه الميزة في ext2 وext3 وext4.

extent
    تسمح ميزة ext4 هذه بتخزين رسم الخرائط لأرقام الكتل المنطقية لعقدة فهرسة معينة إلى الكتل الفيزيائية على جهاز التخزين باستخدام شجرة مدى (extent tree)، وهي بنية بيانات أكثر كفاءة من مخطط الكتل غير المباشر التقليدي المستخدم في نظامي الملفات ext2 وext3. يقلل استخدام شجرة المدى من العبء الإضافي لكتل البيانات الوصفية، ويحسن أداء نظام الملفات، ويقلل الحاجة إلى تشغيل e2fsck(8) على نظام الملفات. (ملاحظة: يُقبل كل من extent و extents كأسماء صالحة لهذه الميزة لأسباب تتعلق بالتوافق التاريخي/الرجعي).

extra_isize
    تحجز ميزة ext4 هذه مقدارًا محددًا من المساحة في كل عقدة فهرسة للبيانات الوصفية الممتدة مثل الأختام الزمنية بالنانو ثانية ووقت إنشاء الملف، حتى لو كانت النواة الحالية لا تحتاج حاليًا إلى حجز هذا القدر من المساحة. وبدون هذه الميزة، ستحجز النواة مقدار المساحة للميزات التي تحتاجها حاليًا، وقد تُستهلك المساحة المتبقية بواسطة الصفات الممتدة.

    لكي تكون هذه الميزة مفيدة، يجب أن يكون حجم عقدة الفهرسة 256 بايت أو أكبر.

filetype
    تُفعّل هذه الميزة تخزين معلومات نوع الملف في مدخلات الأدلة. وتُدعم هذه الميزة في ext2 وext3 وext4.

flex_bg
    تسمح ميزة ext4 هذه بوضع البيانات الوصفية الخاصة بكل مجموعة كتل (خرائط بتات التخصيص وجداول عقد الفهرسة) في أي مكان على وسيط التخزين. بالإضافة إلى ذلك، سيضع mke2fs(8) البيانات الوصفية الخاصة بكل مجموعة كتل معًا بدءًا من مجموعة الكتل الأولى لكل "مجموعة flex_bg". يمكن تحديد حجم مجموعة flex_bg باستخدام الخيار -G.

has_journal
    أنشئ يومية لضمان اتساق نظام الملفات حتى عبر عمليات الإيقاف غير النظيفة. يعادل تعيين ميزة نظام الملفات استخدام الخيار -j مع mke2fs(8) أو tune2fs(8). تُدعم هذه الميزة في ext3 وext4، ويتجاهلها مشغل نظام الملفات ext2.

huge_file
    تسمح ميزة ext4 هذه بأن تكون الملفات أكبر من 2 تيرابايت في الحجم.

inline_data
    اسمح بتخزين البيانات في عقدة الفهرسة ومنطقة الصفات الممتدة.

journal_dev
    تُفعّل هذه الميزة على الكتلة الفائقة (superblock) الموجودة على جهاز يومية خارجي. يجب أن يكون حجم كتلة اليومية الخارجية هو نفسه حجم كتلة نظام الملفات الذي يستخدمها.

    يمكن لنظام الملفات استخدام جهاز اليومية الخارجي عن طريق تحديد الخيار -J device=<external-device> لأمر mke2fs(8) أو tune2fs(8).

large_dir
    تزيد هذه الميزة الحد الأقصى لعدد الملفات لكل دليل عن طريق رفع الحجم الأقصى للأدلة، وبالنسبة لأدلة شجرة b المجزأة (راجع dir_index)، الارتفاع الأقصى لشجرة b المجزأة المستخدمة لتخزين مدخلات الدليل.

large_file
    يُعين علم الميزة هذا آليًا بواسطة النوى الحديثة عند إنشاء ملف أكبر من 2 جيجابايت. لم تكن النوى القديمة جدًا قادرة على التعامل مع الملفات الكبيرة، لذا استُخدم علم الميزة هذا لمنع تلك النوى من وصل نظم ملفات لا يمكنها فهمها.

metadata_csum
    تُفعّل ميزة ext4 هذه فحص مجموع البيانات الوصفية. تخزن هذه الميزة مجموع الفحص لجميع البيانات الوصفية لنظام الملفات (الكتلة الفائقة، وكتل واصفات المجموعات، وخرائط بتات عقد الفهرسة والكتل، والأدلة، وكتل شجرة المدى). تختلف خوارزمية مجموع الفحص المستخدمة لكتل البيانات الوصفية عن تلك المستخدمة لواصفات المجموعات مع ميزة uninit_bg. هاتان الميزتان غير متوافقتين وسيُفضل استخدام metadata_csum بدلاً من uninit_bg.

metadata_csum_seed
    تسمح هذه الميزة لنظام الملفات بتخزين بذرة مجموع فحص البيانات الوصفية في الكتلة الفائقة، مما يسمح للمسؤول بتغيير UUID لنظام الملفات باستخدام ميزة metadata_csum أثناء وصله.

meta_bg
    تسمح ميزة ext4 هذه بتغيير حجم نظم الملفات على الخط دون الحاجة الصريحة لحجز مساحة للنمو في حجم واصفات مجموعات الكتل. يُستخدم هذا المخطط أيضًا لتغيير حجم نظم الملفات الأكبر من 2^32 كتلة. لا يُوصى بتعيين هذه الميزة عند إنشاء نظام الملفات، لأن هذه الطريقة البديلة لتخزين واصفات مجموعات الكتل ستُبطئ الوقت اللازم لوصل نظام الملفات، ويمكن للنوى الأحدث تعيين هذه الميزة آليًا حسب الضرورة عند إجراء تغيير الحجم على الخط ولم تعد هناك مساحة محجوزة متاحة في عقدة فهرسة تغيير الحجم.

mmp
    توفر ميزة ext4 هذه حماية الوصل المتعدد (MMP). تساعد MMP في حماية نظام الملفات من الوصل المتعدد وتكون مفيدة في بيئات التخزين المشتركة.

orphan_file
    تصلح ميزة ext4 هذه عنق زجاجة محتمل لقابلية التوسع في أعباء العمل التي تنفذ عددًا كبيرًا من عمليات اقتطاع أو تمديد الملفات بالتوازي. وهي مدعومة في نوى لينكس بدءًا من الإصدار 5.15، وفي e2fsprogs بدءًا من الإصدار 1.47.0.

project
    توفر ميزة ext4 هذه دعمًا لحصص المشروع. وباستخدام هذه الميزة، ستُدار معرفات المشروع لعقدة الفهرسة عند وصل نظام الملفات.

quota
    أنشئ عقد فهرسة الحصص (عقدة الفهرسة رقم 3 لحصة المستخدم وعقدة الفهرسة رقم 4 لحصة المجموعة) وعينها في الكتلة الفائقة. وباستخدام هذه الميزة، ستُفعّل الحصص آليًا عند وصل نظام الملفات.

    تؤدي إلى جعل ملفات الحصص (أي user.quota و group.quota التي كانت موجودة في تصميم الحصص الأقدم) عقد فهرسة مخفية.

resize_inode
    تشير ميزة نظام الملفات هذه إلى أن المساحة قد حُجزت بحيث يمكن تمديد جدول واصفات مجموعات الكتل أثناء تغيير حجم نظام ملفات موصول. تُنفذ عملية تغيير الحجم على الخط بواسطة النواة، ويحفزها الأمر resize2fs(8). يحاول mke2fs(8) مبدئيًا حجز مساحة كافية ليتسنى لنظام الملفات النمو إلى 1024 ضعف حجمه الأصلي. يمكن تغيير هذا باستخدام خيار resize الممتد.

    تتطلب هذه الميزة تفعيل ميزة sparse_super أو sparse_super2.

sparse_super
    تُعين ميزة نظام الملفات هذه في جميع نظم الملفات الحديثة ext2 وext3 وext4. وهي تشير إلى أن النسخ الاحتياطية للكتلة الفائقة وواصفات مجموعات الكتل موجودة في مجموعات كتل قليلة فقط، وليس فيها جميعًا.

sparse_super2
    تشير هذه الميزة إلى أنه لن يكون هناك سوى كتلتين فائقتين احتياطيتين وواصفي مجموعات كتل على الأكثر. تُخزن مجموعات الكتل المستخدمة لتخزين الكتل الفائقة الاحتياطية وواصفات مجموعات الكتل في الكتلة الفائقة، ولكن عادةً، ستُحدد واحدة في بداية مجموعة الكتل رقم 1، وواحدة في مجموعة الكتل الأخيرة في نظام الملفات. تعد هذه الميزة في الأساس نسخة أكثر تقدمًا من sparse_super وصُممت لإتاحة نسبة مئوية أكبر بكثير من القرص ككتل متجاورة صالحة لملفات البيانات.

stable_inodes
    تُعلم أرقام عقد الفهرسة و UUID لنظام الملفات كمستقرة. لن يسمح resize2fs(8) بتقليص نظام ملفات يحتوي على هذه الميزة، ولن يسمح tune2fs(8) بتغيير UUID الخاص به. تسمح هذه الميزة باستخدام إعدادات تعمية متخصصة تستفيد من أرقام عقد الفهرسة و UUID. لاحظ أن ميزة encrypt لا تزال بحاجة إلى التفعيل بشكل منفصل. تعد stable_inodes ميزة توافقية "compat"، لذا ستسمح بها النوى القديمة.

uninit_bg
    تشير ميزة نظام الملفات ext4 هذه إلى أن واصفات مجموعات الكتل ستُحمى باستخدام مجموع الفحص، مما يجعل من الآمن لأمر mke2fs(8) إنشاء نظام ملفات دون تهيئة جميع مجموعات الكتل. ستحتفظ النواة بحد أقصى لعقد الفهرسة غير المستخدمة، وتهيئ جداول وكتل عقد الفهرسة بشكل كسول. تسرع هذه الميزة الوقت المستغرق لفحص نظام الملفات باستخدام e2fsck(8) وتسرع أيضًا الوقت المطلوب لأمر mke2fs(8) لإنشاء نظام الملفات.

verity
    يُفعّل دعم الملفات المحمية بميزة الحقيقة (verity). تكون ملفات الحقيقة للقراءة فقط، وتُتحقق من بياناتها بشفافية مقابل شجرة Merkle المخفية بعد نهاية الملف. باستخدام تجزئة الجذر لشجرة Merkle، يمكن الاستيثاق من ملف الحقيقة بكفاءة، بصرف النظر عن حجم الملف.

    تكون هذه الميزة أكثر فائدة للاستيثاق من الملفات الهامة المخصصة للقراءة فقط على نظم الملفات القابلة للقراءة والكتابة. وإذا كان نظام الملفات نفسه للقراءة فقط، فإن استخدام dm-verity للاستيثاق من جهاز الكتل بأكمله قد يوفر أمانًا أفضل بكثير.

خيارات الوصل
يصف هذا القسم خيارات الوصل الخاصة بـ ext2 وext3 وext4. ويمكن استخدام خيارات الوصل العامة الأخرى أيضًا؛ راجع mount(8) للتفاصيل.

خيارات الوصل لـ ext2
نظام الملفات ext2 هو نظام ملفات لينكس القياسي. منذ لينكس 2.5.46، يُحدد المبدئي لمعظم خيارات الوصل بواسطة الكتلة الفائقة لنظام الملفات. اضبطها باستخدام tune2fs(8).

acl | noacl
    ادعم قوائم التحكم في الوصول POSIX (أو لا تدعمها). راجع صفحة الدليل acl(5).

bsddf | minixdf
    اضبط السلوك لنداء النظام statfs. يتمثل سلوك minixdf في إرجاع العدد الإجمالي لكتل نظام الملفات في الحقل f_blocks، بينما يتمثل سلوك bsddf (وهو المبدئي) في طرح الكتل الإضافية المستهلكة بواسطة نظام الملفات ext2 وغير المتاحة لتخزين الملفات. وبالتالي

    % mount /k -o minixdf; df /k; umount /k
    نظام الملفات | 1024-blocks | Used | Available | Capacity | Mounted on
    /dev/sda6 | 2630655 | 86954 | 2412169 | 3% | /k

    % mount /k -o bsddf; df /k; umount /k
    نظام الملفات | 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}
    حدد السلوك عند مواجهة خطأ. (إما تجاهل الأخطاء ومجرد تعليم نظام الملفات بأنه يحتوي على أخطاء والمتابعة، أو إعادة وصل نظام الملفات للقراءة فقط، أو الذعر وإيقاف النظام). يُعين المبدئي في الكتلة الفائقة لنظام الملفات، ويمكن تغييره باستخدام tune2fs(8).

grpid | bsdgroups و nogrpid | sysvgroups
    تحدد هذه الخيارات معرف المجموعة الذي يحصل عليه الملف المنشأ حديثًا. عندما يُعين grpid، فإنه يأخذ معرف المجموعة للدليل الذي أُنشئ فيه؛ وإلا (المبدئي) فإنه يأخذ fsgid للعملية الحالية، ما لم يكن الدليل يحتوي على بت setgid معين، وفي هذه الحالة يأخذ gid من الدليل الأصل، ويحصل أيضًا على بت setgid معين إذا كان هو نفسه دليلًا.

grpquota | usrquota | quota | noquota
    يُفعّل خيار الوصل usrquota (نفس quota) دعم حصص المستخدم على نظام الملفات. ويُفعّل grpquota دعم حصص المجموعة. تحتاج إلى أدوات quota(1) المساعدة لتفعيل نظام الحصص وإدارته فعليًا.

nouid32
    يعطّل معرفات المستخدمين (UIDs) والمجموعات (GIDs) ذات 32 بايت. هذا من أجل التوافقية مع النوى الأقدم التي تخزن وتتوقع قيم 16 بايت فقط.

oldalloc | orlov
    استخدم المخصص القديم أو مخصص أورلوف (Orlov) لعقد الفهرسة الجديدة. أورلوف هو المبدئي.

resgid=n and resuid=n
    يحجز نظام الملفات ext2 نسبة معينة من المساحة المتاحة (مبدئيًا 5%، راجع mke2fs(8) و tune2fs(8). تحدد هذه الخيارات من يمكنه استخدام الكتل المحجوزة. (تقريبًا: من لديه uid المحدد، أو ينتمي إلى المجموعة المحددة).

sb=n
    بدلاً من استخدام الكتلة الفائقة العادية، استخدم كتلة فائقة بديلة يحددها n. يُستخدم هذا الخيار عادةً عندما تتعرض الكتلة الفائقة الرئيسة للتلف. يعتمد موقع الكتل الفائقة الاحتياطية على حجم كتلة نظام الملفات، وعدد الكتل لكل مجموعة، وميزات مثل sparse_super.

    يمكن تحديد كتل فائقة احتياطية إضافية باستخدام برنامج mke2fs(8) مع الخيار -n لطباعة مكان وجود الكتل الفائقة، بفرض تزويد mke2fs(8) بوسطاء تتوافق مع تخطيط نظام الملفات (مثل حجم الكتلة، الكتل لكل مجموعة، sparse_super، إلخ).

    يستخدم رقم الكتلة هنا وحدات 1 k. وبالتالي، إذا أردت استخدام الكتلة المنطقية 32768 على نظام ملفات ذي كتل بحجم 4 k، استخدم "sb=131072".

user_xattr | nouser_xattr
    ادعم الصفات الممتدة ".user" (أو لا تدعمها).

خيارات الوصل لـ ext3
نظام الملفات ext3 هو نسخة من نظام الملفات ext2 عُززت باليومية. وهو يدعم نفس الخيارات مثل ext2 بالإضافة إلى الإضافات التالية:

journal_dev=devnum | journal_path=path
    عندما تتغير الأرقام الرئيسة/الفرعية لجهاز اليومية الخارجي، تسمح هذه الخيارات للمستخدم بتحديد موقع اليومية الجديد. يُعرّف جهاز اليومية إما من خلال أرقامه الرئيسة/الفرعية الجديدة المرمزة في devnum، أو عبر مسار إلى الجهاز.

norecovery | noload
    لا تُحمّل اليومية عند الوصل. لاحظ أنه إذا لم يُفصل نظام الملفات بشكل نظيف، فإن تخطي إعادة تشغيل اليومية سيؤدي إلى احتواء نظام الملفات على حالات عدم اتساق قد تؤدي إلى أي عدد من المشاكل.

data={journal|ordered|writeback}
    يحدد وضع اليومية لبيانات الملفات. البيانات الوصفية تُسجل في اليومية دائمًا. لاستخدام أوضاع أخرى غير ordered على نظام الملفات الجذر، مرر الوضع إلى النواة كمعامل إقلاع، مثلًا rootflags=data=journal.

    journal
        تُثبت جميع البيانات في اليومية قبل كتابتها في نظام الملفات الرئيس.

    ordered
        هذا هو الوضع المبدئي. تُجبر جميع البيانات مباشرة إلى نظام الملفات الرئيس قبل تثبيت بياناتها الوصفية في اليومية.

    writeback
        لا يُحافظ على ترتيب البيانات – قد تُكتب البيانات في نظام الملفات الرئيس بعد تثبيت بياناتها الوصفية في اليومية. يُشاع أن هذا الخيار هو الأعلى إنتاجية. وهو يضمن سلامة نظام الملفات الداخلية، ولكنه قد يسمح بظهور بيانات قديمة في الملفات بعد الانهيار واستعادة اليومية.

data_err={abort|ignore}
    إذا حدث خطأ في مخزن بيانات الملف المؤقت في الوضع المرتب (ordered):

    عندما يكون data_err=abort، أجهض اليومية.

    عندما يكون data_err=ignore، مجرد طباعة رسالة خطأ.

barrier={0|1}
    يعطل هذا أو يفعل استخدام حواجز الكتابة في كود jbd. يعطل البارامتر barrier=0، ويفعل barrier=1 (المبدئي). يتطلب هذا أيضًا مكدس إدخال/إخراج يمكنه دعم الحواجز، وإذا واجه jbd خطأً في كتابة الحاجز، فسيعطل الحواجز مرة أخرى مع تحذير. تفرض حواجز الكتابة ترتيبًا صحيحًا لتثبيت اليومية على القرص، مما يجعل استخدام خبيئات كتابة القرص المتطايرة آمنًا، مع بعض التضحية بالأداء. إذا كانت أقراصك مدعومة ببطارية بطريقة أو بأخرى، فإن تعطيل الحواجز قد يحسن الأداء بأمان.

commit=nrsec
    ابدأ تثبيت اليومية كل nrsec من الثواني. القيمة المبدئية هي 5 ثوانٍ. الصفر يعني المبدئي.

user_xattr
    فعّل صفات المستخدم الممتدة. راجع صفحة الدليل attr(5).

jqfmt={vfsold|vfsv0|vfsv1}
    بصرف النظر عن نظام الحصص القديم (كما في ext2، jqfmt=vfsold المعروف بحصة الإصدار 1) يدعم ext3 أيضًا الحصص المدوّنة في اليومية (حصة الإصدار 2). يُفعّل الخيار jqfmt=vfsv0 أو jqfmt=vfsv1 الحصص المدوّنة في اليومية. وتتميز الحصص المدوّنة في اليومية بأنه حتى بعد الانهيار لا يلزم فحص الحصص. وعند تفعيل ميزة نظام الملفات quota، تُستخدم الحصص المدوّنة في اليومية آليًا، ويُتجاهل خيار الوصل هذا.

usrjquota=aquota.user | grpjquota=aquota.group
    للحصص المدوّنة في اليومية (jqfmt=vfsv0 أو jqfmt=vfsv1)، يلزم استخدام خياري الوصل usrjquota=aquota.user و grpjquota=aquota.group لإخبار نظام الحصص بأي ملفات قاعدة بيانات الحصص يجب استخدامها. وعند تفعيل ميزة نظام الملفات quota، تُستخدم الحصص المدوّنة في اليومية آليًا، ويُتجاهل خيار الوصل هذا.

خيارات الوصل لـ 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(8) والنواة باكتشاف الفساد في النواة. هذا التغيير متوافق وستتجاهله النوى الأقدم.

journal_async_commit
    يمكن كتابة كتلة التثبيت على القرص دون انتظار كتل الواصفات. في حال تفعيله، لن تتمكن النوى الأقدم من وصل الجهاز. سيؤدي هذا إلى تفعيل journal_checksum داخليًا.

barrier={0|1} | barrier | nobarrier
    لهذه خيارات الوصل نفس التأثير كما في ext3. أُضيف خيارا الوصل barrier و nobarrier للاتساق مع خيارات وصل ext4 الأخرى.

    يفعل نظام الملفات ext4 حواجز الكتابة مبدئيًا.

inode_readahead_blks=n
    يتحكم معلم الضبط هذا في الحد الأقصى لعدد كتل جدول عقد الفهرسة التي ستقرأها خوارزمية القراءة المسبقة لجدول عقد فهرسة ext4 مسبقًا في خبيئة المخزن المؤقت. يجب أن تكون القيمة قوة للعدد 2. القيمة المبدئية هي 32 كتلة.

stripe=n
    عدد كتل نظام الملفات التي سيتولى mballoc محاولة استخدامها لحجم التخصيص والمحاذاة. بالنسبة لنظم RAID5/6، يجب أن يكون هذا هو عدد أقراص البيانات * حجم قطعة RAID في كتل نظام الملفات.

delalloc
    تأجيل تخصيص الكتل حتى وقت الكتابة الفعلي.

nodelalloc
    عطّل التخصيص المؤجل. تُخصص الكتل عند نسخ البيانات من المستخدم إلى خبيئة الصفحة.

max_batch_time=max_usec
    الحد الأقصى للوقت الذي يجب أن ينتظره ext4 لجمع عمليات نظام الملفات الإضافية معًا في دفعة واحدة مع عملية كتابة متزامنة. ونظرًا لأن عملية الكتابة المتزامنة ستجبر على التثبيت ثم الانتظار لاكتمال الإدخال/الإخراج، فإنها لا تكلف الكثير، ويمكن أن تحقق مكسبًا ضخمًا في الإنتاجية، حيث يُنتظر لفترة قصيرة لمعرفة ما إذا كان بإمكان أي معاملات أخرى الانضمام إلى الكتابة المتزامنة.

    صُممت الخوارزمية المستخدمة للضبط آليًا لسرعة القرص، وذلك عن طريق قياس مقدار الوقت (في المتوسط) المستغرق لإنهاء تثبيت المعاملة. يُطلق على هذا الوقت "وقت التثبيت". وإذا كان الوقت الذي استغرقته المعاملة في العمل أقل من وقت التثبيت، فسيحاول ext4 النوم لوقت التثبيت لمعرفة ما إذا كانت هناك عمليات أخرى ستنضم إلى المعاملة. يُحدد وقت التثبيت بحد أقصى عند max_usec، والذي يكون مبدئيًا 15000 µs (15 ملي ثانية). يمكن إيقاف هذا التحسين تمامًا عن طريق تعيين max_batch_time=0.

min_batch_time=min_usec
    يضبط هذا البارامتر وقت التثبيت (كما هو موصوف أعلاه) ليكون على الأقل min_usec. وهو مبدئيًا صفر ميكروثانية. قد يؤدي زيادة هذا البارامتر إلى تحسين إنتاجية أعباء العمل المتزامنة متعددة الخيوط على الأقراص السريعة جدًا، على حساب زيادة وقت الاستجابة.

journal_ioprio=prio
    أولوية الإدخال/الإخراج (من 0 إلى 7، حيث 0 هي الأولوية الأعلى) التي يجب استخدامها لعمليات الإدخال/الإخراج المقدمة بواسطة kjournald2 أثناء عملية التثبيت. يكون هذا مبدئيًا 3، وهي أولوية أعلى قليلاً من أولوية الإدخال/الإخراج المبدئية.

أحبط
    حاكي تأثيرات استدعاء ext4_abort() لأغراض التنقيح. يُستخدم هذا عادةً أثناء إعادة وصل نظام ملفات موصول بالفعل.

auto_da_alloc | noauto_da_alloc
    لا تستخدم العديد من التطبيقات المعطوبة fsync() عند استبدال الملفات الموجودة عبر أنماط مثل

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

    أو الأسوأ من ذلك

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

    إذا فُعّل الخيار auto_da_alloc، سيكتشف ext4 نمطي الاستبدال عبر إعادة التسمية والاستبدال عبر البتر ويفرض تخصيص أي كتل تخصيص مؤجلة بحيث يُجبر إرسال كتل البيانات للملف الجديد إلى القرص قبل إرسال عملية rename()، وذلك في وضع data=ordered المبدئي عند إيداع الجريدة التالي. يوفر هذا تقريبًا نفس مستوى الضمانات الذي يوفره ext3، ويتجنب مشكلة "الطول الصفري" التي يمكن أن تحدث عندما ينهار النظام قبل إجبار كتل التخصيص المؤجلة إلى القرص.

noinit_itable
    لا تهيئ أي كتل جدول عقد فهرسة غير مهيأة في الخلفية. قد تُستخدم هذه الميزة بواسطة الأقراص المدمجة للتثبيت لكي تكتمل عملية التثبيت بأسرع ما يمكن؛ ومن ثم تؤجل عملية تهيئة جدول عقد الفهرسة حتى المرة القادمة التي يُوصل فيها نظام الملفات.

init_itable=n
    ينتظر رمز تهيئة itable الكسول n من المرات مضروبًا في عدد الملي ثانية التي استغرقها تصفير جدول الآينودات لمجموعة الكتل السابقة. يقلل هذا من الأثر على أداء النظام أثناء تهيئة جدول آينودات نظام الملفات.

discard | nodiscard
    يتحكم في ما إذا كان ينبغي لـ ext4 إصدار أوامر الإهمال/TRIM إلى الجهاز الكتلي الأساسي عند تحرير الكتل. يفيد هذا أجهزة SSD ووحدات LUN خفيفة التخصيص/المخلخلة، ولكنه معطل مبدئيًا حتى يكتمل الاختبار الكافي.

block_validity | noblock_validity
    يفعّل/يعطّل هذا الخيار الميزة المضمنة في النواة لتتبع كتل البيانات الوصفية لنظام الملفات داخل بنيات البيانات الداخلية. يتيح هذا لمخصص الكتل المتعددة والروتينات الأخرى تحديد موقع المديات التي قد تتداخل مع كتل البيانات الوصفية لنظام الملفات بسرعة. يستهدف هذا الخيار أغراض التنقيح، وبما أنه يؤثر سلبًا على الأداء، فإنه معطل مبدئيًا.

dioread_lock | dioread_nolock
    يتحكم في ما إذا كان ينبغي لـ ext4 استخدام قفل قراءة DIO أم لا. إذا حُدد الخيار dioread_nolock، فسيخصص ext4 مدى غير مهيأ قبل كتابة المخزن المؤقت ويحول المدى إلى مهيأ بعد اكتمال الإدخال/الإخراج. يتيح هذا النهج لرمز ext4 تجنب استخدام ميوتمس الآينود، مما يحسن القابلية للتوسع على وسائط التخزين عالية السرعة. ومع ذلك، لا يعمل هذا مع جريدة البيانات وسيُتجاهل الخيار dioread_nolock مع تحذير من النواة. لاحظ أن مسار رمز dioread_nolock يستخدم فقط للملفات القائمة على المديات. ونظرًا للقيود التي ينطوي عليها هذا الخيار، فإنه معطل مبدئيًا (مثل dioread_lock).

max_dir_size_kb=n
    يحد هذا من حجم الأدلة بحيث تتسبب أي محاولة لتوسيعها بما يتجاوز الحد المحدد بالكيلوبايت في حدوث خطأ ENOSPC. يفيد هذا في البيئات محدودة الذاكرة، حيث يمكن أن يتسبب الدليل الكبير جدًا في حدوث مشكلات أداء خطيرة أو حتى استدعاء قاتل نقص الذاكرة. (على سبيل المثال، إذا لم يتوفر سوى 512 MiB من الذاكرة، فقد يؤدي دليل بحجم 176 MiB إلى تقييد أداء النظام بشكل خطير.)

i_version
    يفعّل دعم إصدار آينود 64-بت. هذا الخيار معطل مبدئيًا.

nombcache
    يعطّل هذا الخيار استخدام mbcache لإلغاء تكرار السمات الممتدة. في الأنظمة التي نادرًا ما تُتشارك فيها السمات الممتدة بين الملفات أو لا تُتشارك أبدًا، يضيف استخدام mbcache لإلغاء التكرار عبئًا حسابيًا غير ضروري.

prjquota
    يفعّل هذا الخيار دعم حصص المشروع على نظام الملفات. تحتاج إلى أدوات quota(1) لتفعيل نظام الحصص وإدارته فعليًا. يتطلب خيار الوصل هذا ميزة نظام الملفات project.

سمات الملف
تدعم أنظمة الملفات ext2 و ext3 و ext4 ضبط سمات الملفات التالية على أنظمة لينكس باستخدام أداة chattr(1):

    a - إلحاق فقط

    A - لا تحديثات لـ atime

    d - لا تفريغ

    D - تحديثات الأدلة المتزامنة

    i - غير قابل للتغيير

    S - تحديثات متزامنة

    u - غير قابل للحذف

بالإضافة إلى ذلك، يدعم نظاما الملفات ext3 و ext4 العلامة التالية:

    j - جريدة البيانات

أخيرًا، يدعم نظام الملفات ext4 أيضًا العلامة التالية:

    e - تنسيق المديات

للحصول على أوصاف لعلامات السمات هذه، يرجى الرجوع إلى صفحة دليل 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
fast_commit | ext4 | 5.10
orphan_file | ext4 | 5.15

انظر أيضًا
mke2fs(8), mke2fs.conf(5), e2fsck(8), dumpe2fs(8), tune2fs(8), debugfs(8), mount(8), chattr(1)

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.