| umount(2) | System Calls Manual | umount(2) |
الاسم¶
umount, umount2 - إلغاء وصل نظام الملفات
المكتبة¶
مكتبة سي المعيارية (libc، -lc)
موجز¶
#include <sys/mount.h>
int umount(const char *target); int umount2(const char *target, int flags);
الوصف¶
umount() و umount2() يزيلان تعلق (أعلى) نظام الملفات الموصول على target.
الامتياز المناسب (لينكس: القدرة CAP_SYS_ADMIN) مطلوب لإلغاء وصل أنظمة الملفات.
أضاف لينكس 2.1.116 استدعاء النظام umount2()، الذي، مثل umount()، يلغي وصل هدف، لكن يسمح بإشارات flags إضافية تتحكم في سلوك العملية:
- MNT_FORCE (منذ لينكس 2.1.116)
- يطلب من نظام الملفات إحباط الطلبات المعلقة قبل محاولة إلغاء الوصل. قد يسمح هذا بإكمال إلغاء الوصل دون انتظار خادم غير قابل للوصول، لكن قد يسبب فقدان بيانات. إذا، بعد إحباط الطلبات، لا تزال بعض العمليات تحتوي على مراجع نشطة لنظام الملفات، سيفشل إلغاء الوصل. اعتبارًا من لينكس 4.12، MNT_FORCE مدعوم فقط على أنظمة الملفات التالية: 9p (منذ لينكس 2.6.16)، ceph (منذ لينكس 2.6.34)، cifs (منذ لينكس 2.6.12)، fuse (منذ لينكس 2.6.16)، lustre (منذ لينكس 3.11)، و NFS (منذ لينكس 2.1.116).
- MNT_DETACH (منذ لينكس 2.4.11)
- ينفذ إلغاء وصل كسول: يجعل الوصلة غير متاحة للوصولات الجديدة، يفصل فورًا نظام الملفات وجميع أنظمة الملفات الموصولة تحته عن بعضها البعض وعن جدول الوصلات، وينفذ فعليًا إلغاء الوصل عندما تتوقف الوصلة عن الانشغال.
- MNT_EXPIRE (منذ لينكس 2.6.8)
- يضع علامة على الوصلة كمنتهية الصلاحية. إذا كانت الوصلة غير مستخدمة حاليًا، فإن استدعاء أولي لـ umount2() بهذه الإشارة يفشل مع الخطأ EAGAIN، لكن يضع علامة على الوصلة كمنتهية الصلاحية. تبقى الوصلة منتهية الصلاحية طالما لم يتم الوصول إليها بواسطة أي عملية. استدعاء ثانٍ لـ umount2() يحدد MNT_EXPIRE يلغي وصل وصلة منتهية الصلاحية. لا يمكن تحديد هذه الإشارة مع MNT_FORCE أو MNT_DETACH.
- UMOUNT_NOFOLLOW (منذ لينكس 2.6.34)
- لا يتبع target إذا كان رابطًا رمزيًا. تسمح هذه الإشارة بتجنب مشاكل أمنية في برامج set-user-ID-root التي تسمح للمستخدمين غير المميزين بإلغاء وصل أنظمة الملفات.
قيمة الإرجاع¶
عند النجاح، يُعاد الصفر. وعند حدوث خطأ، يُعاد الرقم -1، ويُضبط errno للإشارة إلى الخطأ.
الأخطاء¶
قيم الخطأ الواردة أدناه ناتجة عن أخطاء مستقلة عن نوع نظام الملفات. قد يكون لكل نوع نظام ملفات أخطاؤه الخاصة وسلوكه الخاص. انظر كود مصدر نواة لينكس للتفاصيل.
- EAGAIN
- استدعاء لـ umount2() يحدد MNT_EXPIRE وضع علامة بنجاح على نظام ملفات غير مشغول كمنتهي الصلاحية.
- EBUSY
- لا يمكن إلغاء وصل target لأنه مشغول.
- EFAULT
- يشير target إلى خارج مساحة عنوان المستخدم.
- EINVAL
- target ليس نقطة وصل.
- EINVAL
- target مقفل؛ انظر mount_namespaces(7).
- EINVAL
- تم استدعاء umount2() مع MNT_EXPIRE وإما MNT_DETACH أو MNT_FORCE.
- EINVAL (منذ لينكس 2.6.34)
- تم استدعاء umount2() بقيمة إشارة غير صالحة في flags.
- ENAMETOOLONG
- كان اسم المسار أطول من MAXPATHLEN.
- ENOENT
- كان اسم المسار فارغاً أو احتوى على مكون غير موجود.
- ENOMEM
- لم تُخصص النواة صفحة خالية لنسخ أسماء الملفات أو البيانات إليها.
- EPERM
- لا يملك المستدعي الصلاحيات المطلوبة.
المعايير¶
لينكس.
التاريخ¶
MNT_DETACH و MNT_EXPIRE متاحان منذ glibc 2.11.
تم استدعاء الدالة الأصلية umount() كـ umount(device) وكانت تعيد ENOTBLK عند استدعائها بشيء غير جهاز كتلة. في لينكس 0.98p4، تمت إضافة استدعاء umount(dir)، لدعم الأجهزة المجهولة. في لينكس 2.3.99-pre7، تمت إزالة استدعاء umount(device)، تاركًا فقط umount(dir) (لأن الأجهزة يمكن وصلها الآن في أكثر من مكان، لذا تحديد الجهاز لا يكفي).
ملاحظات¶
umount() والوصلات المشتركة¶
تتسبب الوصلات المشتركة في إعادة توجيه أي نشاط وصل على وصلة، بما في ذلك عمليات umount()، إلى كل وصلة مشتركة في مجموعة النظراء وكل وصلة تابعة لتلك المجموعة. يعني هذا أن umount() لأي نظير في مجموعة وصلات مشتركة سيؤدي إلى إلغاء وصل جميع نظرائه وجميع توابعهم أيضًا.
يمكن أن يكون هذا الانتشار لنشاط إلغاء الوصل مفاجئًا بشكل خاص على الأنظمة حيث تكون كل وصلة مشتركة مبدئيًا. على هذه الأنظمة، وصل ربط متكرر للدليل الجذر لنظام الملفات إلى دليل فرعي ثم إلغاء وصل ذلك الدليل الفرعي لاحقًا باستخدام MNT_DETACH سيؤدي إلى إلغاء وصل كل وصلة في مساحة اسم الوصلة بشكل كسول.
لضمان عدم انتشار umount() بهذه الطريقة، يمكن إعادة وصل الوصلة باستخدام استدعاء mount(2) مع وسيطة mount_flags تتضمن كلاً من MS_REC و MS_PRIVATE قبل استدعاء umount().
انظر أيضًا¶
mount(2), mount_namespaces(7), path_resolution(7), mount(8), umount(8)
ترجمة¶
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.
| 8 فبراير 2026 | صفحات دليل لينكس 6.18 |