UMOUNT(8) دستورات مدیریت سیستم UMOUNT(8)

umount - جدا کردن سیستم پرونده متصلشده

umount -a [-dflnrv] [-t fstype] [-O option...]

umount [-dflnrv] {directory|device}

umount -h|-V

دستور umount سیستمهای پرونده متصلشده را از درخت دایرکتوری سیستم جدا میکند. یک سیستم پرونده با مشخص کردن پوشه‌ای که در آن سوار شده است تعیین می‌گردد. مشخص کردن فایل دستگاه خاصی که سیستم پرونده روی آن قرار دارد نیز ممکن است کار کند، اما منسوخ شده است، عمدتاً به این دلیل که اگر آن دستگاه روی بیش از یک پوشه سوار شده باشد، عملیات با شکست مواجه خواهد شد.

توجه داشته باشید که یک سیستم پرونده را هنگامی که در وضعیت «مشغول» ('busy') است نمی‌توان پیاده کرد - برای مثال، هنگامی که پرونده‌های بازی روی آن وجود دارد، یا هنگامی که فرایندی پوشه کاری خود را آنجا قرار داده است، یا زمانی که یک پرونده حافظه مجازی (swap) روی آن در حال استفاده است. حتی خود فرایند umount نیز ممکن است مسبب این وضعیت باشد - زیرا کتابخانه libc را باز می‌کند و libc به نوبه خود ممکن است پرونده‌های محلی (locale) را باز کند. پیاده‌سازی تنبل از بروز این مشکل جلوگیری می‌کند، اما ممکن است مسائل دیگری را به وجود آورد. توضیحات --lazy را در ادامه مشاهده کنید.

-a, --all

تمام سیستم‌های پرونده شرح داده شده در /proc/self/mountinfo (یا در /etc/mtab منسوخ‌شده) پیاده می‌شوند، به جز سیستم‌های پرونده proc، devfs، devpts، sysfs، rpc_pipefs و nfsd. این فهرست سیستم‌های پرونده را می‌توان با گزینه --types در umount جایگزین کرد.

-A, --all-targets

پیاده کردن تمامی نقاط اتصال در فضای‌نام اتصال جاری برای سیستم پرونده مشخص‌شده. سیستم پرونده را می‌توان با یکی از نقاط اتصال یا نام دستگاه (یا UUID و غیره) مشخص کرد. هنگامی که این گزینه همراه با --recursive استفاده می‌شود، تمام اتصالات تو در تو در داخل سیستم پرونده به صورت بازگشتی پیاده می‌شوند. این گزینه فقط در سیستم‌هایی پشتیبانی می‌شود که در آن‌ها /etc/mtab یک پیوند نمادین (symlink) به /proc/mounts باشد.

-c, --no-canonicalize

مسیرها را متعارف‌سازی نکن. متعارف‌سازی مسیرها بر اساس فراخوان‌های سیستمی stat(2) و readlink(2) انجام می‌شود. این فراخوان‌های سیستمی در برخی موارد ممکن است متوقف شوند (برای مثال در NFS اگر سرور در دسترس نباشد). این گزینه باید همراه با مسیر متعارف نقطه اتصال استفاده شود.

این گزینه برای کاربران غیر ریشه به طور خاموش توسط umount نادیده گرفته می‌شود.

برای جزئیات بیشتر در مورد این گزینه، صفحه راهنمای mount(8) را ببینید. توجه داشته باشید که umount این گزینه را به برنامه‌های کمکی /sbin/umount.type ارسال نمی‌کند.

-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.filesystem را حتی در صورت وجود فراخوانی نکن. به طور پیش‌فرض چنین برنامه کمکی در صورت وجود فراخوانی می‌شود.

-l, --lazy

پیاده‌سازی تنبل (Lazy unmount). سیستم پرونده را بلافاصله از سلسله‌مراتب فایل‌ها جدا می‌کند و به محض اینکه دیگر مشغول نباشد، تمام ارجاعات به این سیستم پرونده را پاکسازی می‌کند.

اگر قصد دارید از این گزینه برای سیستم پرونده تحت شبکه یا سیستم پرونده محلی دارای زیراتصالات (submounts) استفاده کنید، انتظار می‌رود که سیستم در آینده نزدیک نیاز به راه‌اندازی مجدد (reboot) داشته باشد. مورد کاربرد توصیه‌شده برای 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 option...

فقط سیستم‌های پرونده‌ای را پیاده کن که گزینه مشخص‌شده در /etc/fstab برای آن‌ها تنظیم شده باشد. می‌توان بیش از یک گزینه را در فهرستی که با کاما جدا شده است مشخص کرد. هر گزینه می‌تواند با پیشوند no همراه باشد تا نشان دهد هیچ اقدامی نباید برای این گزینه انجام شود.

-q, --quiet

سرکوب پیام‌های خطای «متصل نیست» ("not mounted").

-R, --recursive

پیاده کردن بازگشتی هر دایرکتوری مشخص‌شده. در صورتی که هر عملیات پیاده‌سازی در زنجیره به هر دلیلی با شکست مواجه شود، بازگشت برای هر دایرکتوری متوقف خواهد شد. رابطه بین نقاط اتصال توسط ورودی‌های /proc/self/mountinfo تعیین می‌شود. سیستم پرونده باید با مسیر نقطه اتصال مشخص شود؛ پیاده‌سازی بازگشتی با نام دستگاه (یا UUID) پشتیبانی نمی‌شود. از نسخه ۲.۳۷ به بعد، تمام سیستم‌های پرونده هم‌پوشانی‌شده (چندین سیستم پرونده روی یک نقطه اتصال) را نیز پیاده می‌کند.

-r, --read-only

هنگامی که پیاده‌سازی با شکست مواجه می‌شود، تلاش کن تا سیستم پرونده را به صورت فقط‌خواندنی اتصال مجدد (remount) کنی.

-t, --types type...

نشان می‌دهد که اقدامات باید فقط روی سیستم‌های پرونده از نوع (type) مشخص‌شده انجام شوند. می‌توان بیش از یک نوع را در فهرستی که با کاما جدا شده است مشخص کرد. فهرست انواع سیستم‌های پرونده می‌تواند با پیشوند no همراه باشد تا مشخص شود هیچ اقدامی نباید برای تمامی انواع ذکرشده انجام گیرد. توجه داشته باشید که umount اطلاعات مربوط به سیستم‌های پرونده متصل‌شده را از هسته (/proc/mounts) می‌خواند و ممکن است نام‌های سیستم پرونده با نام‌های استفاده‌شده در /etc/fstab متفاوت باشند (مثلاً "nfs4" در مقابل "nfs").

-v, --verbose

حالت با جزئیات کامل.

-h, --help

نمایش راهنما و خروج.

-V, --version

نمایش نسخه و خروج.

به طور معمول، فقط کاربر ارشد می‌تواند سیستم‌های پرونده را پیاده کند. با این حال، هنگامی که fstab شامل گزینه user در یک خط باشد، هر کسی می‌تواند سیستم پرونده مربوطه را پیاده کند. برای جزئیات بیشتر به صفحه راهنمای mount(8) مراجعه کنید.

از نسخه ۲.۳۴ دستور umount می‌تواند برای انجام عملیات پیاده‌سازی سیستم‌های پرونده fuse نیز استفاده شود، مشروط بر اینکه جدول اتصال هسته شامل شناسه کاربر باشد. در این حالت گزینه اتصال user= در fstab مورد نیاز نیست.

از نسخه ۲.۳۵ دستور umount هنگامی که دسترسی‌های کاربر طبق قوانین امنیتی داخلی libmount ناکافی باشد، با خطا متوقف نمی‌شود. این دستور مجوزهای suid را کنار می‌گذارد و به عنوان یک کاربر عادی غیر ریشه ادامه می‌دهد. از این سازوکار می‌توان برای پشتیبانی از مواردی که دسترسی ریشه در آن‌ها ضروری نیست (مانند سیستم‌های پرونده fuse، فضاهای‌نام کاربر و غیره) استفاده کرد.

دستور umount به طور خودکار دستگاه حلقه (loop device) را که پیش‌تر توسط دستور mount(8) مقداردهی اولیه شده بود، مستقل از /etc/mtab جدا می‌کند.

در این حالت دستگاه با پرچم "autoclear" مقداردهی اولیه می‌شود (برای جزئیات بیشتر به خروجی losetup(8) مراجعه کنید)، در غیر این صورت لازم است از گزینه --detach-loop استفاده کنید یا losetup -d device را فراخوانی نمایید. ویژگی autoclear از لینوکس ۲.۶.۲۵ پشتیبانی می‌شود.

توجه داشته باشید که از لینوکس نسخه ۳.۷ هسته از «نابودی تنبل دستگاه» (lazy device destruction) استفاده می‌کند. سیستم فقط دستگاه حلقه را با پرچم autoclear نشانه‌گذاری کرده و بعداً آن را پاک می‌کند. اگر نیاز دارید تا حذف کامل دستگاه حلقه صبر کنید، پس از umount دستور udevadm settle را فراخوانی نمایید.

دستور umount دارای مقادیر وضعیت خروج زیر است (بیت‌ها می‌توانند با یکدیگر OR شوند):

0

موفقیت

1

فراخوانی نادرست یا دسترسی ناکافی

2

خطای سیستم (کمبود حافظه، عدم امکان fork، نبود دستگاه حلقه دیگر)

4

باگ داخلی mount

8

وقفه توسط کاربر

16

مشکل در نوشتن یا قفل کردن /etc/mtab

32

شکست در اتصال

64

برخی پیاده‌سازی‌ها موفقیت‌آمیز بودند

دستور umount -a مقادیر 0 (همه موفق)، 32 (همه ناموفق) یا 64 (برخی ناموفق، برخی موفق) را برمی‌گرداند.

126

شکست در اجرای برنامه کمکی اتصال خارجی /sbin/umount.<type> (از util-linux نسخه ۲.۴۱)

نحو برنامه‌های کمکی پیاده‌سازی خارجی به صورت زیر است:

umount.suffix {directory|device} [-flnrv] [-N namespace] [-t type.subtype]

که در آن suffix نوع سیستم پرونده است (یا مقدار حاصل از نشانگر uhelper= یا helper= در فایل mtab). گزینه -t می‌تواند برای سیستم‌های پرونده‌ای که از نوع فرعی (subtype) پشتیبانی می‌کنند به کار رود. برای مثال:

umount.fuse -t fuse.sshfs

یک نشانگر uhelper=something (برنامه کمکی غیرممتاز) می‌تواند در فایل /etc/mtab ظاهر شود زمانی که کاربران عادی باید بتوانند نقطه اتصالی را پیاده کنند که در /etc/fstab تعریف نشده است (برای مثال برای دستگاهی که توسط udisks(1) متصل شده است).

یک نشانگر helper=type در فایل mtab تمامی درخواست‌های پیاده‌سازی را صرف‌نظر از UID به برنامه کمکی /sbin/umount.type هدایت خواهد کرد.

توجه داشته باشید که در حال حاضر /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 در نسخه ۶ یونیکس AT&T ظاهر شد.

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

برای گزارش باگ‌ها، از سامانه پیگیری مشکلات در util-linux issues https://github.com/util-linux/util-linux/issues. استفاده کنید.

دستور umount بخشی از بسته util-linux است که می‌توان آن را از Linux Kernel Archive https://www.kernel.org/pub/linux/utils/util-linux. دریافت کرد.

مه ۲۰۲۵ util-linux