در این مقاله قصد داریم به شما در خصوص ابزارهای مختلف مدیریت فایل سیستم در لینوکس و همچنین روش پارتیشن بندی و فرمت کردن هارد دیسک در سیستم عامل لینوکس صحبت کنیم و بصورت گام به گام به شما نحوه مدیریت فضاهای دیسک در لینوکس را آموزش بدهیم.
ابزار fdisk یک ابزار مدیریت فایل سیستم در لینوکس است که بصورت خط فرمانی یا command line ای کاربرد دارد و طبیعتا همانطور که حدس می زنید مشابه آن را در سیستم عامل ویندوز که کپی برداری از این محصول بود قبلا مشاهده کرده اید.
با استفاده از این ابزار شما می توانید فضای هارد دیسک خود را به قسمت هایی به نام پارتیشن طبقه بندی کنید ، پارتیشن قسمت هایی از فضای خالی هارد دیسک شما هستند که پشت سر هم قرار دارند و به شما اجازه ایجاد کردن File System در آنها داده می شود.
به فرآیند تقسیم کردن فضاهای خالی روی دیسک در اصطلاح partitioning یا پارتیشن بندی گفته می شود. برای مشاهده کردن هارد دیسک های موجود بر روی سیستم و ساختار قالب بندی آنها می توانید از دستور fdisk با سویچ l- استفاده کنید ، به مثال زیر دقت کنید :
root@itpro-debian:/# fdisk –l Disk /dev/sda: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/sda1 * 2048 40136703 20067328 83 Linux /dev/sda2 40138750 41940991 901121 5 Extended /dev/sda5 40138752 41940991 901120 82 Linux swap / Solaris Disk /dev/sdb: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/sdb doesn't contain a valid partition table Disk /dev/sdc: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/sdc doesn't contain a valid partition table
دستور fdisk با سویچ l- به شما لیست تمامی هارد دیسک هایی که به سیستم شما متصل شده اند را نمایش می دهد و همچنین پارتیشن ها و اطلاعاتی در خصوص آنها را نیز نمایش می دهد. خروجی قسمت اول دستور بالا که بصورت جدول می توانیم از آن یاد کنیم به شکل زیر قابل تشریح است :
برای استفاده از ابزار fdisk برای مدیریت کردن یک دیسک کافیست دستور fdisk را اجرا و آرگومان لازم را برای پارتیشن یا هارد دیسک مورد نظر اعمال و آن را اجرا کنیم ، برای مثال دستور fdisk //dev//sdb به شکل زیر اجرا خواهد شد ، البته دقت کنید که من حرف m را برای دریافت لیست آرگومان های دستور fdisk وارد کرده ام :
root@itpro-debian:/# fdisk /dev/sda Command (m for help): m Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition l list known partition types m print this menu n add a new partition create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only)
همانطور که در خروجی دستور بالا به همراه حرف m مشاهده می کنید لیستی از پارامترهای دستور fdisk را مشاهده می کنید که هر کدام برای انجام عملیات بر روی هارد دیسک انتخاب شده استفاده می شوند ، دقت کنید با توجه به خروجی m شما می توانید پیکربندی های مورد نیاز بر روی هارد دیسک مورد نظرتان را انجام دهید ، سعی می کنیم در آموزش های بعدی در خصوص ایجاد کردن پارتیشن ها با استفاده از fdisk توضیحاتی را ارائه کنیم.
دستور mkfs در لینوکس می تواند برای فرمت کردن یک پارتیشن مورد استفاده قرار بگیرد. دستور mkfs به شما این اجازه را می دهد که یک پارتیشن لینوکسی را به File System متفاوتی فرمت کنید. دستور mkfs دستور نسبتا هوشمندی است ، در صورتیکه شما این دستور را برای فرمت کردن پارتیشنی که در حال حاضر دارای فایل سیستم ext3 است اجرا کنید
بصورت خودکار این دستور فایل سیستم جدید را ext3 در نظر می گیرد و دستور mkfs.ext3 را اجرا می کند. با استفاده از دستورات زیر ابتدا ما یک پارتیشن در لینوکس با استفاده از دستور fdisk ایجاد می کنیم و سپس آن را با استفاده از دستور mkfs فرمت و پارتیشن بندی می کنیم :
root@itpro-debian:/# fdisk /dev/sdb Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0xdb98527c. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-41943039, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): Using default value 41943039 Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. root@itpro-debian:/#
با استفاده از دستور بالا ما توانستیم یک پارتیشن به نام dev//sdb1//ایجاد کنیم. بعد از ایجاد کردن پارتیشن مورد نظر ما می توانیم با استفاده از دستور mkfs فایل سیستم مورد نظرمان را بر روی پارتیشن مورد نظر قرار بدهیم ، به مثال زیر توجه کنید که ما sdb1 را با فایل سیستم ext3 فرمت می کنیم :
root@itpro-debian:/# mkfs -t ext3 /dev/sdb1 mke2fs 1.42.5 (29-Jul-2012) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 1310720 inodes, 5242624 blocks 262131 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=4294967296 160 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done root@itpro-debian:/#
فایل سیستم بصورت خودکار هر 180 روز یکبار یا بعد از هر 20 بار mount شدن توسط سیستم عامل بررسی و چک می شود ، شما می توانید این موارد را تغییر دهید اما معمولا پیشنهاد نمی شود ، در حال حاضر شما پارتیشنی با عنوان dev//sdb1// با فایل سیستم ext3 ایجاد کرده اید
که اگر مجددا از دستور fdiks –l استفاده کنید در نتیجه دستور پارتیشن ایجاد شده که بصورت primary هم بوده است نمایش داده می شود ، در خصوص دستور بالا سویچ t- برای تعریف کردن type یا نوع فایل سیستم است که در حال حاضر ext3 در نظر گرفته شده است. البته برای تعریف فایل سیستم های مختلف در موارد مختلف دستورات متفاوتی استفاده می شوند که به شرح زیر می باشند :
با استفاده از دستور fsck شما می توانید فایل سیستم تعیین شده را تجزیه و تحلیل و مشکلات مربوط به آن را شناسایی و در نهایت مشکلات مربوطه را در صورت نیاز تعمیر کنید. برای مثال اگر شما برای دسترسی یا کار کردن با فایل های موجود در دایرکتوری home1/ مشکل داشته باشید و نتوانید توسط سیستم عامل به آنها دسترسی پیدا کنید ابتدا بررسی می کنید که دایرکتوری مورد نظر در کدام پارتیشن قرار گرفته است
که در این مثال فایل سیستم در پارتیشن dev/sdb1/ قرار گرفته است ، سپس دستور fsck را اجرا می کنید و این دستور بصورت خودکار فایل سیستم را بررسی و مشکلات مربوط به آن را تعمیر می کند. ، فقط به این موضوع بسیار دقت کنید که اگر می خواهید هیچ اطلاعاتی در این فرآیند تخریب نشود حتما و حتما ابتدا پارتیشن مورد نظر را unmount کنید و سپس عملیات repair را انجام دهید به مثال زیر دقت کنید ، ابتدا با استفاده از دستور df فضای خالی و وضعیت File System های موجود روی سیستم را مشاهده می کنیم :
root@itpro-debian:/# df -h Filesystem Size Used Avail Use% Mounted on rootfs 19G 3.9G 15G 22% / udev 10M 0 10M 0% /dev tmpfs 201M 680K 200M 1% /run /dev/disk/by-uuid/e6ed1cc1-d422-4737-b4db-0c51ffc27878 19G 3.9G 15G 22% / tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 578M 224K 578M 1% /run/shm root@itpro-debian:/#
سپس با استفاده از دستور زیر dev/sdb1/ را unmount می کنیم ، دقت کنید دستور زیر unmount نیست بلکه umount است :
root@itpro-debian:/# umount /dev/sdb1
و در نهایت با استفاده از دستور زیر فرآیند Repair کردن فایل سیستم را انجام می دهیم :
root@itpro-debian:/# fsck -t ext3 /dev/sdb1 fsck from util-linux 2.20.1 e2fsck 1.42.5 (29-Jul-2012) /dev/sdb1: clean, 11/1310720 files, 126322/5242624 blocks root@itpro-debian:/#
دستور fsck به شما امکانات و قابلیت های مختلف و مهمی را ارائه می دهد که از مهمترین آنها می توانیم به موارد زیر اشاره کنیم :
در سیستم عامل لینوکس در شاخه etc/ فایلی به نام fstab وجود دارد که کلیه جدوال و تنظیمات فایل سیستم لینوکس در آن نگهداری می شود. به عنوان کسی که با فایل سیستم های لینوکس تا به حال آشنا شده اید بایستی بدانید که ساختار این فایل به چه شکل است و چگونه از این فایل به همراه دستور mount در لینوکس استفاده می شود.
زمانیکه شما با ساختار فایل fstab آشنا شدید می توانید محتویات آن را نیز ویرایش کنید و آن را بر طبق نیاز خودتان تغییر بدهید. fstab فایلی است که تمامی اطلاعات مربوط به پارتیشن ها و دستگاه های ذخیره سازی روی کامپیوتر شما را در خود جای داده است ، این فایل همانطور که گفتیم در مسیر etc/ قرار دارد و مسیر کامل دستیابی به آن etc/fstab/ است . fstab اطلاعات مهمی از جمله اینکه پارتیشن ها و دستگاه های ذخیره سازی موجود روی سیستم در کجا و چگونه باید mount شوند را در خود جای داده است.
اگر شما نمی توانید به پارتیشن ویندوزی خود از طریق لینوکس دست پیدا کنید و یا نمی توانید به عنوان یک کاربر عادی اطلاعاتی بر روی فلاپی دیسک یا CD رایت کنید و یا نمی توانید CD خود را به سیستم mount کنید یا در استفاده کردن از CD-RW خود مشکل دارید به احتمال زیاد مشکل شما از تنظیمات نادرست و یا به مشکل خوردن فایل fstab است.
بنابراین معمولا شما با تعمیر کردن فایل fstab می توانید مشکلات مربوط به mount کردن در سیستم عامل لینوکس را برطرف کنید. fstab یک فایل متنی است که براحتی شما می توانید آن را با استفاده از هر ویرایشگر متنی ویرایش و تغییر بدهید. البته توجه کنید که برای ویرایش کردن فایل fstab باید دسترسی root داشته باشید بنابراین باید با کاربر root ابتدا به سیستم login کنید یا با استفاده از دستور su در حالت فعلی دستورات را با کاربر root اجرا کنید.
# /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> # / was on /dev/sda1 during installation UUID=e6ed1cc1-d422-4737-b4db-0c51ffc27878 / ext4 errors=remount-ro 0 1 # swap was on /dev/sda5 during installation UUID=784156f9-1178-4473-9a8f-cfb0d90ad67f none swap sw 0 0 /dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات
محمد نصیری هستم ، بنیانگذار انجمن تخصصی فناوری اطلاعات ایران و مجموعه توسینسو ، هکر قانونمند و کارشناس امنیت سایبری ، سابقه همکاری با بیش از 80 سازمان دولتی ، خصوصی ، نظامی و انتظامی در قالب مشاور ، مدرس و مدیر و ناظر پروژه ، مدرس دوره های تخصص شبکه ، امنیت ، هک و نفوذ ، در حال حاضر در ایران دیگه رسما فعالیتی غیر از مشاوره انجام نمیدم ، عاشق آموزش و تدریس هستم و به همین دلیل دوره های آموزشی که ضبط می کنم در دنیا بی نظیر هستند.
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود