شما برای مطالعه این مقاله فقط 8 دقیقه وقت نیاز دارید

mount-command-in-linux
دسته بندی : آموزش لینوکس

دستور mount در لینوکس (مانت کردن فایل سیستم و USB)

5/5 - (1 امتیاز)

همه چیز در لینوکس، حکم فایل را دارد و این فایل ها به صورت درختی که ریشه اش دایرکتوری روت ( / ) است، در کنار هم قرار می گیرند. حالا اگر بخواهید یک فایل یا فرزند جدیدی را به این درخت متصل کنید، باید از دستور mount در لینوکس استفاده کنید و فایل سیستم جدا و جدید مثلاً فلش USB را به نقطه موردنظر از فایل سیستم لینوکس وصل کنید.

دستور mount، فایل سیستم موردنظر را به یک دایرکتوری مشخص متصل می کند تا تمام زیرشاخه های آن برای کاربران و اپلیکیشن ها قابل دسترس باشد. آپشن هایی که در دستور mount لحاظ می کنید، به نوعی رفتار این دستور را مشخص می کنند به همین دلیل باید آنها را با دقت انتخاب کنید.

توجه داشته باشید که مانت یک فایل سیستم جدید در فایل سیستم لینوکس باید توسط کاربر ادمین انجام شوند پس برای اجرای دستور mount در لینوکس حتماً باید از امتیازات sudo برخورداری باشید. 

اگر از کاربران پروپاقرص لینوکس هستید و دوست دارید دستورات اصلی لینوکس مثل دستور mount را بدون هیچ نگرانی در سرور خود هم اجرا کنید، می توانید به صفحه خرید سرور مجازی لینوکس مراجعه کنید و پلن ایده آل خود را سفارش دهید تا ادامه مسیر برای شما بسیار راحت تر و لذت بخش تر باشد.

آشنایی با دستور mount در لینوکس

در سیستم های مبتنی بر لینوکس و یونیکس، همه چیز به صورت فایل و دایرکتوری است که به صورت درختی در کنار هم قرار گرفته اند. این درخت از ریشه / شروع می شوند و هر چه از ریشه درخت پایین تر بروید، فایل ها یا شاخه های بیشتری منشعب می شوند که هر کدام معرف دیسک ها و فایل سیستم هایی هستند که به فایل سیستم اصلی متصل هستند.

حالا اگر بخواهید فایل سیستم جدیدی که جزو این درخت نیست را به فایل سیستم اصلی اضافه کنید، دستور mount در لینوکس وارد عمل می شود. دستور مانت این امکان را به شما می دهد که فایل موردنظر مثلا حافظه USB را به یک نقطه مشخص از سیستم فایل فعلی پیوست کنید. 

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

البته، در اکثر توزیع های لینوکس امروزی با اتصال فلش به سیستم، عملیات مانت و دسترسی به حافظه به صورت خودکار انجام می شود. اما اگر نیاز به مدیریت دستی نقطه اتصال دستگاه موردنظر دارید و عملیات خاصی را برای این پروسه در نظر دارید، حتماً باید از دستور mount استفاده کنید.

نصب دستور mount در توزیع های مختلف لینوکس

دستور mount یکی از ابزارهای استاندارد لینوکس است که به طور پیش فرض در اکثر توزیع های لینوکس موجود است. اما اگر متوجه شدید که سیستم شما از این دستور برخودار نیست، متناسب با توزیع لینوکس خود یکی از دستورات زیر را اجرا کنید:

Debian/Ubuntu

sudo apt-get install util-linux

CentOS/RHEL

sudo yum install util-linux

Fedora

sudo dnf install util-linux

Arch Linux

sudo pacman -S util-linux

openSUSE

sudo zypper install util-linux

اکنون که از وجود ابزار mount در سیستم خود مطمئن هستید، پیش نیازهای زیر را هم در نظر بگیرید تا کاربرد این دستور را با بررسی سینتکس و آپشن ها شروع کنیم:

  • سیستم لینوکس
  • دسترسی به ترمینال
  • برخوداری از امتیازات ادمین یا sudo

سینتکس و آپشن های دستور mount در لینوکس

سینتکس استاندارد دستور mount به صورت زیر است:

mount [options] [device] [dir]

این دستور به هسته دستور می دهد که سیستم فایل مربوط به device را به دایرکتوری dir نصب کنید. 

اما این دستور حاوی آپشن های زیادی است که با استفاده از آنها می توان رفتار و نحوه مانت کردن را دقیق تر توصیف کرد. 

مهم ترین آپشن های mount

a: مانت تمام فایل سیستم های موجود در دایرکتوری etc/fstab/

F: ایجاد یک شاخه فرزند جدید برای هر دستگاه 

h: نمایش تمام آپشن های دستور mount

l: نمایش لیست تمام فایل سیستم های مانت شده و اضافه کردن برچسب به هر دستگاه

L [label]: اتصال پارییشن مشخص شده به فایل سیستم

M: انتقال یک زیردرخت به لوکیشن دیگری از درخت اصلی

O [opts]: فیلترسازی دستگاه های موجود در دایرکتوری etc/fstab/ (همراه با آپشن a)

r: مانت فایل سیستم در حالت read-only

R: نصب مجدد یک زیردرخت در یک جای دیگر از درخت اصلی (محتوای زیر درخت در هر لوکیشن قدیمی و جدید قابل دسترس است.)

t [type]: توصیف نوع فایل سیستم

T: تعیین فایل جایگزین برای etc/fstab/

v: نمایش توضیحات مربوط به پروسه مانت

w: مانت فایل سیستم در حالت read-write

آپشن هایی هم وجود دارند که همراه با فلگ o- به کار می روند و هر کدام کاربرد خاص خود را دارند:

defaults: اعمال تنظیمات پیش فرض که به صورت rw ،suid ،dev ،exec ،auto ،nouser و async است.

ro: مانت فایل سیستم در حالت read-only

rw: مانت سیستم در حالت read-write

user: امکان مانت سیستم توسط هر کاربر

nouser: مانت فایل سیستم فقط توسط کاربر روت

users: امکان مانت و آنمانت فایل سیستم توسط هر کاربر

noexec: جلوگیری از اجرای فایل های باینری در سیستم فایل نصب شده

exec: ارائه مجوز اجرای فایل های باینری در سیستم فایل نصب شده

sync: اجرای تمام ورودی/خروجی ها به صورت همزمان

async: اجرای تمام ورودی/خروجی ها به صورت ناهمزمان

loop: استفاده از تصاویر فایل به عنوان دستگاه های بلاک

suid: ارائه مجوز عملیات بیت suid و sgid

nosuid: مسدود سازی عملیات بیت suid و sgid

auto: مانت خودکار فایل سیستم موقع بوت سیستم

این آپشن ها اکثرا در خطوط مربوط فایل سیستم های موحود در فایل etc/fstab/ لحاظ می شوند.

البته، آپشن های دیگری هم هستند که در صورت نیاز می توانید از آنها استفاده کنید. برای مشاهده لیست کامل آپشن های دستور mount در لینوکس می توانید از دستورات زیر کمک بگیرید:

mount -h

man mount

مثال های کاربردی از دستور مانت در لینوکس

برای آشنایی بهتر با کاربرد این دستور، بهتر است به صورت عملی جلو برویم و با ارائه یک سری مثال های کاربردی، نحوه استفاده از آن را به طور واضح تر یاد بگیریم:

نمایش لیست تمام فایل سیستم های مانت شده

sudo mount

یا 

sudo mount -l

نمایش لیست نوع خاصی از فایل سیستم های مانت شده

برای این کار باید از از آپشن از t استفاده کنید و سپس نوع فایل سیستم را مشخص کنید.

sudo mount -t ext4

مانت یک فایل سیستم جدید

برای مانت کردن یک فایل سیستم باید فایل سیستم موردنظر برای اتصال به نقطه موردنظر از فایل سیستم فعلی را مشخص کنید. به عنوان مثال برای مانت کردن فایل سیستم dev/sdb1/ به دایرکتوری mnt/media/ باید دستور زیر را اجرا کنید:

sudo mount /dev/sdb1 /mnt/media

وقتی یک فایل سیستم را به فایل سیستم لینوکس متصل می کنید، به صورت پیش فرض در حالت read-only مانت می شود و فقط برای خواندن در دسترس است. اگر می خواهید این حالت را به read-write تغییر دهید تا برای نوشتن هم در دسترس باشد، دو راه دارید:

sudo -o rw mount /dev/sdb1 /mnt/media

یا 

sudo -w mount /dev/sdb1 /mnt/media

اتصال فایل سیستم های موجود در فایل etc/fstab/

دایکتوری etc/fstab/ حاوی اطلاعات مربوط به دستگاه هایی است که باید مانت شوند. وقتی سیستم بوت می شود، تمام فایل سیستم های موجود در این فایل به طور خودکار مانت می شوند، مگر اینکه خط مربوط به فایل سیستم موردنظر حاوی آپشن noauto باشد.

کلیک کنید  نصب ntopng در سرور لینوکس اوبونتو، دبیان و centos

اگر می خواهید محتویات این فایل را ببینید، می توانید از دستور زیر استفاده کنید:

sudo cat /etc/fstab

بررسی فایل fstab برای استفاده از دستور mount

حالا اگر برای مانت کردن دستگاه موردنظر، نمی خواهید سیستم خود را بوت کنید، کافیست از این لیست لوکیشن دستگاه موردنظر را بردارید و دستور زیر را اجرا کنید:

sudo mount /dev/sda2

یا اگر می خواهید تمام این فایل سیستم ها را به صورت یکجا نصب کنید، می توانید از آپشن a کمک بگیرید:

sudo mount -a

حتی فایل etc/fstab امکان مانت مداوم یک فایل سیستم را هم در اختیار شما قرار می دهد. به این صورت که می توانید با اضافه کردن خط مربوط به فایل سیستم موردنظر در این فایل، کاری کنید که آن فایل سیستم با هر بار بوت سیستم، به طور خودکار مانت شود.

برای این کار، خط مربوط به فایل سیستم باید به شکل زیر تکمیل شود:

<device> <mount_point> <filesystem_type> <options> <dump> <pass>

<device>: اسم دستگاهی که می خواهید به طور مدام مانت کنید. مثلاً /dev/sdb1

<mount_point>: دایرکتوری که می خواهید فایل سیستم موردنظر در آن مانت شود. 

<filesystem_type>: نوع فایل سیستم، مثلاً ext4 یا vfat

<options>: آپشن های موردنظر برای عملیات مانت، مثلاً defaults یا noatime

<dump>: یک فلگ برای تعیین اینکه فایل سیستم به دامپ نیاز دارند یا نه. (معمولاً با 0 مقدار دهی می شود.)

<pass>: ترتیب بررسی فایل سیستم ها در زمان بوت سیستمو مثلاً ۱ برای فایل سیستم ریشه، ۲ برای برای بقیه فایل سیستم ها

مثال:

dev/sdb1 /mnt/myusbdrive ext4 defaults 0 2

مانت کردن درایو USB

اکثر توزیع های لینوکس، درایوهای قابل حذف و نصب مثل USB را به طور خودکار مانت می کنند. با این حال، اگر عملیات مانت USB با خطا مواجه شد، با طی مراحل زیر می توانید درایو USB را به صورت دستی مانت کنید:

با استفاده از دستور mkdir یک دایرکتوری جدید تحت عنوان نقطه مانت ایجاد کنید:

mkdir /media/usb-drive

سپس، با اجرای دستور زیر هم دستگاه USB را پیدا کنید:

fdisk -l

از خروجی مربوط به به این دستور، اسم یا مسیر دستگاه را بردارید و در دستور زیر لحاظ کنید:

sudo mount /dev/sda1 /media/usb-drive

برای درایو CD-ROM هم قضیه از همین قرار است و با قرار دادن در داخل دستگاه، عملیات مانت آن هم به طور خودکار انجام می شود. اگر متوجه شدید که این کار به طور خودکار انجام نشده است، باید از دستور زیر استفاده کنید:

sudo mount -t iso9660 -o ro /dev/cdrom /mnt

Iso9660 فایل سیستم استاندارد CD-ROMها است که به عنوان نوع فایل سیستم لحاظ شده است.  o ro- هم برای read-only کردن این درایور استفاده می شود و بخش اصلی هم مربوط به عملیات مانت است که درایو  dev/cdrom/ را به نقطه مانت mnt/ متصل می کند.

اگر نقطه مانتی وجود ندارد که در این دستور لحاظ کنید، می توانید از دستور mkdir برای ایجاد یک نقطه مانت جدید استفاده کنید.

اتصال فایل های ISO

برای مانت کردن فایل های iso، حتماً باید داده های آن را در یک دستگاه loop نگاشت کنید. برای این کار کافیست آپشن  o loop- را هم در دستور مانت لحاظ کنید:

sudo mount /image.iso /media/iso-file -o loop

مانت NFS

اگر می خواهید با فایل های ریموت هم مثل فایل های محلی کار کنید، باید پروتکل NFS را هم در فایل سیستم اصلی لینوکس مانت کنید. این پروتکل برای اشتراک گذاری دایرکتوری های ریموت در شبکه استفاده می شود. 

برای مانت یک دایرکتوری ریموت NFS روی سیستم خود، کافیست مراحل زیر را اجرا کنید:

با دستور mkdir یک نقطه مانت ایجاد کنید:

sudo mkdir /media/nfs

 این nfs را با دستور زیر مانت کنید:

sudo mount /media/nfs

برای این که این پروتکل اشتراک گذاری به طور خودکار موقع بوت، مانت شود باید فایل etc/fstab/ را ادیت کنید. پس ویرایشگر متن را باز کنید:

sudo vi /etc/fstab

خط زیر را به انتهای آن اضافه کنید و بخش remote.server:/dir را با آدرس آی پی یا اسم هاست و دایرکتوری اکسپورت شده تغییر دهید:

remote.server:/dir /media/nfs  nfs      defaults    0       0

نحوه unmount یا قطع اتصال فایل سیستم موردنظر

برای اینکه فایل سیستم موردنظر را از درخت اصلی جدا کنید، باید از دستور unmount استفاده کنید. برای این کار دو راه دارید: ۱. اسم نقطه مانت یا ۲. اسم دستگاه یا فایل سیستم موردنظر را در دستور لحاظ کنید:

sudo umount [dir]

یا

sudo umount [device]

برای مثال، اگر می خواهید دستگاه USB به اسم dev/sdb1/ را از سیستم جدا کنید، باید دستور زیر را اجرا کنید:

sudo umount /dev/sdb1

اگر عملیات آنمانت با شکست مواجه شد، احتمالاً فرآیند یا فایلی در حال استفاده از این فایل سیستم است که برای اطمینان از این قضیه می توانید از دستور زیر استفاده کنید:

fuser -m [dir]

به عنوان مثال:

fuser -m /media/usb-drive

این دستور، لیست تمام فرآیندهایی که در حال استفاده از این دستگاه هستید را به شما نشان می دهد. برای این که پروسه آن مانت دستگاه موردنظر را با موفقیت تکمیل کنید، باید pid فرآیندها را یادداشت کنید و تک تک آنها را متوقف کنید.

اگر نمی خواهید فرآیندها را به صورت دستی متوقف کنید، می توانید از آپشن lazy استفاده کنید تا خود دستور unmount این کار را برای شما انجام دهد و بعد از توقف فرآیندها، فایل سیستم را از درخت اصلی جدا کند:

umount --lazy [device]

حتی یک گزینه دیگر تحت عنوان f یا force هم دارید که عملیات قطع اتصال را به صورت اجباری انجام می دهد. البته موقع استفاده از این روش محتاط باشید چون ممکن است به داده های موجود در فایل سیستم موردنظر صدمه بزند.

umount -f [dir]

حالا که با تمام آپشن ها و کاربردهای اصلی دستور mount در لینوکس آشنا شدید، نوبت شماست که دست به کار شوید و از قدرت این ابزار برای انجام عملیات موردنظر خود بهره مند شوید.

سخن آخر

دستور mount برای اتصال دستگاه یا فایل سیستم خارجی به درخت دایرکتوری لینوکس استفاده می شود. سعی کردیم در این مقاله به سینتکس و آپشن های اصلی این دستور اشاره کنیم تا با استفاده از آنها بتوانید رفتار دستور را به شکل دلخواه خود تنظیم کنید و به خروجی موردنظر برسید. البته، مثال های کاربردی این آموزش هم می توانند راهنمای خوبی برای نحوه استفاده از دستور مانت باشند که می توانید از آنها هم کمک بگیرید. 

از اینکه تا انتهای مقاله با ما همراه بودید، از شما متشکریم. امیدواریم که مطالعه این مقاله برای شما مفید واقع شده باشد. در صورت داشتن هرگونه سوال، درخواست و نیاز به راهنمایی، می توانید با ثبت نظر خود، با ما وارد ارتباط شوید تا هر چه زودتر به شما پاسخ دهیم.

مطالب مشابهی که شاید علاقمند باشید

من زهرا پیرجانی دانشجوی رشته نرم افزار هستم. علاقه ای که به یادگیری مطالب جدید دارم باعث شد که انگیزم برای فعالیت در حوزه تولیدمحتوا بیشتر شود. تمام تلاشم این است که با درک کامل موضوع، محتوایی ساده و کامل تهیه کنم که برای همه علاقمندان مفید و کاربردی باشد. یادگیری مطالب جدید و آموزش اونها به بقیه، بهترین کاری هست که می توانم برای رشد خودم و همچنین کمک به رشد علاقمندان به مباحث مورنظر انجام بدم.

دیدگاه های شما

برای دریافت این مقاله لطفا ایمیلتان را وارد کنید

می توانید مقاله را دانلود کنید یا پرینت بگیرید