Fdisk

از ArchWiki پارسی
پرش به: ناوبری، جستجو

util-linux fdisk یک ابزار گفتگو محورِ خط فرمان برای ساخت و ایجاد تغییرات در پارتیشن‌ها و جدول پارتیشن‌ها(Partition Table) بر روی هارد دیسک است. هارد دیسک‌ها به پارتیشن‌ها تقسیم می‌شوند و این قسمت‌ها در جدول پارتیشن‌ تعریف می‌شوند.

این بخش fdisk(8) و ابزار مرتبط با آن sfdisk(8)، همچنین ابزار‌های مشابه gdisk(8) و sgdisk(8) را پوشش می‌دهد.

نکته:
  • برای پارتیشن‌بندی کاربردیِ اولیه میتوان از یک رابط کاربری متنی مثل cfdisk(8) و cgdisk(8) استفاده کرد.
  • وبسایت GPT fdisk اطلاعات دقیقی درمورد gdisk, cgdisk و sgdisk داده‌‌است.

نصب

برای استفاده از fdisk و ابزارهای مرتبط به آن، بسته‌ی util-linux که بخشی از گروه‌بسته‌ی base است، لازم است.

برای استفاده از gdisk و ابزارهای مرتبط به آن، بسته‌ی gptfdisk را نصب کنید.

فهرست پارتیشن‌ها

برای فهرست کردن جدول پارتیشن‌ها و پارتیشن‌های روی یک دستگاه، میتوان دستور زیر را به‌ کار برد: (برای مثال نام دستگاه ‎/dev/sda‎ باشد.)

 # fdisk -l /dev/sda
نکته: اگر نام دستگاه مشخص نشود، fdisk تمام پارتیشن‌های ‎/proc/partitions‎ را فهرست می‌کند.

یا برای gdisk:

 # gdisk -l /dev/sda

پشتیبان‌گیری و بازگرداندن جدول پارتیشن

قبل از اعمال تغییرات روی هارد دیسک، شاید بخواهید از جدول پارتیشن و طرح پارتیشن‌های دستگاه پشتیبان بگیرید. همچنین می‌توانید از یک پشتیبان استفاده کرده و یک طرح پارتیشن را روی چندین دستگاه پیاده کنید.

با استفاده از dd

MBR در ۵۱۲ بایت اولیه‌ی دیسک ذخیره می‌شود که دارای ۴ بخش است:

  1. ۴۴۰ بایت اولیه شامل کدهای بوت‌استرپ می‌شود (بوت لودر).
  2. ۶ بایت بعدی شامل امضای دیسک می‌شود.
  3. ۶۴ بایت بعدی شامل جدول پارتیشن می‌شود (۴ ورودی ۱۶ بایتی که هر ورودی برای یک پارتیشن پرایمری است).
  4. ۲ بایت آخر هم شامل امضای بوت می‌شود.

برای ذخیره کردن MBR با عنوان ‎mbr_file.img‎:

# dd if=/dev/sdX of=/path/to/mbr_file.img bs=512 count=1

همچنین می‌توانید از یک دیسک ایمیج کامل، MBR را استخراج کتید:

# dd if=/path/to/disk.img of=/path/to/mbr_file.img bs=512 count=1
هشدار: بازگردانی MBR با یک جدول پارتیشن ناسازگار باعث می‌شود اطلاعات شما غیر قابل خواندن شود و باعث سخت شدن بازیابی می‌شود. اگر می‌خواهید بوت لودر را از نو نصب کنید از مراجع قابل اعتماد آن‌ها کمک بگیرید. DOS compatibility region: گراب یا Syslinux.

اگر می‌خواهید بوت لودر را بدون پارتیشن‌های پرایمری بازگردانی کنید، فقط ۴۴۰ بایت اول MBR را بازگردانی کنید:

# dd if=/path/to/mbr_file.img of=/dev/sdX bs=440 count=1

برای بازگردانی جدول پارتیشن به تنهایی:

# dd if=/path/to/mbr_file.img of=/dev/sdX bs=1 skip=446 count=64

برای حذف کردن کد بوت استرپ MBR (برای زمانی که می‌خواهید یک سیستم‌عامل را به‌طور کامل از نو نصب کنید) تنها ۴۴۰ بایت اولیه باید به صفر تبدیل شود:

# dd if=/dev/zero of=/dev/sdX bs=440 count=1

با استفاده از sfdisk

برای هر دو نوع GPT و MBR می‌توانید از sfdisk استفاده کنید. برای ذخیره کردن طرح پارتیشن‌ها درون یک پرونده از فلگ ‎-d‎/‎--dump‎ استفاده کنید. مثال ذخیره‌سازی برای دستگاه ‎/dev/sda‎:

 # sfdisk -d /dev/sda > sda.dump

پرونده ایجاد شده برای یک پارتیشن ext4 با حجم ۱ گیگابایت چیزی شبیه به این‌ خواهد بود:

sda.dump
label: gpt
label-id: AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE
device: /dev/sda
unit: sectors
first-lba: 34
last-lba: 1048576

/dev/sda1 : start=2048, size=1048576, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4, uuid=BBF1CD36-9262-463E-A4FB-81E32C12BDE7

برای بازگردانی همان طرح به این شکل عمل کنید:

 # sfdisk /dev/sda < sda.dump

با استفاده از sgdisk

با استفاده از sgdisk می‌توانید یک پشتیبان باینری شامل MBR محافظت شده، سرتیتر اصلی GPT، پشتیبان سرتیتر GPT، و یک کپی از جدول پارتیشن بسازید. مثال زیر جدول پارتیشن دستگاه ‎/dev/sda‎ را در پرونده‌ی ‎sgdisk-sda.bin‎ ذخیره می‌کند:

# sgdisk -b=sgdisk-sda.bin /dev/sda

برای بازگردانی نسخه پشتیبان به این شکل عمل کنید:

# sgdisk -l=sgdisk-sda.bin /dev/sda

برای شبیه‌سازی یک‌ دستگاه (در این‌ مورد ‎/dev/sda‎) بر روی یک دستگاه دیگر (‎/dev/sdc‎):

# sgdisk -R=/dev/sdc /dev/sda

اگر هر دو دستگاه در یک رایانه هستند، باید GUID را به طور اتفاقی(random) تغییر دهید:

 # sgdisk -G /dev/sdc

ساخت جدول پارتیشن و پارتیشن‌ها

اولین قدم در پارتیشن بندی یک دیسک ساختن جدول پارتیشن است. بعد از آن، پارتیشن‌ها باید بر اساس طرح‌بندی پارتیشن‌ها ساخته‌ شوند. جدول پارتیشن را برای راهنمایی انتخاب GPT یا MBR مشاهده کنید.

قبل از شروع، اگر می‌خواهید از جدول پارتیشن و طرح پارتیشن‌های خود پشتیبان بگیرید، پشتیبان‌گیری را مشاهده کنید.

قسمت‌های زیر طرز استفاده از fdisk و gdisk را برای ساخت جدول پارتیشن و پارتیشن‌ها نشان می‌دهد. در قسمت‌های ضروری تفاوت‌های آن‌ها نیز گفته خواهد شد.

اجرای مدیر پارتیشن‌ها

fdisk و gdisk را طبق آموزش بخش زیر اجرا کنید. سپس شروع به #ساختن جدول جدید کنید.

fdisk

fdisk ابزار ویرایش جدول پارتیشن برای MBR است. نسخه‌های اخیر fdisk سیستم منسوخی که از سیلندرها برای واحد نمایش پیش‌فرض استفاده می‌کند را رها کرده‌است. همینطور سازگاری پیش‌فرض با MS-DOS را هم رها کرده‌است. fdisk به‌طور خودکار تمام پارتیشن‌ها را به ۲۰۴۸ بخش (۱ MiB) تراز می‌کند. این باعث کار کردن تمام سایزهای EBS که توسط سازنده‌های SSD شناخته‌شده است، می‌شود و این بدین معناست که تنظیمات پیش‌فرض برای دستگاه مناسب است. fdisk را توسط کاربر ریشه برای دستگاه خود اجرا کنید. برای مثال دستگاه ‎/dev/sda‎:

# fdisk /dev/sda

این دستور به شما رابطی برای اجرای دستورات می‌دهد.

برای دیدن تمامی دستورات قابل استفاده، دستور ‎m‎ را وارد کنید.

gdisk

gdisk ابزار ویرایش جدول پارتیشن برای GPT است. میتوانید به عنوان جایگزین از ابزار cgdisk که نسخه‌ی curses-based است، استفاده کنید. این بخش در مورد cgdisk توضیح نمی‌دهد؛ برای توضیحات بیشتر cgdisk(8) را ببینید.

gdisk نیز مانند fdisk پارتیشن‌ها را به ۲۰۴۸ بخش (۱ MiB) تراز می‌کند که اگر برای همه‌ی SSDها مناسب نباشد، برای اکثر آن‌ها مناسب است.

GNU Parted هم از GPT پشتیبانی می‌کند. اما این ابزار کمتر کاربرپسند است.

برای استفاده از gdisk، دستور gdisk را با دستگاه مورد نظر برای تغییر/ویرایش اجرا کنید. برای مثال دستگاه ‎/dev/sda‎:

# gdisk /dev/sda


این دستور به شما رابطی برای اجرای دستورات می‌دهد.

برای دیدن تمامی دستورات قابل استفاده، دستور ‎m‎ را وارد کنید.

ساختن جدول جدید

برای ساختن یک جدول پارتیشن MBR جدید و حذف تمامی اطلاعات پارتیشن‌های حاضر، ‎o‎ را در ورودی وارد کنید‌. اگر جدول مورد نظر قبلاً ساخته‌شده است، از این بخش عبور کنید‌.

هشدار: اگر یک‌ جدول پارتیشن بر روی دیسکی که حاوی اطلاعات است ایجاد کنید، تمام اطلاعات آن حذف خواهد شد. قبل از اجرای دستورات مراقب اطلاعات خود باشید.

ساختن پارتیشن‌ها

برای ساخت یک پارتیشن جدید دستور ‎n‎ را وارد کنید. سپس باید نوع پارتیشن(فقط در fdisk)، شماره‌ی پارتیشن، بخش آغازین و بخش پایانی را مشخص کنید.

برای تعیین نوع پارتیشن در fdisk، ‎p‎ را برای پارتیشن پرایمری و ‎e‎ را برای پارتیشن extended وارد کنید‌. می‌توانید ۴ پارتیشن پرایمری بسازید.

بخش آغازین و پایانی هر پارتیشن می‌تواند با شماره‌ی بخش‌ها یا پیشوند یکاهای اندازی‌گیری مثل ‎K‎ برای کیلوبایت، ‎M‎ برای مگابایت، ‎G‎ برای گیگابایت، ‎T‎ برای ترابایت و ‎P‎ برای پتابایت مشخص شود. برای مثال ‎40M‎ یک جایگاه ۴۰ مگابایتی از ابتدای دیسک مشخص می‌کند. همچنین می‌توانید فضا را مرتبط با دامنه‌ی پیشفرض مشخص شده، مشخص کنید. برای این‌ کار از ‎-‎ و ‎+‎ استفاده کنید. برای‌ مثال ‎+2G‎ یک فضا از ابتدای بخش مشخص شده تا ۲گیگابایت بعد از آن را مشخص‌ می‌کند. ‎-200M‎ یک‌ فضا تا قبل از ۲۰۰ بخش آخر مشخص می‌کند. با فشردن ‎Enter‎ بدون مشخص کردن مقدار، یک فضا از اولین بخش بزرگترین بلاک تا آخرین بخش همان بلاک در نظر گرفته می‌شود.

نوع پارتیشن را با ID مشخص‌ کنید. به طور پیشفرض نوع پارتیشن، ‎Linux filesystem‎ است که برای بیشتر پارتیشن‌ها مناسب است. برای دیدن لیست انواع پارتیشن‌ها ‎l‎ را وارد کنید. می‌توانید با وارد‌ کردن ‎a‎، پارتیشن را بوتیبل کنید.

نکته:
  • هنگام پارتیشن‌بندی بهترین ایده استفاده از مقدارهای‌ پیشفرض برای ابتدا و انتهای بخش‌هاست. علاوه بر این برای مشخص کردن اندازه‌ی پارتیشن از فرمت 20G+ استفاده کنید.
  • کد ‎ef00‎ در gdisk و ‎EFI System‎ در fdisk برای EFI System Partition است.
  • گراب برای نصب نیاز به BIOS Boot Partition با کد ‎ef02‎ در gdisk و ‎BIOS Boot‎ در fdisk دارد.
  • استفاده از کد ‎8200‎ در gdisk و ‎Linux swap‎ در fdisk برای مونت خودکار پارتیشن swap توسط systemd، توصیه می‌شود.

از یک منبع قابل اعتماد برای تشخیص اندازه‌ی این پارتیشن‌ها استفاده کنید.

از همین روش‌ برای ساخت هر پارتیشن استفاده کنید.

نوشتن و ذخیره تغییرات در دیسک

برای نوشتن تغییرات در دیسک و خروج، ‎w‎ را وارد کنید.

نکات و ترفندها

تبدیل MBR به GPT

gdisk، ,sgdisk و cgdisk قابلیت تبدیل MBR و BSD Disklabel به GPT بدون از دست رفتن اطلاعات را دارند. بر اساس این تبدیل، تمام پارتیشن‌های پرایمری و منطقی(logical) در MBR با GUIDهای درست نوع پارتیشن‌ها و GUIDهای یکتا که برای هر پارتیشن ساخته می‌شوند، می‌توانند به پارتیشن‌های GPT تبدیل شوند. پیوند Converting to or from GPT را برای اطلاعات بیشتر مطالعه کنید.

پس از تبدیل، بوت‌لودرها باید از نو نصب و پیکربندی شوند تا بتوانند از GPT بوت کنند.

توجه:
  • GPT جدول جدید در انتهای دیسک ذخیره می‌کند. این ساختار داده به طور پیشفرض ۳۳ بخش ۵۱۲ بایتی مصرف می‌کند. MBR چنین ساختار داده‌ای ندارد، پس در بعضی موارد پارتیشن انتهای دیسک MBR به انتهای دیسک‌ نزدیک می‌شود و از کامل شدن تبدیل جلوگیری می‌کند. اگر این برای شما اتفاق افتاد باید از تبدیل خودداری کنید و اندازه‌ی پارتیشن آخر را تغییر دهید.
  • اگر بوت‌لودر شما گراب است به یک BIOS boot partition نیاز دارید.
  • مشکلاتی در پشتیبان‌گیری از GPT در لپتاپ‌هایی با قطعات intel و اجرا شدن در حالت RAID وجود دارد. راه‌حل استفاده از AHCI به جای RAID است.


برای تبدیل یک جدول پارتیشن MBR به GPT از دستور زیر استفاده کنید:

# sgdisk -g /dev/sda


بزای تبدیل GPT به MBR از پرچم(flag) ‎m‎ استفاده کنید. به یاد داشته باشید که امکان تبدیل بیش از ۴ پارتیشن پرایمری از GPT به MBR وجود ندارد.

مرتب‌سازی پارتیشن‌ها

این کار زمانی انجام می‌شود که یک پارتیشن جدید میان دو پارتیشن ساخته یا یک پارتیشن حذف می‌شود. مثالی در رابطه با ‎/dev/sda‎ :

MBR:

# sfdisk -r /dev/sda

GPT:

# sgdisk -s /dev/sda

پس از مرتب‌سازی پارتیشن‌ها، اگر از Persistant block device naming استفاده نمی‌کنید، باید پرونده‌های پیکربندی ‎/etc/fstab‎ و/یا ‎/etc/crypttab‎ را تنظیم کنید.

توجه: کرنل باید جدول پارتیشن جدید را برای پارتیشن‌ها (مثل ‎/dev/sda1‎) بخواند تا قابل استفاده شود. سامانه را برای دوباره‌خوانی جدول پارتیشن‌ها مجدداً راه‌اندازی کنید.

بازیابی سرتیتر GPT

این کار زمانی انجام می‌شود که سرتیتر(header) اصلی GPT یا پشتیبان‌ آن آسیب دیده باشد. در این زمان می‌توانید با gdisk آن را بازیابی کنید. مثال در ‎/dev/sda‎:

# gdisk /dev/sda

‎r‎ را برای گزینه‌های بازیابی و دگرگونی وارد کنید (فقط برای کاربران با تجربه و متخصص). از آنجا یکی از موارد را انتخاب کنید:

  • ‎b‎: استفاده از پشتیبان سرتیتر GPT (بازسازی اصلی)
  • ‎d‎: استفاده از سرتیتر اصلی GPT (بازسازی پشتیبان)

پس از اتمام کار دستور ‎w‎ را برای ذخیره‌ساری و خروج وارد کنید.