در این مقاله قصد داریم به این سوالات بپردازیم که Mount چیست و چه کاربردی دارد؟ اگر میخواهید با مفهوم موینت و کاربردهای آن آشنا شوید حتماً تا پایان مقاله با ما همراه باشید.
Mount چیست؟
موینت به معنای اتصال است و Mount Point نقطه اتصال میباشد. در واقع موینت به معنی اتصال یک پارتیشن یا یک دایرکتوری بر روی یک دایرکتوری دیگر است. Mount ابزاری است که میتواند با استفاده از خط فرمان فایل سیستم را در یک سلسله مراتب مشخص به سیستم عامل اطلاع دهد. به عبارتی با استفاده از Mount سیستم عامل درک میکند که فایل سیستم دیگر در محل مشخص قبلی وجود ندارد و اکنون از دسترس خارج است و در جایگاه دیگری قرار دارد.
انواع هاردها
شاید تاکنون برای شما نیز پیش آمده باشد که سیستم عامل لینوکس را به صورت گرافیکی نصب کرنید. در این نصب دیدهاید که در قدم اول باید هارد را پارتیشن بندی کنید. با توجه به اینکه هاردها دارای نوع و تعدادهای مختلف هستند با نامهای متفاوتی تحت عنوان hdx . sdx شناخته میشوند.
hd بیانگر IDE و sd مخفف هاردهای SATA میباشد. X بیانگر تعداد هاردهای متصل به سیستم است که با یک حرف نشان داده میشود.
سیستم ext4 یا UFS
برای اینکه مفهوم Mount را بیشتر درک کنید توصیه میکنیم که به مثال زیر توجه داشته باشید:
تصور کنید که شما سه هارد SATA دارید در این صورت باید دستگاه یا Device مختلف با نامهای sda, sdb, sdc داشته باشید. برای اتصال پارتیشن بندی به یک دایرکتوری همچون mnt باید از سیستمی مانند ext4 یا UFS استفاده کنید. در واقع نقطه اتصال شما ext4 یا UFS است.
سیستم فایلی که fstab نام دارد تمام دایرکتریها mount است. برای boot شدن تمامی دایرکتریها را فرا میخواند و آنها را Mount میکند. برای برقراری اتصال باید فایل fstab فراخوانده شود. در این صورت تاکنون سیستم فایلی به جز / دایرکتوری متصل نشده است.
سیستم procfs و sysfs
در کنار سیستم فایل های رایج مانند ext4 و vfat دسته دیگری از سیستم فایل به نام های procfs و sysfs وجود دارند که می توانند به پارتیشن های همنام خودشان متصل شوند. این فایل ها بصورت خودکار توسط هسته ساخته و mount میشوند.
این فایلها در دیسک یا هارد قرار نگرفتهاند و محل قرار گرفتن آنها رم است. به همین دلیل زمانی که سیستم را خاموش یا ریستارت میکنید از بین میروند و هر بار که سیستم دوباره بوت میشود فایلها دوباره از نو به صورت خودکار ساخته میشوند. در این فایلها اطلاعات مختلفی مانند اطلاعات پردازنده، سختافزار و ماژولهای هسته قرار گرفته است. نکته بسیار مهم در مورد این فایلها این است که هیچگونه حجمی از سیستم شما اشغال نمیکنند و حجم فایلها صفر است.
کاربردهای Mount
زمانی که سیستم مورد نظر خودتان را راه اندازی میکنید و میخواهید پارتیشن بندی را انجام دهید باید آن را به یک دایرکتوری یا نقطه اتصال در سیستم متصل mount کنید. اگر این کار را انجام ندهید نمیتوانید از پارتیشن بندی استفاده کنید. در سیستم عامل لینوکس برای انجام این کار باید از دستوری به نام Mount استفاده کنید.
برای موینت کردن سیستم فایل خودتان به صورت دستی میتوانید از دستور Mount استفاده کنید. این دستور بدون هیچ سوئیچی اجرا میشود و این صورت شما این امکان برایتان فراهم میشود که بتوانید فهرستی از سیستم فایلها و پارتیشنها و دایرکتوریهای مینوت را مشاهده کنید. نکته بسیار مهم این است که برای اینکه این دستور و سوئیچهایش انجام شود باید دسترسی root انجام گیرد.
mount
دستور mount سوییچ t- دارد و تعیین می کند که فقط پارتیشن ها و دایرکتوری هایی از یک نوع خاص مانند ext3 یا ext4 و یا vfat و حتی سیستم فایل procfs لیست شود.
در دستور زیر به جای type نوع سیستم فایل دلخواه را وارد کنید.
mount -t <type>
برای اینکه از دستور Mount استفاده کنید باید دستور زیر را وارد کنید
mount [OPTIONS]<device/directory mount_point>
device/directory پارتیشن یا دایرکتوری است که بر روی mount_point اتصال mount داده میشود. یکی از سوییچ ها t- است که مشخص میکند device/directory با چه نوع سیستم فایلی بر روی mount_point اتصال پیدا کنند. فرمت استفاده از این سوئیچ بصورت زیر خواهد بود.
mount -t <TYPE><device/directory mount_point>
متداولترین مکانها در لینوکس دایرکتوریهای mnt/ و media/ هستند. این امکان برای شما فراهم شده است که بتوانید در این مکانها نقطه اتصال ایجاد کنید. برای ایجاد نقطه اتصال ابتدا باید دستور mkdir را انجام دهید تا یک نقطه اتصال برای دایرکتوری ایجاد شود.
کاربردهای دیگر
در دستور مورد نظر به جای گزینه تایپ میتوانید از گزینههای دیگری نیز مانند ext2 یا ext3, ext4 برای سیستم فایل های رایج توزیع های لینوکس استفاده کنید. همچنین iso9660 برای فرمت رایج برای cd ها، jfs برای تولید توسط IBM و رایج در سیستم عامل مکینتاش، nfs برای سیستم فایل شبکه و برای اشتراک دایرکتوریها در شبکه استفاده میشود.
nfs4 برای نسخه ۴ از سیستم فایل nfs، udf برای فرمت رایج در dvdها، vfat برای رایج در مکینتاش برای اتصال سیستم فایلهای ویندوزی و همچنین مورد استفاده در floppyها و usb ها، ntfs مانندvfat رایج در مکینتاش ها برای اتصال سیستم فایل های ویندوزی کاربرد دارد.
mkdir /media/flashdisk
در ادامه باید پارتیشن بندی را به آنها متصل کنید. برای این کار میتوانید از دستور زیر استفاده کنید. در این دستور یک پارتیشنبه نام sdc1 بر روی یک نقطه اتصال در زیر دایرکتوری media/ به نام flashdisk و از نوع vfatمتصل میشود.
mount -t vfat /dev/sdc1 /media/flashdisk
خطای رایج
mountpoint /media/flashdisk: No such file or directory
این خطا زمانی به وجود میآید که نقطه اتصال قبلاً ایجاد نشده است و بدون ایجاد نقطه اتصال شما بخواهید یک پارتیشن یا دایرکتبندی را اتصال دهید. زیرا تلاش کردهاید آن را به چیزی که وجود ندارد متصل کنید.
چگونه همه Mountهای لینوکس را مشاهده کنیم؟
بعد از اینکه دستور Mount را وارد کردید برای اینکه مطمئن شوید که دستور به درستی کار میکند باید تمامی موینتهای لینوکس را مشاهده کنید. وقتی یک پارتیشن یا فایل سیستم را mount میکنید باید از عملکرد درست آن اطمینان داشته باشید. این امکان برایتان فراهم است که بتوانید با یک کد تمامی مینوتهای لینوکس را مشاهده کنید. به عنوان مثال وقتی درایو usb را در مسیر media/myusb مینوت کردهاید و درایو USB در حالت mount قرار گرفته است, Usb Device به صورت dev/sdb1/ شناخته میشود. برای مشاهده موینتها دستور زیر کاربرد دارد.
-> $mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=1970308k,nr_inodes=492577,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)
cgroup on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime,seclabel)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,xattr,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime,seclabel)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,hugetlb)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,memory)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,cpu,cpuacct)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,devices)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,blkio)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,cpuset)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,net_cls,net_prio)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,perf_event)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,freezer)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,pids)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/sda2 on / type ext4 (rw,relatime,seclabel,data=ordered)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=29,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=1923)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel,pagesize=2M)
debugfs on /sys/kernel/debug type debugfs (rw,relatime,seclabel)
mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,seclabel)
/dev/sda1 on /boot type ext4 (rw,relatime,seclabel,data=ordered)
/dev/sda5 on /home type ext4 (rw,relatime,seclabel,data=ordered)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=396456k,mode=700,uid=1000,gid=1000)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,relatime)
tracefs on /sys/kernel/debug/tracing type tracefs (rw,relatime,seclabel)
/dev/sdb1 on /mnt/hdd type fuseblk (rw,relatime,user_id=0,group_id=0,allow_other,blksize=4096)
در این مقاله از پارس آپتایم با عنوان Mount چیست و چه کاربردی دارد؟ در تلاش بودیم شما را با مفهوم موینت و کاربردهای آن آشنا کنیم امیدواریم که این آموزش برایتان مفید باشد.