umount - فك ربط أنظمة الملفات
ملخص
umount -a [-dflnrv] [-t fstype] [-O option...]
umount [-dflnrv] {directory|device}
umount -h|-V
الوصف
يقوم الأمر umount بإلغاء ربط أنظمة الملفات المحددة من التسلسل الهرمي للملفات. يتم تحديد نظام الملفات عن طريق إعطاء الدليل الذي تم تركيبه فيه. يمكن أيضًا أن يكون إعطاء الجهاز الخاص الذي يوجد عليه نظام الملفات فعالًا، ولكنه قديم، ويرجع ذلك أساسًا إلى أنه سيفشل في حالة تركيب هذا الجهاز في أكثر من دليل واحد.
لاحظ أنه لا يمكن إلغاء ربط نظام الملفات عندما يكون "مشغولاً" - على سبيل المثال، عندما تكون هناك ملفات مفتوحة عليه، أو عندما يكون لدى عملية ما دليل عملها هناك، أو عند استخدام ملف تبديل عليه. قد تتسبب العملية المخالفة في حدوث مشكلة، ويمكن أن تكون هذه العملية هي umount نفسها - فهي تفتح libc، و libc بدوره قد يفتح ملفات اللغة. يتجنب فك الربط التدريجي هذه المشكلة، ولكنه قد يقدم مشكلات أخرى. راجع وصف --lazy أدناه.
الخيارات
-a, --all
يتم إلغاء ربط جميع أنظمة الملفات الموصوفة في /proc/self/mountinfo (أو في /etc/mtab القديمة)، باستثناء أنظمة الملفات proc و devfs و devpts و sysfs و rpc_pipefs و nfsd. يمكن استبدال هذه القائمة بخيار --types.
-A, --all-targets
إلغاء ربط جميع نقاط التحميل في مساحة التحميل الحالية لنظام الملفات المحدد. يمكن تحديد نظام الملفات عن طريق أحد نقاط التحميل أو اسم الجهاز (أو UUID وما إلى ذلك). عند استخدام هذا الخيار مع --recursive، يتم إلغاء ربط جميع عمليات التحميل المتداخلة داخل نظام الملفات بشكل متكرر. هذا الخيار مدعوم فقط على الأنظمة التي يكون فيها /etc/mtab عبارة عن رابط رمزي لـ /proc/mounts.
-c, --no-canonicalize
عدم تطبيع المسارات. يعتمد تطبيع المسار على استدعاءات النظام stat(2) و readlink(2). قد تتسبب هذه الاستدعاءات في حدوث تعليق في بعض الحالات (على سبيل المثال على NFS إذا كان الخادم غير متوفر). يجب استخدام هذا الخيار مع المسار الفعلي لنقطة التحميل.
يتم تجاهل هذا الخيار بصمت بواسطة umount للمستخدمين غير الجذر.
لمزيد من التفاصيل حول هذا الخيار، راجع صفحة دليل mount(8). لاحظ أن umount لا يمرر هذا الخيار إلى أدوات /sbin/umount.type.
-d, --detach-loop
عندما يكون الجهاز الذي تم إلغاء ربطه جهاز حلقة، قم أيضًا بتحرير جهاز الحلقة هذا. هذا الخيار غير ضروري للأجهزة التي تم تهيئتها بواسطة mount(8)، في هذه الحالة يتم تمكين وظيفة "autoclear" افتراضيًا.
--fake
يتسبب في تنفيذ كل شيء باستثناء استدعاء النظام الفعلي أو تنفيذ أداة إلغاء الربط؛ هذا "يزيف" إلغاء ربط نظام الملفات. يمكن استخدامه لإزالة الإدخالات من /etc/mtab القديمة التي تم إلغاء ربطها في وقت سابق باستخدام الخيار -n.
-f، --force
فرض إلغاء التحميل (في حالة عدم إمكانية الوصول إلى نظام NFS).
لاحظ أن هذا الخيار لا يضمن أن أمر إلغاء التحميل لن يتوقف. يُنصح بشدة باستخدام مسارات مطلقة بدون روابط رمزية لتجنب استدعاءات النظام غير المرغوب فيها [readlink]({filename}../../readlink)(2) و [stat]({filename}../../stat)(2) على نظام NFS غير قابل للوصول في أمر إلغاء التحميل.
-i، --internal-only
عدم استدعاء البرنامج المساعد /sbin/umount.filesystem حتى لو كان موجودًا. بشكل افتراضي، يتم استدعاء هذا البرنامج المساعد إذا كان موجودًا.
-l، --lazy
إلغاء تحميل تدريجي. افصل نظام الملفات من التسلسل الهرمي للملفات الآن، وقم بتنظيف جميع المراجع إلى هذا نظام الملفات بمجرد أن لا يعود قيد الاستخدام.
من المتوقع إعادة تشغيل النظام في المستقبل القريب إذا كنت ستستخدم هذا الخيار لنظام ملفات الشبكة أو نظام ملفات محلي مع أنظمة ملفات فرعية. حالة الاستخدام الموصى بها لأمر umount -l هي منع التعليق أثناء إيقاف التشغيل بسبب مشاركة شبكة غير قابلة للوصول حيث سيتوقف أمر إلغاء التحميل العادي بسبب خادم معطل أو تقسيم شبكة. لن يكون من الممكن إعادة تحميل المشاركة.
-N، --namespace ns
قم بتنفيذ إلغاء التحميل في مساحة التحميل المحددة بواسطة ns. يكون ns إما معرف العملية (PID) للعملية التي تعمل في تلك المساحة أو ملف خاص يمثل تلك المساحة.
ينتقل أمر إلغاء التحميل إلى مساحة التحميل عند قراءة /etc/fstab، وكتابة /etc/mtab (أو الكتابة إلى /run/mount) واستدعاء نظام استدعاء umount(2). بخلاف ذلك، يتم تشغيله في مساحة التحميل الأصلية. وهذا يعني أن مساحة التحميل المستهدفة لا تحتاج إلى احتواء أي مكتبات أو متطلبات أخرى ضرورية لتنفيذ أمر umount(2).
راجع mount_namespaces(7) لمزيد من المعلومات.
-n، --no-mtab
إلغاء التحميل دون الكتابة في /etc/mtab.
-O، --test-opts option...
قم بإلغاء تحميل أنظمة الملفات التي تحتوي فقط على الخيارات المحددة في /etc/fstab. يمكن تحديد أكثر من خيار في قائمة مفصولة بفواصل. يمكن إضافة بادئة "no" لكل خيار للإشارة إلى أنه لا ينبغي اتخاذ أي إجراء لهذا الخيار.
-q، --quiet
قم بإخفاء رسائل الخطأ "غير مثبّت".
-R، --recursive
قم بإلغاء تحميل كل دليل محدد بشكل متكرر. سيتوقف التكرار لكل دليل إذا فشلت أي عملية إلغاء تحميل في السلسلة لأي سبب من الأسباب. يتم تحديد العلاقة بين نقاط التحميل بواسطة إدخالات /proc/self/mountinfo. يجب تحديد نظام الملفات بواسطة مسار نقطة التحميل؛ لا يتم دعم إلغاء التحميل المتكرر بالاسم (أو UUID). منذ الإصدار 2.37، يقوم بإلغاء تحميل جميع أنظمة الملفات الموضوعة فوق بعضها البعض (المزيد من أنظمة الملفات على نفس نقطة التحميل).
-r، --read-only
عندما يفشل إلغاء التحميل، حاول إعادة تحميل نظام الملفات في وضع القراءة فقط.
-t، --types type...
أشر إلى أنه يجب اتخاذ الإجراءات فقط على أنظمة الملفات من النوع المحدد. يمكن تحديد أكثر من نوع في قائمة مفصولة بفواصل. يمكن إضافة بادئة "no" إلى القائمة للإشارة إلى أنه لا ينبغي اتخاذ أي إجراء لجميع الأنواع المذكورة. لاحظ أن أمر إلغاء التحميل يقرأ معلومات حول أنظمة الملفات المثبتة من النواة (/proc/mounts) وقد تختلف أسماء أنظمة الملفات عن أسماء أنظمة الملفات المستخدمة في /etc/fstab (على سبيل المثال، "nfs4" مقابل "nfs").
-v, --verbose
وضع الإسهاب.
-h, --help
عرض نص المساعدة والخروج.
-V, --version
عرض الإصدار والخروج.
إلغاء التحميل للمستخدمين غير الجذر
بشكل طبيعي، يمكن للمستخدم الجذر فقط إلغاء تحميل أنظمة الملفات. ومع ذلك، عندما يحتوي ملف fstab على خيار user في سطر ما، يمكن لأي شخص إلغاء تحميل نظام الملفات المقابل. لمزيد من التفاصيل، راجع صفحة دليل mount(8).
منذ الإصدار 2.34، يمكن استخدام الأمر umount لإجراء عملية إلغاء تحميل أيضًا لأنظمة ملفات FUSE إذا كانت جدول تحميل kernel يحتوي على معرف المستخدم. في هذه الحالة، لا يلزم وجود خيار user= في ملف fstab.
منذ الإصدار 2.35، لا يخرج الأمر umount عند عدم كفاية أذونات المستخدم بواسطة قواعد الأمان الداخلية لـ libmount. يقوم بإسقاط أذونات suid والاستمرار كمستخدم عادي غير الجذر. يمكن استخدام هذا لدعم حالات الاستخدام التي لا تكون فيها أذونات الجذر ضرورية (مثل أنظمة ملفات FUSE، ومساحات أسماء المستخدم، وما إلى ذلك).
جهاز الحلقة
سيقوم الأمر umount تلقائيًا بفصل جهاز الحلقة الذي تم تهيئته مسبقًا بواسطة الأمر mount(8) بغض النظر عن /etc/mtab.
في هذه الحالة، يتم تهيئة الجهاز بعلامة "autoclear" (راجع إخراج losetup(8) لمزيد من التفاصيل)، وإلا فمن الضروري استخدام الخيار --detach-loop أو استدعاء losetup -d device. يتم دعم ميزة autoclear منذ Linux 2.6.25.
لاحظ أنه منذ Linux v3.7، يستخدم kernel "تدمير الجهاز البطيء". يقوم النظام ببساطة بوضع علامة على جهاز الحلقة بعلامة autoclear وتدميره لاحقًا. إذا كنت بحاجة إلى انتظار الإزالة الكاملة لجهاز الحلقة، فقم باستدعاء udevadm settle بعد umount.
حالة الخروج
يحتوي الأمر umount على قيم حالة الخروج التالية (يمكن دمج البتات باستخدام OR):
0 نجاح
1 استدعاء غير صحيح أو أذونات غير كافية
2 خطأ في النظام (نفاد الذاكرة، لا يمكن عمل fork، لا توجد أجهزة حلقة أخرى)
4 خطأ تحميل داخلي
8 مقاطعة المستخدم
16 مشاكل في الكتابة أو تأمين /etc/mtab
32 فشل التحميل
64 نجح بعض عمليات إلغاء التحميل
يعيد الأمر umount -a 0 (نجحت جميع العمليات)، 32 (فشلت جميع العمليات)، أو 64 (فشلت بعض العمليات، ونجحت بعضها).
126 فشل في تنفيذ مساعد التحميل الخارجي /sbin/umount.<type> (من util-linux v2.41)
المساعدون الخارجيون
صيغة المساعدين الخارجيين لإلغاء التحميل هي:
umount.suffix {directory|device} [-flnrv] [-N namespace] [-t type.subtype]
حيث suffix هو نوع نظام الملفات (أو القيمة الموجودة في علامة uhelper= أو helper= في ملف mtab). يمكن استخدام الخيار -t لأنظمة الملفات التي تدعم أنواع فرعية. على سبيل المثال:
umount.fuse -t fuse.sshfs
يمكن أن تظهر علامة uhelper=something في ملف /etc/mtab عندما يحتاج المستخدمون العاديون إلى إلغاء تحميل نقطة تحميل غير معرفة في /etc/fstab (على سبيل المثال، لجهاز تم تركيبه بواسطة udisks(1)).
ستعيد علامة helper=type في ملف mtab توجيه جميع طلبات إلغاء التحميل إلى المساعد /sbin/umount.type بغض النظر عن معرف المستخدم (UID).
لاحظ أن /etc/mtab مهمل حاليًا ويتم الاحتفاظ بخياري helper= وخيارات تحميل المستخدم الأخرى بواسطة libmount.
يتم إرجاع قيمة حالة الخروج للمساعد كقيمة حالة خروج umount(8). يتم استخدام القيمة 126 إذا تم العثور على برنامج المساعد، ولكن فشلت الدالة execl().
البيئة
`LIBMOUNT_FSTAB=<path>`
تتجاوز الموقع الافتراضي لملف `fstab` (يتم تجاهله في حالة `suid`).
`LIBMOUNT_DEBUG=all`
تمكن إخراج تصحيح `libmount`.
الملفات
`/etc/mtab`
جدول أنظمة الملفات المثبتة (قديم ويتم استبداله عادةً برابط رمزي إلى `/proc/mounts`).
`/etc/fstab`
جدول أنظمة الملفات المعروفة.
`/proc/self/mountinfo`
جدول أنظمة الملفات المثبتة الذي تم إنشاؤه بواسطة النواة.
التاريخ
ظهر أمر `umount` في الإصدار 6 من نظام AT&T UNIX.
انظر أيضاً
^ mount(2)، losetup(8)، mount_namespaces(7)، mount(8).
الإبلاغ عن الأخطاء
للإبلاغ عن الأخطاء، استخدم أداة تتبع المشكلات [https://github.com/util-linux/util-linux/issues].
التوفر
أمر umount هو جزء من حزمة util-linux والتي يمكن تنزيلها من أرشيف نواة Linux [https://www.kernel.org/pub/linux/utils/util-linux/].