104.3 - کنترل mount و unmount فایلسیستمها¶
اهداف یادگیری¶
در این درس یاد میگیرید چگونه فایلسیستمها را بهصورت دستی mount و unmount کنید، ماندگار کردن mount در بوت را پیکربندی کنید، و از UUID/Label برای شناسایی پایدار فایلسیستمها استفاده کنید.
کلیدواژهها¶
mount, umount, /etc/fstab, blkid, lsblk, findmnt, swapon, swapoff, x-systemd.automount, UUID, LABEL
ایدهٔ کلی و دستورهای پایه¶
برای دسترسی به محتوای یک پارتیشن آن را به یک دایرکتوری وصل میکنیم (mount point):
با اجرای mount بدون پارامتر میتوانید همهٔ mountهای فعلی را ببینید؛ برای باز کردن فایل ایزو از -o loop استفاده کنید:
برای جدا کردن از umount (دوست اشتباهگیر) استفاده کنید:
خطاهای رایج و راهحلها (مسئله → رفع)¶
مشکل: umount: target is busy¶
دلایل: باینبرنامه/شل یا پروسهای در آن دایرکتوری فعال است.
رفع:
- با
lsof +f -- /mnt/mydiskیاfuser -v /mnt/mydiskببینید چه فرایندهایی باز هستند. - در صورت امکان فرایندها را ببندید یا با
sudo kill PIDخاتمه دهید. - اگر نیاز به جدا کردن بدون بستن فرایندها دارید، از "lazy" unmount استفاده کنید:
sudo umount -l /mnt/mydisk(با احتیاط).
هشدار: استفادهٔ نامناسب از unmount -l یا -f
umount -l و umount -f ممکن است دادهها را در شرایط خاص از بین ببرد یا وضعیت فایلسیستم را نامعلوم بگذارد؛ ابتدا تلاش کنید فرایندهای باز را ببندید و فقط در شرایط اضطراری از گزینههای اجباری استفاده کنید.
استفاده از UUID / LABEL و fstab¶
برای جلوگیری از مشکل تغییر نام دستگاهها (مثلاً /dev/sdb → /dev/sdc) بهتر است در /etc/fstab از UUID= یا LABEL= استفاده کنید. UUID دستگاه را با blkid یا lsblk -o NAME,UUID,MOUNTPOINT بیابید.
مثال یک سطر در /etc/fstab:
ستونها معمولاً بهصورت: device | mountpoint | type | options | dump | pass هستند.
نکتهٔ عملی
پس از ویرایش /etc/fstab آن را با sudo systemctl daemon-reload و سپس sudo mount -a تست کنید؛ اگر خطایی وجود داشت از ورود اشتباه جلوگیری میشود. بهجای mount -a میتوانید فقط سطر جدید را mount /mountpoint کنید.
گزینههای پرکاربرد mount و کاربردشان¶
-o remount,ro— تغییر حالت (مثلاً readonly) بدون unmount مجددnoauto— مانع mount خودکار در بوت میشودuser— اجازهٔ mount به کاربران غیر-root میدهد (با محدودیتها)users— هر کاربری میتواند unmount کندnoexec,nosuid,nodev,noatime— گزینههای امنیتی/عملیاتی
نکته
اگر میخواهید یک فایلسیستم شبکهای به محض ضرورت mount شود، از option x-systemd.automount در fstab استفاده کنید تا systemd آن را رویدرخواست mount کند و مشکلات زمان بوت با منابع شبکهای را کاهش دهد.
مدیریت swap¶
فضای swap با mkswap ایجاد و با swapon فعال میشود؛ برخلاف فایلسیستمها، swap در fstab با نوع swap ثبت میشود:
برای غیرفعالکردن موقت swap: sudo swapoff /dev/sda6 و برای فعالسازی دوباره sudo swapon /dev/sda6.
ابزارهای بررسی و تایید¶
lsblk -fوblkidبرای پیدا کردن UUID/TYPE/LABELfindmntبرای دیدن درختی mountها وfindmnt --verifyبرای بررسی/etc/fstabmount -o remount,roبرای تغییر حالت وmount -aبرای تلاش mount همهی سطرهایfstab
چکلیست عملی¶
- دستگاه را با
lsblk/blkidشناسایی کنید. - اگر نیاز به فرمت یا ایجاد swap دارید، قبل از عملیات پشتیبان تهیه کنید و مطمئن شوید که target صحیح است.
- برای mount دائمی از
UUIDدر/etc/fstabاستفاده کنید. - پس از ویرایش
fstab:sudo systemctl daemon-reloadوsudo mount -aیاfindmnt --verifyرا اجرا کنید. - در صورت مواجهه با
target is busy، ازlsof/fuserبرای پیدا کردن فرایندها استفاده کنید.
تمرینها¶
- یک فایل ایمیج 100MiB بسازید و با
mke2fsآن را فرمت کنید؛ سپس آن را با-o loopmount کرده و محتوا را بررسی کنید. - یک ورودی در
/etc/fstabبا استفاده ازUUIDاضافه کنید،systemctl daemon-reloadوmount -aرا اجرا کنید و صحت کار را باfindmntبررسی کنید.
خلاصه¶
این درس چگونگی mount و unmount فایلسیستمها، کار با /etc/fstab، استفاده از UUID/LABEL و راهحلهای خطاهای رایج مثل "target is busy" را پوشش داد. همیشه قبل از تغییرات حیاتی از دادهها پشتیبان تهیه کنید و تنظیمات fstab را پیش از reboot اعتبارسنجی کنید.
نکات کلیدی برای آزمون
- دستورهای پایه:
mount,umount,mount -o loop,swapon/swapoff fstabستونها: device | mountpoint | type | options | dump | pass- استفاده از
UUIDیاLABELبرای پایداری در /etc/fstab - نحوهٔ مقابله با خطای "target is busy":
lsof/fuser، سپس unmount یاumount -l(با احتیاط) - تفاوت
userوusersدر options و کاربردx-systemd.automountبرای mount رویدرخواست