Mount کردن سیستم فایل در یونیکس – بخش اول

mount به معنی اتصال و mount point به معنی نقطه اتصال است. عمل mount به معنی اتصال یک پارتیشن یا یک دایرکتوری برروی یک دایرکتوری دیگر است. اگر تا به حال لینوکس را بصومرت گرافیکی نصب کرده باشید، دیده اید که اول باید هارد را پارتیشن بندی کنید. نام هاردها با توجه به نوع و تعداد هارد بصورت hdX و sdX است. hd معرف هارد های IDE و sd مخفف هارد های SATA می باشد. X بیانگر تعداد هارد های متصل به سیستم است که با یک حرف نسان داده می شود.بطور مثال اگر سه هارد ساتا دارید پس سه Device به نام های sdb,sda و sdc خواهید داست.در مرحله بعدی باید این پارتیشن ها را به یک دایرکتوری مانند / یا boot/ اتصال دهید و نوع سیستم فایل مانند ext4 یا UFS را نیز برای این نقطه اتصال تعیین کنید

در هر هارد می توانید 4 پارتیشن Primary می توانید داشته باشید. پارتیش ها با اعداد نشان داده می شوند. بطور مثال اولین پارتیشن از اولین هارد ساتا بصورت sda1 و سومین پارتیشن از دومین هارد ساتا بصورت sdb3 نشان داده می شوند. توجه داشته باشد که شما فقط می توانید در هر هارد 4 پارتیشن Primary داشته باشید و در تعداد پارتیشن های Extented محدودیتی ندارید ولی باید دقت کنید که فهرست پارتیشن های mount شده پارتیشن sda4 یا sdb4 و … را نمی بینید یعنی پارتیشن Primary چهارم در لیست وجود ندارد.دلیل آن چیست؟

پارتیشن های Primary برای دایرکتوری های اصلی مانند دایرکتوری root یا / و یا برای دایرکتوری بوت یا boot/ استفاده می شود. وقتی سه پارتیشن اول Primary را مثلن برای اولین هارد ایجاد می کنید سه پارتیشن sda2,sda1 و sdb3 ایجاد می شوند ولی پارتیشن sda4 وجود ندارد و دلیل آن این است که این دایرکتوری بصورت Extented شده و به زیر دایرکتوری های منطقی یا Logical Directory های sda5 و sda6 به بعد تبدیل می شوند.

سیستم فایلی به نام fstab را در هنگام بوت شدن می خواند و لیست تمامی دایرکتوری های mount را می خواند و آنها را mount می کند. ولی پیش از این سیستم بصورت خودکار دایرکتوری / را mount می کند. تا زمانی که فایل fstab خوانده نشده هیچ سیستم فایلی جز دایرکتوری / اتصال نیافته است.

به جز سیستم فایل های رایج مانند ext4 و vfat نوع دیگری از سیستم فایل ها به نام های procfs و sysfs وجود دارند که به پارتیش های همنام خودشان متصل می شوند و بصورت خودکار توسط گرنل ساخته و mount می شوند. محل قرار گیری آنها در دیسک یا هارد نیست بلکه در حافضه Ram قرار دارند و پس از خاموش یا Restart شدن سیستم از بین می روند. ود هر بار بوت شدن سیستم دوباره ساخته می شوند. این سیستم فایل ها حاوی اطلاعات سیستمی مانند اطلاعاتی از پردازنده و اطلاعاتی از سخت افزار و ماژول های کرنل می باشند.جالبی این نوع سیستم فایل ها این است که اندازه آنها صفر است و حجمی ندارند.(می توانید یک نمونه از کاربرد آنرا در اینجا بخوانید)

برای mount کردن سیستم فایل بصورت دستی از دستور mount استفاده می کنیم. تمامی کاربران می توانند این دستور را بدون هیچ گونه سوئیچی اجرا کنند و فهرستی از سیستم فایل ها و پارتیشن ها و دایرکتوری ها mount شده را ببینند.اما اجرای این دستور با سوئیچ هایش نیاز به دسترسی root دارد.

mount

دستور mount دارای سوئیچ t- است که می توانید تعیین کنید فقط پارتیشن ها و دایرکتوری هایی از یک نوع خاص مانند ext3 یا ext4 و یا vfat و حتی سیستم فایل procfs را لیست کند. در دستور زیر بجای TYPE نوع سیستم فایل دلخواه را ببینید.

mount  -t  TYPE

شکل کلی استفاده از دستور بصورت زیر است.

mount [OPTIONS] device/directory  mount_point

device/directory پارتیشن یا دایرکتوری است که برروی mount_point اتصال یا mount داده می شود. یکی از سوئیج ها یا OPTION ها t- است که تعیین می کند device/directory با چه نوع سیستم فایلی بر روی mount_point اتصال پیدا کنند. فرمت استفاده از این سوئیچ بصورت زیر خواهد بود.

mount  -t  TYPE  device/directory  mount_point

که باید بجای TYPE یکی از انواع زیر را جایگزین کنید :

  • ext2 یا ext3 یا ext4 : سیستم فایل رایج توزیع های لینوکسی
  • iso9660 : فرمت رایج برای CD ها
  • jfs : تولید شده توسط IBM و رایج در سیستم عامل مکینتاش
  • nfs : سیستم فایل شبکه که مخفف Network File System و برای اشتراک دایرکتوری ها در شبکه استفاده می شود.
  • nfs4 : نسخه 4 از سیستم فایل nfs
  • udf : رایج برای DVD ها
  • vfat : رایج در مکینتاش برای اتصال سیستم فایل های ویندوزی و همچنین مورد استفاده در فلاپی ها و USB ها
  • ntfs : مانند vfat رایج در مکینتاش ها برای اتصال سیستم فایل های ویندوزی

دایرکتوری mnt/ و media/ از متدوالترین مکان ها در یونیکس ها هستند که می توانید یک نقطه اتصال را ایجاد کنید. برای اینکار ابتدا باید نقطه اتصال را ایجاد کنید.از دستور mkdir برای ساختن یک دایرکتوری بعنوان نقطه اتصال استفاده کنید.

mkdir  /media/flashdisk

وسپس باید پارتیشن یا دایرکتوری را به آن متصل کنید. در مثال زیر یک پارتیشن به نام sdc1 بر روی یک نقطه اتصال در زیر دایرکتوری media به نام flashdisk و از نوع vfat اتصال داده شده است.(همانطور که گفته شد Flash و USB و Flopy ها از نوع vfat هستند)

mount -t vfat /dev/sdc1 /media/flashdisk

اگر نقطه اتصال را از قبل ایجاد نکنید و بخواهید یک پارتیشن یا دایرکتوری را به چیزی که وجود ندارد، اتصال دهید خطای زیر را مشاهده می کنید.

 mount point /media/flashdisk does not exist

اما سوئیج مهم دیگری که در ارتباط با دستور mount وجود دارد، o- است که گزینه هایی را برای اتصال تعیین می کند.فرمت کلی آن :

mount  -o  OPTIONS  device/directory  mount_point

بجای عبارت OPTIONS در دستور بالا باید یکی از موارد زیر را استفاده کنید.

  • async : اجازه asynchronous یا ناهمگام اعمال I/O برروی سیستم فایل(برای اطلاع بیشتر بخش async از مطلب را بخوانید.)
  • auto : اتصال خودکار سیستم فایل (برای اطلاع بیشتر بخش auto از مطلب را بخوانید.). سویچ a- وجود دارد تا بتوانید پارتیشن یا دایرکتوری را بصورت خودکار mount کنید. فرمت کلی استفاده از آن بصورت زیر است.

mount  -a  device/directory  mount_point

نقطه مقابل auto گزینه noauto قرار دارد.

  • exec : اجازه اجرای فایل های باینری (برای اطلاع بیشتر بخش exec از مطلب را بخوانید.). نقطه مقابل exec گزینه noexec قرار دارد.
  • user : اجازه می دهد تا یک کاربر معمولی اقدام به mount و unmount کردن بکنند.(برای اطلاع بیشتر بخش user از مطلب را بخوانید.). نقطه مقابل آن nouser قرار دارد.
  • ro/rw : قابلین فقط خواندنی یا خواندن و نوشتن را می دهد.(برای اطلاع بیشتر بخش ro/rw از مطلب را بخوانید.)
  • remount : یک دایرکتوری یا پارتیشن را که mount شده است را مجدد mount یا در اصطلاح Remount می کند.
  • loop : یک فایل image را بعنوان loop device متصل می کند.

در مثال زیر یک فایل iso را در نقطه اتصال cdrom متصل می کند.

 mount -o ro,loop Fedora-14-x86_64-Live-Desktop.iso /media/cdrom

نکته مهمی که وجود دارد این است که این نقاط اتصال پایدار نیستند و پس از خاموش یا Restart شدن سیستم از بین می روند. اگر می خواهید این نقاط اتصال دائمی باشند باید آنها را بصورت یک خط مجزا در فایل fstab بنویسید که می توانید آموزش آنرا از اینجا بخوانید.

دستور umount

این دستور یک دایرمتوری را از حالت mount خارج می کند که در اصطلاح آنرا Unmount می کند. شکل استفاده از آن ساده بوده و فرمت کلی زیر را دارد.

umount  mount_point