فرمانهای fdisk در لینوکس برای مدیریت پارتیشنها شامل نمایش، ایجاد، تغییر ابعاد، حذف، کپی و جابجایی استفاده میشوند. fdisk مخفف عبارتی معادل دیسک تعمیر شده یا فرمتشده بوده و یکی از رایجترین ابزارهای مدیریتی دیسک در محیط لینوکس یا یونیکس است. یک رابط کاربری ساده برای این ابزار ارائه شده و کار با آن بسیار راحت است.
این ابزار برای ایجاد پارتیشنهای جدید، سازماندهی فضا برای درایوها، تنظیم دوباره درایوهای قدیمی و انتقال دادهها به دیسکهای جدید بسیار سودمند است. در نتیجه شما میتوانید حداکثر ۴ پارتیشن اصلی جدید بسازید و در عین حال، به تعداد دلخواه پارتیشن لوجیکال بر اساس فضای دیسک سخت سیستمتان ایجاد کنید.
در این مطلب قصد داریم که ۱۰ فرمان پایه fdisk را برای مدیریت یک مجموعه پارتیشن در سیستمهای مبتنی بر لینوکس را بررسی کنیم. برای اجرای فرمانهای fdisk در لینوکس لازم است که به صورت کاربر روت وارد شده باشید. در غیر این صورت با پیغام خطای “command not found” روبرو خواهید شد.
هشدار: هرگز پارتیشنی ایجاد یا حذف نکنید و تغییر ندهید. مگر اینکه واقعاً بدانید چه کار میکنید!
۱) نمایش تمام پارتیشنهای دیسک در لینوکس
فرمان پایهای که در ادامه میآید، لیست تمام پارتیشنهای کنونی سیستمتان را نشان خواهد داد. گزینه –l همراه با فرمان fdisk به منظور دریافت لیست کل پارتیشنهای در دسترس لینوکس به کار میرود. پارتیشنها همراه با دستگاههای مربوطه نمایش داده میشوند. به عنوان مثال /dev/sda، /dev/sdb یا /dev/sdc.
[root@ariaservice.net ~]# fdisk –l
Disk /dev/sda: 637.8 GB, 637802643456 bytes 255 heads, 63 sectors/track, 77541 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 13 104391 83 Linux /dev/sda2 14 2624 20972857+ 83 Linux /dev/sda3 2625 4582 15727635 83 Linux /dev/sda4 4583 77541 586043167+ 5 Extended /dev/sda5 4583 5887 10482381 83 Linux /dev/sda6 5888 7192 10482381 83 Linux /dev/sda7 7193 7845 5245191 83 Linux /dev/sda8 7846 8367 4192933+ 82 Linux swap / Solaris /dev/sda9 8368 77541 555640123+ 8e Linux LVM
۲) نمایش یک پارتیشن خاص در لینوکس
برای نمایش تمام پارتیشنهای یک هارد دیسک خاص میتوانید از گزینه –l به همراه نام دستگاه استفاده کنید. به عنوان نمونه، فرمانی که در ادامه میآید، کل پارتیشنهای دستگاه /dev/sda را به نشان خواهد داد. در صورتی که نام دیگری برای دستگاهتان دارید، حتماً آن را تغییر دهید.
[root@ariaservice.net ~]# fdisk –l /dev/sda
Disk /dev/sda: 637.8 GB, 637802643456 bytes 255 heads, 63 sectors/track, 77541 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 13 104391 83 Linux /dev/sda2 14 2624 20972857+ 83 Linux /dev/sda3 2625 4582 15727635 83 Linux /dev/sda4 4583 77541 586043167+ 5 Extended /dev/sda5 4583 5887 10482381 83 Linux /dev/sda6 5888 7192 10482381 83 Linux /dev/sda7 7193 7845 5245191 83 Linux /dev/sda8 7846 8367 4192933+ 82 Linux swap / Solaris /dev/sda9 8368 77541 555640123+ 8e Linux LVM
۳) بررسی دسترسی به فرمانهای fdisk در لینوکس
اگر بخواهید تمام فرمانهای در دسترس fdisk را مشاهده کنید، میتوانید مطابق زیر به نام هارددیسک در فرمان اشاره کنید. خروجی چیزی شبیه به زیر خواهد بود.
[root@ariaservice.net ~]# fdisk /dev/sda
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help):
برای دیدن وضعیت دسترسی به فرمانهای fdisk در لینوکس مثلاً در هارددیسک /dev/sda، از حرف m استفاده کنید. با وارد کردن “m” تمام این فرمانها نمایش داده میشوند.
[root@ariaservice.net~]# fdisk /dev/sda
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). 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 o 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) Command (m for help):
۴) چاپ جدول پارتیشنهای لینوکس
برای چاپ تمام پارتیشنهای یک هارد دیسک باید در حالت فرمان این هارددیسک قرار داشته باشید.
[root@ariaservice.net ~]# fdisk /dev/sda
در حالت فرمان، به جای حرف m که قبلاً وارد کردیم، این بار p را وارد کنید. در نتیجه، جدول پارتیشن /dev/sda چاپ میشود.
Command (m for help): p
Disk /dev/sda: 637.8 GB, 637802643456 bytes 255 heads, 63 sectors/track, 77541 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 13 104391 83 Linux /dev/sda2 14 2624 20972857+ 83 Linux /dev/sda3 2625 4582 15727635 83 Linux /dev/sda4 4583 77541 586043167+ 5 Extended /dev/sda5 4583 5887 10482381 83 Linux /dev/sda6 5888 7192 10482381 83 Linux /dev/sda7 7193 7845 5245191 83 Linux /dev/sda8 7846 8367 4192933+ 82 Linux swap / Solaris /dev/sda9 8368 77541 555640123+ 8e Linux LVM Command (m for help):
۵) نحوه حذف یک پارتیشن در لینوکس
اگر بخواهید یک پارتیشن خاص از یک هارددیسک در لینوکس حذف کنید، باید در حالت فرمان fdisk باشید.
[root@ariaservice.net~]# fdisk /dev/sda
حالا برای شروع حذف پارتیشنها حرف d را وارد کنید. وقتی d را میزنیم، سیستم از ما میخواهد که شماره پارتیشنی که میخواهیم از هارد دیسک حذف کنیم، وارد کنیم. فرض کنید که بخواهیم پارتیشن شماره ۴ را حذف کنیم. در نتیجه، پارتیشن ۴ حذف میشود و به جای آن، فضای خالی در جدول پارتیشنها نمایش داده میشود. قبل از اینکه جایگزینی دیگری در جدول پارتیشنها انجام دهید، کلید w را بزنید تا این جدول روی دیسک ذخیره شود. تغییرات پس از اولین راهاندازی دوباره سیستم انجام خواهند شد. این موضوع بهخوبی از خروجی زیر روشن میشود.
[root@ariaservice.net ~]# fdisk /dev/sda
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): d Partition number (1-4): 4 Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks. You have new mail in /var/spool/mail/root
نکته: در انجام این مرحله احتیاط کامل داشته باشید. چرا که با استفاده از گزینه d پارتیشن بهطور کلی از سیستم حذف میشود و شما تمام دادهها از دست خواهید داد.
۶) نحوه ایجاد یک پارتیشن جدید در لینوکس
اگر در یکی از هارددیسکهای خود مانند /dev/sda، فضای خالی دارید و میخواهید یک پارتیشن جدید برای آن بسازید، باید در حالت فرمان fdisk برای این هارد دیسک باشید. برای این منظور از فرمان زیر استفاده کنید.
[root@ariaservice.net ~]# fdisk /dev/sda
پس از وارد شدن به این فرمان، کلید n را فشار دهید. در نتیجه خواهید توانست که یک پارتیشن با ابعاد جدید در هارد دیسک بسازید.
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): n Command action e extended p primary partition (1-4) e
در هنگام ساخت یک پارتیشن جدید، دو گزینه ‘extended‘ و ‘primary‘ در اختیار شما قرار میگیرند. برای انتخاب نوع پارتیشن اصلی یا لوجیکال، حرف p یا e را استفاده کنید. سپس از شما خواسته میشود که دو ورودی زیر را وارد کنید.
- اولین عدد سیلندر پارتیشن نهایی
- آخرین عدد سیلندر پارتیشن نهایی
میتوانید ابعاد سیلندر را با اضافه کردن “+5000M” در آخرین سیلندر وارد کنید. در اینجا منظور از علامت + و 5000M، اندازه پارتیشن جدید است. به خاطر داشته باشید که بعد از ساخت یک پارتیشن جدید، باید فرمان w را اجرا کنید. در نتیجه تغییرات جدید جدول پارتیشنها ذخیره میشوند. در نهایت، سیستم را دوباره راهاندازی کنید تا پارتیشن جدید تأیید شود.
Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks.
۷) نحوه فرمت یک پارتیشن در لینوکس
پس از ساخت پارتیشن جدید، حتماً با استفاده از فرمان mkfs آن را فرمت کنید. برای این منظور، فرمان زیر را در ترمینال تایپ کنید. در اینجا پارتیشن جدید ما /dev/sda4 نام دارد.
[root@ariaservice.net ~]# mkfs.ext4 /dev/sda4
۸) نحوه بررسی اندازه یک پارتیشن در لینوکس
پس از فرمت پارتیشن، نوبت به بررسی اندازه پارتیشن با استفاده از گزینه s در فرمان fdisk در لینوکس میرسد. به این طریق میتوانید ابعاد یک پارتیشن را بررسی کنید.
[root@ariaservice.net ~]# fdisk -s /dev/sda2
5194304
۹) تنظیم ترتیب جدول پارتیشنها
اگر یک پارتیشن لوجیکال را پاک کرده و دوباره ایجاد کرده باشید، احتمالاً با مشکل ‘partition out of order‘ برخورد کردهاید. یا مثلاً پیامهایی مانند ‘Partition table entries are not in disk order‘. فرض کنید که سه پارتیشن لوجیکال مانند sda4، sda5 و sda6 حذف شده باشند. ولی بعد سیستم آنها را دوباره با نام sda5 میسازد. به این دلیل که پس از حذف پارتیشنها، پارتشین sd7 به عنوان sda4 جابجا میشود و فضای خالی نیز در انتها قرار میگیرد.
برای رفع چنین مشکلاتی و استفاده از عنوان sda4 به پارتیشن جدید، ابتدا با استفاده از کلید x یک بخش عملکرد اضافی باز کنید. سپس با گزینه f در فرمان expert، مطابق زیر ترتیب جدول پارتیشنها را درست کنید.
[root@ariaservice.net ~]# fdisk /dev/sda
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): x Expert command (m for help): f Done. Expert command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks.
پس از اجرای فرمان f، حتماً فرمان w را نیز اجرا کنید تا موارد را ذخیره کرده و از حالت فرمان fdisk خارج شوید. وقتی ترتیب پارتیشنها تغییر پیدا کرد، دیگر با پیغام خطا روبرو نخواهید شد.
۱۰) چگونه علامت بوت ‘*‘ را از هر کدام از پارتیشنها حذف کنیم؟
فرمان fdisk در لینوکس به صورت پیشفرض علامت بوت ‘*‘ را در هر پارتیشن نشان میدهد. اگر میخواهید این علامت را فعال یا غیرفعال کنید، مراحل زیر را انجام دهید.
[root@ariaservice.net ~]# fdisk /dev/sda
فرمان p را تایپ کنید تا جدول کنونی پارتیشنها را ببینید. اینجا مشاهده میکنید که علامت ستاره در کنار دیسک /dev/sda1 وجود دارد.
[root@ariaservice.net ~]# fdisk /dev/sda WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): p Disk /dev/sda: 637.8 GB, 637802643456 bytes 255 heads, 63 sectors/track, 77541 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 13 104391 83 Linux /dev/sda2 14 2624 20972857+ 83 Linux /dev/sda3 2625 4582 15727635 83 Linux /dev/sda4 4583 77541 586043167+ 5 Extended /dev/sda5 4583 5887 10482381 83 Linux /dev/sda6 5888 7192 10482381 83 Linux /dev/sda7 7193 7845 5245191 83 Linux /dev/sda8 7846 8367 4192933+ 82 Linux swap / Solaris /dev/sda9 8368 77541 555640123+ 8e Linux LVM
سپس فرمان a را وارد کنید تا علامت بوت غیرفعال شود. به عنوام مثال در اینجا، پارتیشن شماره 1 را وارد کردهایم. در نتیجه، دیگر علامت ستاره در کنار این پارتیشن دیده نمیشود.
Command (m for help): a Partition number (1-9): 1 Command (m for help): p Disk /dev/sda: 637.8 GB, 637802643456 bytes 255 heads, 63 sectors/track, 77541 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 1 13 104391 83 Linux /dev/sda2 14 2624 20972857+ 83 Linux /dev/sda3 2625 4582 15727635 83 Linux /dev/sda4 4583 77541 586043167+ 5 Extended /dev/sda5 4583 5887 10482381 83 Linux /dev/sda6 5888 7192 10482381 83 Linux /dev/sda7 7193 7845 5245191 83 Linux /dev/sda8 7846 8367 4192933+ 82 Linux swap / Solaris /dev/sda9 8368 77541 555640123+ 8e Linux LVM Command (m for help):
جمعبندی
در این مطلب سعی بر این بود که تقریباً تمام فرمانهای پایه fdisk در لینوکس بررسی شوند. با این وجود، هنوز هم فرمان fdisk شامل فرمانهای تخصصی دیگری است که میتوانید آنها را با زدن کلید x پیدا کنید. برای کسب اطلاعات بیشتر میتوانید از فرمان man fdisk در ترمینال استفاده کنید.
منبع: tecmint.com