FSTAB(5)

الاسم
fstab - معلومات ثابتة حول أنظمة الملفات

موجز

/etc/fstab

الوصف

يحتوي الملف fstab على معلومات وصفية حول أنظمة الملفات التي يمكن للحاسوب وصلها. يُقرأ fstab بواسطة البرامج فقط، ولا يُكتب؛ وتقع مسؤولية إنشاء هذا الملف وصيانته بشكل صحيح على عاتق مدير النظام. إن ترتيب السجلات في fstab مهم لأن fsck(8)، و mount(8)، و umount(8) يمرون بشكل تسلسلي عبر fstab لأداء مهامهم.

لا يُقرأ الملف بواسطة mount(8) فحسب، بل يُستخدم غالبًا بواسطة العديد من الأدوات والخدمات الأخرى، وقد تتطلب الوظيفة الصحيحة خطوات إضافية. على سبيل المثال، في الأنظمة القائمة على systemd، يوصى باستخدام systemctl daemon-reload بعد تعديل fstab.

راجع صفحة الدليل لـ swapon(8) للحصول على تفاصيل حول ضبط منطقة التبديل في fstab.

يُوصَف كل نظام ملفات في سطر منفصل، مع فصل الحقول بعلامات جدولة أو مسافات. يُقسّم السطر إلى حقول قبل تحليله. وهذا يعني أن أي مسافات أو علامات جدولة داخل الحقول يجب الهروب منها باستخدام \040 أو \011، حتى داخل السلاسل المقتبسة (مثل LABEL="foo\040bar").

الأسطر التي تبدأ بـ '#' هي تعليقات. تُتجاهل الأسطر الفارغة.

فيما يلي مثال نموذجي لمدخلة fstab:

    LABEL=t-home2   /home      ext4    defaults,auto_da_alloc      0  2

  الحقل الأول (fs_spec).

يصف هذا الحقل الجهاز الكتلي الخاص، أو نظام ملفات بعيد أو صورة نظام ملفات لجهاز loop ليتم وصله أو ملف تبديل أو جهاز تبديل ليتم تمكينه.

بالنسبة لعمليات الوصل العادية، سيحتوي (رابطًا إلى) عقدة جهاز كتلي خاص (كما أُنشئت بواسطة mknod(2)) للجهاز المراد وصله، مثل /dev/cdrom أو /dev/sdb7. بالنسبة لوصلات NFS، هذا الحقل هو <host>:<dir>، مثل knuth.aeb.nl:/. بالنسبة لأنظمة الملفات التي لا تحتوي على مساحة تخزين، يمكن استخدام أي سلسلة نصية، وستظهر في مخرجات df(1)، على سبيل المثال. الاستخدام النموذجي هو proc لـ procfs؛ و mem أو none أو tmpfs لـ tmpfs. أنظمة الملفات الخاصة الأخرى، مثل udev و sysfs، لا تُدرج عادةً في fstab.

يمكن إعطاء LABEL=<label> أو UUID=<uuid> بدلاً من اسم الجهاز. هذه هي الطريقة الموصى بها، حيث أن أسماء الأجهزة غالبًا ما تكون ناتجة عن ترتيب اكتشاف العتاد، ويمكن أن تتغير عند إضافة أقراص أخرى أو إزالتها. على سبيل المثال، 'LABEL=Boot' أو 'UUID=3e6be9de-8139-11d1-9106-a43f08d823a6'. (استخدم أداة خاصة بنظام الملفات مثل e2label(8) أو xfs_admin(8) أو fatlabel(8) لضبط اللصائق على أنظمة الملفات).

من الممكن أيضًا استخدام PARTUUID= و PARTLABEL=. معرفات الأقسام هذه متاحة على سبيل المثال لجدول تقسيم GUID ‏(GPT).

راجع mount(8) أو blkid(8) أو lsblk(8) لمزيد من التفاصيل حول معرفات الأجهزة.

لاحظ أن mount(8) يستخدم معرفات UUID كسلاسل نصية. يجب أن يعتمد التمثيل النصي لـ UUID على أحرف صغيرة. ولكن عند تحديد معرف وحدة التخزين لأنظمة ملفات FAT أو NTFS، تُستخدم أحرف كبيرة (مثل UUID="A40D-85E7" أو UUID="61DB7756DB7779B3").

  الحقل الثاني (fs_file).

يصف هذا الحقل نقطة الوصل (الهدف) لنظام ملفات. بالنسبة لمنطقة التبديل، يجب تحديد هذا الحقل كـ none. إذا كان اسم نقطة الوصل يحتوي على مسافات أو علامات جدولة، فيمكن الهروب منها كـ \040 و \011 على التوالي.

  الحقل الثالث (fs_vfstype).

يصف هذا الحقل نوع نظام ملفات. يدعم لينكس العديد من أنواع أنظمة الملفات: ext4، و xfs، و btrfs، و f2fs، و vfat، و ntfs، و hfsplus، و tmpfs، و sysfs، و proc، و iso9660، و udf، و squashfs، و nfs، و cifs، وغيرها الكثير. لمزيد من التفاصيل، راجع mount(8).

تشير المدخلة swap إلى ملف أو قسم ليُستخدم للتبديل، قارن swapon(8). تعد المدخلة none مفيدة لعمليات الوصل من النوع bind أو move.

يمكن تحديد أكثر من نوع في قائمة مفصولة بفاصلة.

يدعم mount(8) و umount(8) الأنواع الفرعية لنظام الملفات. يُعرّف النوع الفرعي باللاحقة '.subtype'. على سبيل المثال 'fuse.sshfs'. يُوصى باستخدام تدوين النوع الفرعي بدلاً من إضافة أي بادئة إلى الحقل الأول في fstab (على سبيل المثال 'sshfs#example.com' مهجور).

  الحقل الرابع (fs_mntops).

يصف هذا الحقل خيارات الوصل المرتبطة بنظام ملفات.

تُنسق كقائمة خيارات مفصولة بفاصلة وهي اختيارية لـ mount(8) أو swapon(8). العرف المتبع هو استخدام الكلمة المفتاحية "defaults" هناك على الأقل.

تحتوي عادةً على نوع الوصل (ro أو rw، المبدئي هو rw)، بالإضافة إلى أي خيارات إضافية مناسبة لنوع نظام الملفات (بما في ذلك خيارات ضبط الأداء). للتفاصيل، انظر mount(8) أو swapon(8).

خيارات نظام ملفات الأساسية المستقلة هي:

defaults
    استخدام الخيارات المبدئية. يعتمد المبدئي على النواة ونظام الملفات. لا يملك mount(8) أي مجموعة خيارات مبدئية مضمنة برمجياً. المبدئي في النواة عادة ما يكون rw و suid و dev و exec و auto و nouser و async.

noauto
    عدم الوصل عند إعطاء mount -a (مثلاً، عند وقت الإقلاع)

user
    اسمح للمستخدم بالوصل

owner
    اسمح لمالك الجهاز بالوصل

comment
    أو x-<name> للاستخدام بواسطة البرامج التي تصون fstab

nofail
    لا تبلغ عن أخطاء لهذا الجهاز إذا لم يكن موجوداً.

  الحقل الخامس (fs_freq).

يُستخدم هذا الحقل بواسطة dump(8) لتحديد أي أنظمة الملفات التي تحتاج إلى تفريغ. القيمة المبدئية هي صفر (لا تفرغ) إذا لم يكن موجوداً.

  الحقل السادس (fs_passno).

يُستخدم هذا الحقل بواسطة fsck(8) لتحديد الترتيب الذي تُجرى به فحوصات نظام الملفات عند وقت الإقلاع. يجب تحديد نظام ملفات الجذر بـ fs_passno قيمته 1. أما أنظمة الملفات الأخرى فيجب أن تأخذ fs_passno قيمته 2. تُفحص أنظمة الملفات داخل القرص بالتسلسل، ولكن تُفحص أنظمة الملفات على أقراص مختلفة في نفس الوقت للاستفادة من التوازي المتاح في العتاد. وتكون القيمة المبدئية هي الصفر (عدم فحص نظام الملفات) إذا لم يكن موجودًا.

الملفات

/etc/fstab، <fstab.h>

ملاحظات

الطريقة الصحيحة لقراءة السجلات من fstab هي استخدام الروتينات getmntent(3) أو libmount.

الكلمة المفتاحية ignore كنوع لنظام الملفات (الحقل الثالث) لم تعد متاحة من قِبل أداة الوصل المعتمدة حصريًا على libmount (منذ util-linux v2.22).

يصف هذا المستند معالجة fstab بواسطة util-linux و libmount. بالنسبة لـ systemd، اقرأ وثائق systemd. توجد فروق طفيفة.

تاريخ

ظهر سلف تنسيق ملف fstab هذا في 4.0BSD.

انظر أيضاً

getmntent(3)، fs(5)، findmnt(8)، mount(8)، swapon(8)

التبليغ عن الأخطاء

لتقارير العِلل، استخدم

التوفر

fstab جزء من حزمة util-linux التي يمكن تنزيلها من