فهرست مندرجات
دستور Mount ) Mount کردن سیستم فایل یا دیسک )
mount
به معنی اتصال و mount point
به معنی نقطه اتصال است. عمل mount
به معنی اتصال یک پارتیشن یا یک دایرکتوری بر روی یک دایرکتوری دیگر است. اگر تا به حال لینوکس را صورت گرافیکی نصب کرده باشید دیده اید که اول باید هارد را پارتیشن بندی کنید. نام هاردها با توجه به نوع و تعداد هارد بصورت hdX
و sdX
است.
hd
معرف IDE
و sd
مخفف هاردهای SATA
میباشد. X
بیانگر تعداد هاردهای متصل به سیستم است که با یک حرف نشان داده میشود.
بطور مثال اگر سه هارد SATA
دارید پس سه Device
به نام های sda
, sdb
, sdc
خواهید داشت. در مرحله بعدی باید این پارتیشن ها را به یک دایرکتوری مانند /
یا mnt/
اتصال دهید و نوع سیستم فایل مانند ext4
یا UFS
را نیز برای این نقطه اتصال تعیین کنید.
برای توضیحات تکمیلی در ارتباط با نام گذاری دیسک ها پیشنهاد میکنم مطلب آشنایی با نام گذاری دیسک ها در لینوکس را مطالعه کنید.
سیستم فایلی به نام fstab
را که شامل لیست تمامی دایرکتوری های mount
است را در هنگام boot
شدن میخواند و آنها را mount
میکند. ولی پیش از این سیستم بصورت خودکار دایرکتوری /
را mount
میکند. تا زمانیکه فایل fstab
خوانده نشده هیچ سیستم فایلی جز دایرکتوری /
اتصال نیافته است.
به جز سیستم فایل های رایج مانند ext4
و vfat
نوع دیگری از سیستم فایل به نام های procfs
و sysfs
وجود دارند که به پارتیشن های همنام خودشان متصل می شوند و بصورت خودکار توسط هسته ساخته و mount
میشوند.
محل قرارگیری آنها در دیسک یا هارد نیست بلکه در حافظه RAM
قرار دارند و پس از خاموش یا restart
شدن سیستم از بین میروند و در هر بار boot
شدن سیستم دوباره ساخته میشوند این سیستم فایها حاوی اطلاعات سیستمی مانند اطلاعاتی از پردازنده و اطلاعاتی از سخت افزار و ماژول های هسته میباشند جالبی این نوع سیستم فایلها این است که اندازه آنها صفر است و حجمی ندارند.
دستورات mount پارتیشن ها و فایل سیستم در لینوکس
زمانیکه شما یک هارددیسک را به سیستم متصل میکنید احتمالا از ابزارهایی مثل دستور fdisk یا دستور parted برای ایجاد کردن پارتیشن ها استفاده می کنید. زمانیکه شما یک پارتیشن را ایجاد می کنید با استفاده از دستور mkfs فایل سیستم مربوط به پارتیشن ایجاد شده را ext2
, ext3
یا ext4
قرار میدهید.
زمانیکه شما یک پارتیشن را ایجاد میکنید تا زمانیکه پارتیشن مورد نظر را به یک دایرکتوری یا نقطه اتصال در سیستم متصل یا 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>
که باید به جای TYPE یکی از انواع زیر را جایگزین کنید:
- ext2 یا ext3, ext4 : سیستم فایل های رایج توزیع های لینوکس
- iso9660: فرمت رایج برای cd ها
- jfs:تولید شده توسط IBM و رایج در سیستم عامل مکینتاش
- nfs:سیستم فایل شبکه و برای اشتراک دایرکتوری ها در شبکه استفاده میشود
- nfs4: نسخه ۴ از سیستم فایل nfs
- udf:فرمت رایج در dvdها
- vfat:رایج در مکینتاش برای اتصال سیستم فایلهای ویندوزی و همچنین مورد استفاده در floppyها و usb ها
- ntfs:مانندvfat رایج در مکینتاش ها برای اتصال سیستم فایل های ویندوزی
دایرکتوری mnt/
و media/
از متداول ترین مکان ها در لینوکس هستند که میتوانید یک نقطه اتصال را ایجاد کنید. برای این کار ابتدا باید نقطه اتصال را ایجاد کنید. از دستور mkdir برای ساختن یک دایرکتوری به عنوان نقطه اتصال استفاده کنید.
mkdir /media/flashdisk
و سپس باید پارتیشن یا دایرکتوری را به آن متصل کنید. در مثال زیر یک پارتیشن به نام sdc1
بر روی یک نقطه اتصال در زیر دایرکتوری media/
به نام flashdisk
و از نوع vfat
اتصال داده شده است
mount -t vfat /dev/sdc1 /media/flashdisk
اگر نقطه اتصال را از قبل ایجاد نکنید و بخواهید یک پارتیشن یا دایرکتوری را به چیزی که وجود ندارد اتصال دهید خطای زیر را مشاهده میکنید:
mountpoint /media/flashdisk: No such file or directory
۱۲ مثال کاربردی دستورات mount در لینوکس
مثال اول: mount کردن یک cd-rom
فایل دستگاه یا device file ها برای cd
در دایرکتوری dev/
قرار دارد. برای مثال یک دستگاه cd-rom به شکل زیر mount میشود:
mount -t iso9660 -o ro /dev/cdrom /mnt
در مثال قوق آرگومان های o- ro
به این معناست که cd-rom
بایستی بصورت فقط خواندنی یا read only
معرفی یا mount
شود. همیشه مطمئن شوید که دایرکتوری مقصد که در مثال mnt/
مشاهده میکنید قبل از اجرای دستور وجود داشته باشد.
برای مثال از همین روش ما برای نصب لاتک استفاده کردیم در لینک زیر ببینید
راهنمای نصب تکلایو در فدورا (لاتک)
مثال دوم: مشاهده همه mount های لینوکس
بعد از اینکه شما دستور mount
کردن یک پارتیشن یا فایل سیستم را اجرا کردید میتوانید برای اطمینان از عملکرد درست دستور, دستور mount
را بدون هیچ آرگومانی اجرا کنید تا همه mount
های ایجاد شده روی سیستم عامل به شما نمایش داده شود. در مثال زیر بعد از mount
کردن درایو USB
در مسیر media/myusb
در حالت 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)
به غیر از دستور فوق میتوانید از دستور df بدون آرگومان هم تمامی mount point
های سیستم عامل را مشاهده کنید:
-> $df Filesystem 1K-blocks Used Available Use% Mounted on devtmpfs 1970308 0 1970308 0% /dev tmpfs 1982292 16672 1965620 1% /dev/shm tmpfs 1982292 1472 1980820 1% /run tmpfs 1982292 0 1982292 0% /sys/fs/cgroup /dev/sda2 41022688 8045000 30864152 21% / tmpfs 1982292 36 1982256 1% /tmp /dev/sda1 999320 206720 723788 23% /boot /dev/sda5 194932388 19592092 165368536 11% /home tmpfs 396456 20 396436 1% /run/user/1000 /dev/sdb1 976759804 707037720 269722084 73% /mnt/hdd