UMOUNT(8)

الاسم
umount - افصل أنظمة الملفات

موجز

umount -a [-dflnrv] [-t fstype] [-O خيار...]

umount [-dflnrv] {دليل|جهاز}

umount -h|-V

الوصف

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

لاحظ أنه لا يمكن فصل نظام ملفات عندما يكون 'مشغولاً' - على سبيل المثال، عند وجود ملفات مفتوحة عليه، أو عندما يكون لدى عملية ما دليل عمل هناك، أو عند استخدام ملف تبديل عليه. العملية المسببة قد تكون حتى umount ذاته - فهو يفتح libc، و libc بدورها قد تفتح ملفات المحليات مثلاً. يتجنب الفصل الكسول هذه المشكلة، لكنه قد يؤدي إلى مشاكل أخرى. انظر وصف --lazy أدناه.

الخيارات

-a، --all
    تُفصل جميع أنظمة الملفات الموصوفة في /proc/self/mountinfo (أو في /etc/mtab المهجور)، باستثناء أنظمة الملفات proc و devfs و devpts و sysfs و rpc_pipefs و nfsd. يمكن استبدال قائمة أنظمة الملفات هذه بخيار umount المسمى --types.

-A، --all-targets
    فصل جميع نقاط الوصل في مساحة أسماء الوصل الحالية لنظام الملفات المحدد. يمكن تحديد نظام الملفات بواسطة إحدى نقاط الوصل أو اسم الجهاز (أو UUID، إلخ). عند استخدام هذا الخيار مع --recursive، تُفصل جميع عمليات الوصل المتداخلة داخل نظام الملفات بشكل تكراري. يُدعم هذا الخيار فقط في الأنظمة التي يكون فيها /etc/mtab رابطاً رمزياً إلى /proc/mounts.

-c، --no-canonicalize
    لا تجعل المسارات في شكلها القياسي. تعتمد حَوْلَة المسارات إلى الشكل القياسي على استدعاءات النظام stat(2) و readlink(2). قد تتعلق استدعاءات النظام هذه في بعض الحالات (على سبيل المثال في NFS إذا كان الخادم غير متاح). يجب استخدام الخيار مع المسار القياسي لنقطة الوصل.

    يُتجاهل هذا الخيار بصمت بواسطة umount للمستخدمين غير الجذر (non-root).

    لمزيد من التفاصيل حول هذا الخيار، راجع صفحة دليل mount(8). لاحظ أن umount لا يمرر هذا الخيار إلى المساعدات من النوع /sbin/umount.نوع.

-d، --detach-loop
    عندما يكون الجهاز الذي فُصل هو جهاز حلقي (loop device)، حرر أيضًا هذا الجهاز الحلقي. هذا الخيار غير ضروري للأجهزة المهيأة بواسطة mount(8)، ففي هذه الحالة تكون وظيفة "التنظيف الآلي" (autoclear) مفعلة بشكل مبدئي.

--fake
    يؤدي إلى تنفيذ كل شيء باستثناء استدعاء النظام الفعلي أو تنفيذ مساعد umount؛ وهذا 'يُحاكي' فصل نظام الملفات. يمكن استخدامه لإزالة الإدخالات من /etc/mtab المهجور التي فُصلت سابقاً باستخدام الخيار -n.

-f، --force
    فرض الفصل (في حالة نظام NFS لا يمكن الوصول إليه).

    لاحظ أن هذا الخيار لا يضمن عدم تعليق أمر umount. يوصى بشدة باستخدام مسارات مطلقة دون روابط رمزية لتجنب استدعاءات النظام readlink(2) و stat(2) غير المرغوب فيها على NFS لا يمكن الوصول إليه في umount.

-i، --internal-only
    عدم استدعاء المساعد /sbin/umount.نظام_ملفات حتى لو كان موجوداً. يُستدعى برنامج المساعد هذا مبدئياً في حال وجوده.

-l، --lazy
    فصل كسول. افصل نظام الملفات عن هيكلية الملفات الآن، ونظف جميع المراجع لهذا النظام فور توقفه عن كونه مشغولاً.

    يُتوقع إعادة تشغيل النظام في المستقبل القريب إذا كنت ستستخدم هذا الخيار لنظام ملفات شبكي أو نظام ملفات محلي مع عمليات وصل فرعية. حالة الاستخدام الموصى بها لـ umount -l هي منع التعليق عند إيقاف التشغيل بسبب مشاركة شبكية لا يمكن الوصول إليها حيث سيعلق umount العادي بسبب تعطل الخادم أو انقسام الشبكة. لن تكون إعادة وصل المشاركة ممكنة.

-N، --namespace ns
    تنفيذ umount في مساحة أسماء الوصل المحددة بواسطة ns. يكون ns إما PID لعملية تعمل في مساحة الأسماء تلك أو ملفاً خاصاً يمثل مساحة الأسماء تلك.

    ينتقل umount إلى مساحة الأسماء عندما يقرأ /etc/fstab، ويكتب /etc/mtab (أو يكتب في /run/mount) ويستدعي استدعاء النظام umount(2)، وإلا فإنه يعمل في مساحة الأسماء الأصلية. وهذا يعني أن مساحة أسماء الوصل المستهدفة لا يجب أن تحتوي على أي مكتبات أو متطلبات أخرى ضرورية لتنفيذ الأمر umount(2).

    انظر mount_namespaces(7) لمزيد من المعلومات.

-n، --no-mtab
    الفصل دون الكتابة في /etc/mtab.

-O، --test-opts خيار...
    فصل فقط أنظمة الملفات التي لديها الخيار المحدد مضبوطاً في /etc/fstab. يمكن تحديد أكثر من خيار واحد في قائمة مفصولة بفواصل. يمكن بادئة كل خيار بكلمة no للإشارة إلى أنه لا ينبغي اتخاذ أي إجراء لهذا الخيار.

-q، --quiet
    كتم رسائل الخطأ "غير موصول".

-R، --recursive
    فصل كل دليل محدد بشكل تكراري. سيتوقف التكرار لكل دليل إذا فشلت أي عملية فصل في السلسلة لأي سبب. تُحدد العلاقة بين نقاط الوصل بواسطة إدخالات /proc/self/mountinfo. يجب تحديد نظام الملفات بواسطة مسار نقطة الوصل؛ الفصل التكراري بواسطة اسم الجهاز (أو UUID) غير متاح. منذ الإصدار 2.37، يفصل أيضاً جميع أنظمة الملفات الموصولة فوقياً (أنظمة ملفات متعددة على نفس نقطة الوصل).

-r، --read-only
    عند فشل الفصل، تُحاول إعادة وصل نظام الملفات للقراءة فقط.

-t، --types نوع...
    الإشارة إلى أن الإجراءات يجب أن تُتخذ فقط على أنظمة ملفات من نوع المحدد. يمكن تحديد أكثر من نوع في قائمة مفصولة بفاصلة. يمكن وضع البادئة no قبل قائمة أنواع أنظمة الملفات للإشارة إلى عدم اتخاذ أي إجراء لجميع الأنواع المذكورة. لاحظ أن umount يقرأ معلومات حول أنظمة الملفات الموصولة من النواة (/proc/mounts) وقد تختلف أسماء أنظمة الملفات عن الأسماء المستخدمة في /etc/fstab (على سبيل المثال، "nfs4" مقابل "nfs").

-v، --verbose
    الوضع المسهب.

-h، --help
    اعرض نص المساعدة ثم اخرج.

-V، --version
    اعرض الإصدار واخرج.

عمليات فصل لغير المستخدم الخارق

عادةً، يمكن للمستخدم الخارق فقط فصل أنظمة الملفات. ومع ذلك، عندما يحتوي fstab على خيار user في سطر ما، يمكن لأي شخص فصل نظام الملفات المقابل. لمزيد من التفاصيل، انظر صفحة الدليل mount(8).

منذ الإصدار 2.34 يمكن استخدام الأمر umount لإجراء عملية الفصل أيضًا لأنظمة ملفات fuse إذا كان جدول وصل النواة يحتوي على معرف المستخدم. في هذه الحالة لا يلزم خيار الوصل user= في fstab.

منذ الإصدار 2.35 لا يخرج الأمر umount عندما تكون صلاحيات المستخدم غير كافية حسب قواعد أمان libmount الداخلية. بل يسقط صلاحيات suid ويستمر كمستخدم عادي غير جذري (non-root). يمكن استخدام هذا لدعم حالات الاستخدام التي لا تتطلب صلاحيات الجذر (مثل أنظمة ملفات fuse، ومساحات أسماء المستخدمين، إلخ).

جهاز الحلقة (LOOP DEVICE)

سيفصل الأمر umount آليًا جهاز الحلقة الذي تم تهيئته سابقًا بواسطة الأمر mount(8) بشكل مستقل عن /etc/mtab.

في هذه الحالة، يُهيأ الجهاز بعلامة "autoclear" (انظر مخرجات losetup(8) لمزيد من التفاصيل)، وإلا فمن الضروري استخدام الخيار --detach-loop أو استدعاء losetup -d جهاز. ميزة التنظيف الآلي (autoclear) متاحة منذ لينكس 2.6.25.

لاحظ أنه منذ إصدار لينكس 3.7 تستخدم النواة "تدمير الجهاز الكسول". حيث يقوم النظام فقط بوضع علامة التنظيف الآلي على جهاز الحلقة ويدمره لاحقًا. إذا كنت بحاجة إلى انتظار الإزالة الكاملة لجهاز الحلقة، فاستدعِ udevadm settle بعد umount.

حالة الخروج

umount له قيم حالة الخروج التالية (يمكن دمج البتات باستخدام OR):

0
    نجاح

1
    استدعاء غير صحيح أو أذونات غير كافية

2
    خطأ في النظام (نفاذ الذاكرة، تعذر التشعب، لا يوجد المزيد من أجهزة loop)

4
    خطأ برمجي داخلي في وصل

8
    مقاطعة من قبل المستخدم

16
    مشاكل في كتابة أو قفل /etc/mtab

32
    فشل الوصل

64
    نَجَحَت بعض عمليات الفصل

    يعيد الأمر umount -a القيمة 0 (نجاح الكل)، أو 32 (فشل الكل)، أو 64 (فشل البعض ونجاح البعض).

126
    فشل تنفيذ مساعد الوصل الخارجي ‎/sbin/umount.<type>‎ (منذ util-linux v2.41)

المساعدات الخارجية

صيغة مساعدي الفصل الخارجيين هي:

    umount.suffix {دليل|‎جهاز} [-flnrv] [-N مساحة_أسماء] [-t نوع.نوع_فرعي]

حيث suffix هو نوع نظام الملفات (أو القيمة من علامة uhelper= أو helper= في ملف mtab). يمكن استخدام الخيار -t لأنظمة الملفات التي تدعم الأنواع الفرعية. على سبيل المثال:

    umount.fuse -t fuse.sshfs

يمكن أن تظهر علامة uhelper=شيء_ما (مساعد غير ذي صلاحيات) في ملف /etc/mtab عندما يحتاج المستخدمون العاديون إلى التمكن من فصل نقطة وصل غير معرفة في /etc/fstab (على سبيل المثال لجهاز وُصل بواسطة udisks(1)).

ستقوم علامة helper=نوع في ملف mtab بإعادة توجيه جميع طلبات الفصل إلى المساعد /sbin/umount.نوع بغض النظر عن معرف المستخدم UID.

لاحظ أن /etc/mtab مهجور حاليًا ويتم صيانة helper= وخيارات الوصل الأخرى في مساحة المستخدم بواسطة libmount.

تُعاد قيمة حالة خروج المساعد كحالة خروج لـ umount(8). تُستخدم القيمة 126 إذا وُجد برنامج مساعد الوصل ولكن فشل execl(3).

البيئة

LIBMOUNT_FSTAB=<مسار>
    يتجاوز الموقع المبدئي لملف fstab (يُتجاهل في حالة suid)

LIBMOUNT_DEBUG=all
    يُفعّل مخرجات تنقيح libmount

الملفات

/etc/mtab
    جدول أنظمة الملفات الموصولة (مهجور وعادة ما يُستبدل بوصلة رمزية إلى /proc/mounts)

/etc/fstab
    جدول أنظمة الملفات المعروفة

/proc/self/mountinfo
    جدول أنظمة الملفات الموصولة ولّدته النواة.

تاريخ

ظهر الأمر umount في الإصدار 6 من يونكس AT&T.

انظر أيضاً

umount(2)، losetup(8)، mount_namespaces(7)، mount(8)

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

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

التوفر

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