بلاگ/فرمانهای fdisk در لینوکس برای مدیریت پارتیشنها
بهروز شده
فرمانهای fdisk در لینوکس برای مدیریت پارتیشنها
فرمانهای fdisk در لینوکس برای مدیریت پارتیشنها شامل نمایش، ایجاد، تغییر ابعاد، حذف، کپی و جابجایی استفاده میشوند. fdisk مخفف عبارتی معادل دیسک تعمیر شده یا فرمتشده بوده و یکی از رایجترین ابزارهای مدیریتی دیسک در محیط لینوکس یا یونیکس است. یک رابط کاربری ساده برای این ابزار ارائه شده و کار با...
1399/04/023799 بازدید
فرمانهای fdisk در لینوکس برای مدیریت پارتیشنها شامل نمایش، ایجاد، تغییر ابعاد، حذف، کپی و جابجایی استفاده میشوند. fdisk مخفف عبارتی معادل دیسک تعمیر شده یا فرمتشده بوده و یکی از رایجترین ابزارهای مدیریتی دیسک در محیط لینوکس یا یونیکس است. یک رابط کاربری ساده برای این ابزار ارائه شده و کار با آن بسیار راحت است.
این ابزار برای ایجاد پارتیشنهای جدید، سازماندهی فضا برای درایوها، تنظیم دوباره درایوهای قدیمی و انتقال دادهها به دیسکهای جدید بسیار سودمند است. در نتیجه شما میتوانید حداکثر ۴ پارتیشن اصلی جدید بسازید و در عین حال، به تعداد دلخواه پارتیشن لوجیکال بر اساس فضای دیسک سخت سیستمتان ایجاد کنید.
در این مطلب قصد داریم که ۱۰ فرمان پایه fdisk را برای مدیریت یک مجموعه پارتیشن در سیستمهای مبتنی بر لینوکس را بررسی کنیم. برای اجرای فرمانهای fdisk در لینوکس لازم است که به صورت کاربر روت وارد شده باشید. در غیر این صورت با پیغام خطای “command not found” روبرو خواهید شد.
هشدار: هرگز پارتیشنی ایجاد یا حذف نکنید و تغییر ندهید. مگر اینکه واقعاً بدانید چه کار میکنید!
۱) نمایش تمام پارتیشنهای دیسک در لینوکس
فرمان پایهای که در ادامه میآید، لیست تمام پارتیشنهای کنونی سیستمتان را نشان خواهد داد. گزینه –l همراه با فرمان fdisk به منظور دریافت لیست کل پارتیشنهای در دسترس لینوکس به کار میرود. پارتیشنها همراه با دستگاههای مربوطه نمایش داده میشوند. به عنوان مثال /dev/sda، /dev/sdb یا /dev/sdc.
برای نمایش تمام پارتیشنهای یک هارد دیسک خاص میتوانید از گزینه –l به همراه نام دستگاه استفاده کنید. به عنوان نمونه، فرمانی که در ادامه میآید، کل پارتیشنهای دستگاه /dev/sda را به نشان خواهد داد. در صورتی که نام دیگری برای دستگاهتان دارید، حتماً آن را تغییر دهید.
اگر بخواهید تمام فرمانهای در دسترس fdisk را مشاهده کنید، میتوانید مطابق زیر به نام هارددیسک در فرمان اشاره کنید. خروجی چیزی شبیه به زیر خواهد بود.
php
1[root@ariaservice.net ~]# fdisk /dev/sda
php
1WARNING: DOS-compatible mode is deprecated. It's strongly recommended to23switch off the mode (command 'c') and change display units to45sectors (command 'u').67Command (m for help):
برای دیدن وضعیت دسترسی به فرمانهای fdisk در لینوکس مثلاً در هارددیسک /dev/sda، از حرف m استفاده کنید. با وارد کردن “m” تمام این فرمانها نمایش داده میشوند.
php
1[root@ariaservice.net~]# fdisk /dev/sda
php
1WARNING: DOS-compatible mode is deprecated. It's strongly recommended to23switch off the mode (command 'c') and change display units to45sectors (command 'u').67Command (m for help): m89Command action1011a toggle a bootable flag1213b edit bsd disklabel1415c toggle the dos compatibility flag1617d delete a partition1819l list known partition types2021m print this menu2223n add a new partition2425o create a new empty DOS partition table2627p print the partition table2829q quit without saving changes3031s create a new empty Sun disklabel3233t change a partition's system id3435u change display/entry units3637v verify the partition table3839w write table to disk and exit4041x extra functionality (experts only)4243Command (m for help):
۴) چاپ جدول پارتیشنهای لینوکس
برای چاپ تمام پارتیشنهای یک هارد دیسک باید در حالت فرمان این هارددیسک قرار داشته باشید.
php
1[root@ariaservice.net ~]# fdisk /dev/sda
در حالت فرمان، به جای حرف m که قبلاً وارد کردیم، این بار p را وارد کنید. در نتیجه، جدول پارتیشن /dev/sda چاپ میشود.
اگر بخواهید یک پارتیشن خاص از یک هارددیسک در لینوکس حذف کنید، باید در حالت فرمان fdisk باشید.
php
1[root@ariaservice.net~]# fdisk /dev/sda
حالا برای شروع حذف پارتیشنها حرف d را وارد کنید. وقتی d را میزنیم، سیستم از ما میخواهد که شماره پارتیشنی که میخواهیم از هارد دیسک حذف کنیم، وارد کنیم. فرض کنید که بخواهیم پارتیشن شماره ۴ را حذف کنیم. در نتیجه، پارتیشن ۴ حذف میشود و به جای آن، فضای خالی در جدول پارتیشنها نمایش داده میشود. قبل از اینکه جایگزینی دیگری در جدول پارتیشنها انجام دهید، کلید w را بزنید تا این جدول روی دیسک ذخیره شود. تغییرات پس از اولین راهاندازی دوباره سیستم انجام خواهند شد. این موضوع بهخوبی از خروجی زیر روشن میشود.
php
1[root@ariaservice.net ~]# fdisk /dev/sda
php
1WARNING: DOS-compatible mode is deprecated. It's strongly recommended to23switch off the mode (command 'c') and change display units to45sectors (command 'u').67Command (m for help): d89Partition number (1-4): 41011Command (m for help): w1213The partition table has been altered!1415Calling ioctl() to re-read partition table.1617WARNING: Re-reading the partition table failed with error 16: Device or resource busy.1819The kernel still uses the old table. The new table will be used at2021the next reboot or after you run partprobe(8) or kpartx(8)2223Syncing disks.2425You have new mail in /var/spool/mail/root
نکته: در انجام این مرحله احتیاط کامل داشته باشید. چرا که با استفاده از گزینه d پارتیشن بهطور کلی از سیستم حذف میشود و شما تمام دادهها از دست خواهید داد.
۶) نحوه ایجاد یک پارتیشن جدید در لینوکس
اگر در یکی از هارددیسکهای خود مانند /dev/sda، فضای خالی دارید و میخواهید یک پارتیشن جدید برای آن بسازید، باید در حالت فرمان fdisk برای این هارد دیسک باشید. برای این منظور از فرمان زیر استفاده کنید.
php
1[root@ariaservice.net ~]# fdisk /dev/sda
پس از وارد شدن به این فرمان، کلید n را فشار دهید. در نتیجه خواهید توانست که یک پارتیشن با ابعاد جدید در هارد دیسک بسازید.
php
1WARNING: DOS-compatible mode is deprecated. It's strongly recommended to23switch off the mode (command 'c') and change display units to45sectors (command 'u').67Command (m for help): n89Command action1011e extended1213p primary partition (1-4)1415e
در هنگام ساخت یک پارتیشن جدید، دو گزینه ‘extended‘ و ‘primary‘ در اختیار شما قرار میگیرند. برای انتخاب نوع پارتیشن اصلی یا لوجیکال، حرف p یا e را استفاده کنید. سپس از شما خواسته میشود که دو ورودی زیر را وارد کنید.
اولین عدد سیلندر پارتیشن نهایی
آخرین عدد سیلندر پارتیشن نهایی
میتوانید ابعاد سیلندر را با اضافه کردن “+5000M” در آخرین سیلندر وارد کنید. در اینجا منظور از علامت + و 5000M، اندازه پارتیشن جدید است. به خاطر داشته باشید که بعد از ساخت یک پارتیشن جدید، باید فرمان w را اجرا کنید. در نتیجه تغییرات جدید جدول پارتیشنها ذخیره میشوند. در نهایت، سیستم را دوباره راهاندازی کنید تا پارتیشن جدید تأیید شود.
php
1Command (m for help): w23The partition table has been altered!45Calling ioctl() to re-read partition table.67WARNING: Re-reading the partition table failed with error 16: Device or resource busy.89The kernel still uses the old table. The new table will be used at1011the next reboot or after you run partprobe(8) or kpartx(8)1213Syncing disks.
۷) نحوه فرمت یک پارتیشن در لینوکس
پس از ساخت پارتیشن جدید، حتماً با استفاده از فرمان mkfs آن را فرمت کنید. برای این منظور، فرمان زیر را در ترمینال تایپ کنید. در اینجا پارتیشن جدید ما /dev/sda4 نام دارد.
php
1[root@ariaservice.net ~]# mkfs.ext4 /dev/sda4
۸) نحوه بررسی اندازه یک پارتیشن در لینوکس
پس از فرمت پارتیشن، نوبت به بررسی اندازه پارتیشن با استفاده از گزینه s در فرمان fdisk در لینوکس میرسد. به این طریق میتوانید ابعاد یک پارتیشن را بررسی کنید.
php
1[root@ariaservice.net ~]# fdisk -s /dev/sda2
php
15194304
۹) تنظیم ترتیب جدول پارتیشنها
اگر یک پارتیشن لوجیکال را پاک کرده و دوباره ایجاد کرده باشید، احتمالاً با مشکل ‘partition out of order‘ برخورد کردهاید. یا مثلاً پیامهایی مانند ‘Partition table entries are not in disk order‘. فرض کنید که سه پارتیشن لوجیکال مانند sda4، sda5 و sda6 حذف شده باشند. ولی بعد سیستم آنها را دوباره با نام sda5 میسازد. به این دلیل که پس از حذف پارتیشنها، پارتشین sd7 به عنوان sda4 جابجا میشود و فضای خالی نیز در انتها قرار میگیرد.
برای رفع چنین مشکلاتی و استفاده از عنوان sda4 به پارتیشن جدید، ابتدا با استفاده از کلید x یک بخش عملکرد اضافی باز کنید. سپس با گزینه f در فرمان expert، مطابق زیر ترتیب جدول پارتیشنها را درست کنید.
php
1[root@ariaservice.net ~]# fdisk /dev/sda
php
1WARNING: DOS-compatible mode is deprecated. It's strongly recommended to23switch off the mode (command 'c') and change display units to45sectors (command 'u').67Command (m for help): x89Expert command (m for help): f1011Done.1213Expert command (m for help): w1415The partition table has been altered!1617Calling ioctl() to re-read partition table.1819WARNING: Re-reading the partition table failed with error 16: Device or resource busy.2021The kernel still uses the old table. The new table will be used at2223the next reboot or after you run partprobe(8) or kpartx(8)2425Syncing disks.
پس از اجرای فرمان f، حتماً فرمان w را نیز اجرا کنید تا موارد را ذخیره کرده و از حالت فرمان fdisk خارج شوید. وقتی ترتیب پارتیشنها تغییر پیدا کرد، دیگر با پیغام خطا روبرو نخواهید شد.
۱۰) چگونه علامت بوت ‘*‘ را از هر کدام از پارتیشنها حذف کنیم؟
فرمان fdisk در لینوکس به صورت پیشفرض علامت بوت ‘*‘ را در هر پارتیشن نشان میدهد. اگر میخواهید این علامت را فعال یا غیرفعال کنید، مراحل زیر را انجام دهید.
php
1[root@ariaservice.net ~]# fdisk /dev/sda
فرمان p را تایپ کنید تا جدول کنونی پارتیشنها را ببینید. اینجا مشاهده میکنید که علامت ستاره در کنار دیسک /dev/sda1 وجود دارد.
php
1[root@ariaservice.net ~]# fdisk /dev/sda23WARNING: DOS-compatible mode is deprecated. It's strongly recommended to45switch off the mode (command 'c') and change display units to67sectors (command 'u').89Command (m for help): p1011Disk /dev/sda: 637.8 GB, 637802643456 bytes1213255 heads, 63 sectors/track, 77541 cylinders1415Units = cylinders of 16065 * 512 = 8225280 bytes1617Device Boot Start End Blocks Id System1819/dev/sda1 * 1 13 104391 83 Linux2021/dev/sda2 14 2624 20972857+ 83 Linux2223/dev/sda3 2625 4582 15727635 83 Linux2425/dev/sda4 4583 77541 586043167+ 5 Extended2627/dev/sda5 4583 5887 10482381 83 Linux2829/dev/sda6 5888 7192 10482381 83 Linux3031/dev/sda7 7193 7845 5245191 83 Linux3233/dev/sda8 7846 8367 4192933+ 82 Linux swap / Solaris3435/dev/sda9 8368 77541 555640123+ 8e Linux LVM
سپس فرمان a را وارد کنید تا علامت بوت غیرفعال شود. به عنوام مثال در اینجا، پارتیشن شماره 1 را وارد کردهایم. در نتیجه، دیگر علامت ستاره در کنار این پارتیشن دیده نمیشود.
php
1Command (m for help): a23Partition number (1-9): 145Command (m for help): p67Disk /dev/sda: 637.8 GB, 637802643456 bytes89255 heads, 63 sectors/track, 77541 cylinders1011Units = cylinders of 16065 * 512 = 8225280 bytes1213Device Boot Start End Blocks Id System1415/dev/sda1 1 13 104391 83 Linux1617/dev/sda2 14 2624 20972857+ 83 Linux1819/dev/sda3 2625 4582 15727635 83 Linux2021/dev/sda4 4583 77541 586043167+ 5 Extended2223/dev/sda5 4583 5887 10482381 83 Linux2425/dev/sda6 5888 7192 10482381 83 Linux2627/dev/sda7 7193 7845 5245191 83 Linux2829/dev/sda8 7846 8367 4192933+ 82 Linux swap / Solaris3031/dev/sda9 8368 77541 555640123+ 8e Linux LVM3233Command (m for help):
جمعبندی
در این مطلب سعی بر این بود که تقریباً تمام فرمانهای پایه fdisk در لینوکس بررسی شوند. با این وجود، هنوز هم فرمان fdisk شامل فرمانهای تخصصی دیگری است که میتوانید آنها را با زدن کلید x پیدا کنید. برای کسب اطلاعات بیشتر میتوانید از فرمان man fdisk در ترمینال استفاده کنید.
منبع: tecmint.com