| SGDISK(8) | GPT fdisk Manual | SGDISK(8) |
نام (NAME)
sgdisk - ابزار خط فرمان برای دستکاری پارتیشنهای GPT در لینوکس
خلاصه دستور (SYNOPSIS)
sgdisk [ options ] device
توضیحات (DESCRIPTION)
بسته GPT fdisk ابزاری متنی و منومحور برای ایجاد و دستکاری جداول پارتیشن است. این بسته از دو برنامه تشکیل شده است: برنامه تعاملی متنی gdisk و برنامه خط فرمانی sgdisk. هر دو برنامه میتوانند جدول پارتیشن قدیمی Master Boot Record (MBR) یا دیسکلیبل BSD که بدون پارتیشن حامل MBR ذخیره شده است را به فرمت جدیدتر Globally Unique Identifier (GUID) Partition Table (GPT) تبدیل کنند، یا یک جدول پارتیشن GUID را بارگذاری نمایند. این صفحه راهنما به مستندسازی برنامه خط فرمانی sgdisk میپردازد.
برخی از گزینههای پیشرفته دستکاری و بازیابی دادهها نیازمند درک تمایز میان دادههای اصلی و نسخه پشتیبان و همچنین میان هدرهای GPT و جداول پارتیشن هستند. برای اطلاعات درباره مقایسه MBR با GPT و همچنین واژگان و ساختار GPT، مستندات گسترده gdisk را در https://www.rodsbooks.com/gdisk مشاهده کنید یا به ویکیپدیا مراجعه نمایید.
برنامه sgdisk از یک رابط کاربری کاملاً مبتنی بر خط فرمان استفاده میکند، که آن را برای استفاده در اسکریپتها یا توسط کارشناسانی که میخواهند یک یا دو تغییر سریع روی دیسک اعمال کنند مناسب میسازد. (البته برنامه ممکن است هنگام مواجهه با برخی خطاهای خاص از کاربر سوال بپرسد.) نام برنامه بر اساس sfdisk انتخاب شده است، اما گزینههای کاربری این دو برنامه کاملاً با یکدیگر تفاوت دارند.
بهطور معمول، sgdisk روی فایلهای دستگاه دیسک کار میکند، مانند /dev/sda یا /dev/hda در لینوکس، /dev/disk0 در Mac OS X، یا /dev/ad0 یا /dev/da0 در FreeBSD. این برنامه همچنین میتواند روی فایلهای ایمیج دیسک عمل کند، که میتوانند رونوشت کاملی از کل دیسک (مثلاً ایجادشده با dd) یا ایمیجهای خام دیسک مورد استفاده شبیهسازهایی مانند QEMU یا VMWare باشند. توجه داشته باشید که فقط ایمیجهای خام دیسک (raw) پشتیبانی میشوند؛ sgdisk نمیتواند روی فرمتهای فشرده یا سایر فرمتهای پیشرفته ایمیج دیسک کار کند.
سیستم پارتیشنبندی MBR از ترکیبی از آدرسدهی سیلندر/هد/سکتور (CHS) و آدرسدهی بلوک منطقی (LBA) استفاده میکند. روش اول دستوپاگیر و محدودکننده است. GPT آدرسدهی CHS را کنار گذاشته و منحصراً از حالت 64-بیتی LBA استفاده میکند. بنابراین، ساختارهای داده GPT و در نتیجه sgdisk نیازی به درگیر شدن با هندسههای CHS و تمام مشکلات ناشی از آن ندارند.
برای بهترین نتیجه، در صورت امکان همواره باید از برنامه جدول پارتیشن مخصوص هر سیستمعامل استفاده کنید. برای مثال، پارتیشنهای Mac OS X را باید با برنامه Mac OS X Disk Utility و پارتیشنهای لینوکس را با برنامههای لینوکسی gdisk، sgdisk یا GNU Parted ایجاد کنید.
در هنگام شروع، sgdisk تلاش میکند نوع پارتیشن استفادهشده روی دیسک را شناسایی کند. اگر دادههای معتبر GPT بیابد، از آن استفاده خواهد کرد. اگر sgdisk یک MBR یا دیسکلیبل BSD معتبر پیدا کند اما دادههای GPT وجود نداشته باشد، تلاش میکند MBR یا دیسکلیبل را به فرمت GPT تبدیل کند. (البته دیسکلیبلهای BSD به احتمال زیاد دارای پارتیشنهای ابتدایی یا انتهایی غیرقابل استفاده خواهند بود، زیرا با ساختارهای داده GPT همپوشانی دارند.) برنامه GPT fdisk میتواند دیسکهای Apple Partition Map (APM) را که در مکینتاشهای مبتنی بر 680x0 و PowerPC استفاده میشوند شناسایی کند، اما نمیتواند از دادههای آنها استفاده کند. اگر گزینهای را تعیین کنید که منجر به تغییرات در یک MBR یا دیسکلیبل BSD شود، sgdisk آن تغییرات را نادیده میگیرد مگر اینکه از گزینه -g (--mbrtogpt)، -z (--zap) یا -Z (--zap-all) استفاده شود. اگر از گزینه -g استفاده کنید، sgdisk جدول MBR یا دیسکلیبل را با یک GPT جایگزین میکند. این عمل بالقوه خطرناک است! سیستم شما ممکن است غیرقابل بوت شود و اگر دیسک از کدهای نوع ناشناخته استفاده کند، کدهای نوع پارتیشن ممکن است خراب شوند. مشکلات بوت بهویژه زمانی محتمل هستند که دیسک را با سیستمعاملهای ناآگاه از GPT به صورت چندبوتی (multi-boot) استفاده کنید.
تبدیل MBR به GPT در صورتی که MBR اصلی از پارتیشنهای منطقی (logical) استفاده کرده باشد، حداقل یک شکاف در شمارهگذاری پارتیشنها باقی خواهد گذاشت. این شکافها بیضرر هستند، اما در صورت تمایل میتوانید با استفاده از گزینه -s (--sort) آنها را حذف کنید. (انجام این کار ممکن است مستلزم بهروزرسانی فایل /etc/fstab شما باشد.)
هنگام ایجاد یک جدول پارتیشن تازه، ممکن است نکات زیر حائز اهمیت باشند:
- *
- برای دیسکهای داده (غیربوت) و دیسکهای بوت مورد استفاده در رایانههای مبتنی بر BIOS همراه با لودر بوت GRUB، پارتیشنها را میتوان به هر ترتیب و با هر اندازه دلخواهی ایجاد کرد.
- *
- دیسکهای بوت برای سیستمهای مبتنی بر EFI نیازمند یک EFI System Partition (کد داخلی gdisk برابر با 0xEF00) هستند که با فرمت FAT-32 قالببندی شده باشد. توصیه میشود اندازه این پارتیشن 550 مگابایت (MiB) در نظر گرفته شود. (پارتیشنهای ESP کوچکتر رایج هستند، اما برخی از نسخههای EFI دارای درایورهای ناقص یا ناپایدار FAT هستند که برای عملکرد قابل اعتماد به پارتیشن بزرگتری نیاز دارند.) فایلهای مربوط به بوت در اینجا ذخیره میشوند. (توجه داشته باشید که GNU Parted چنین پارتیشنهایی را به صورت داشتن "boot flag" تنظیمشده شناسایی میکند.)
- *
- برخی از لودرهای بوت برای سیستمهای مبتنی بر BIOS از یک BIOS Boot Partition (کد داخلی gdisk برابر با 0xEF02) استفاده میکنند که در آن لودر بوت ثانویه ذخیره میشود؛ احتمالاً حتی بدون بهرهگیری از یک سیستمفایل. (GRUB2 میتواند به صورت اختیاری از چنین پارتیشنی استفاده کند.) این پارتیشن معمولاً میتواند بسیار کوچک باشد (حدود ۳۲ تا ۲۰۰ کیلوبایت، اگرچه در عمل ۱ مگابایت رایجتر است)، اما برای جزئیات بیشتر باید به مستندات لودر بوت خود مراجعه کنید.
- *
- اگر قرار است ویندوز از یک دیسک GPT بوت شود، ایجاد پارتیشنی از نوع Microsoft Reserved (کد داخلی sgdisk برابر با 0x0C01) توصیه میشود. اندازه این پارتیشن باید حدود ۱۲۸ مگابایت باشد. این پارتیشن معمولاً بعد از EFI System Partition و بلافاصله قبل از پارتیشنهای داده ویندوز قرار میگیرد. (توجه داشته باشید که GNU Parted تمام پارتیشنهای FAT را از این نوع ایجاد میکند که این امر عملاً باعث غیرقابل استفاده شدن پارتیشن برای ذخیرهسازی عادی فایل در هر دو سیستمعامل ویندوز و Mac OS X میشود.)
- *
- ابزارهای GPT در برخی سیستمعاملها فضای خالی (معمولاً ۱۲۸ مگابایت) بعد از هر پارتیشن ایجاد میکنند. هدف این است که ابزارهای آینده دیسک بتوانند از این فضا استفاده کنند. چنین فضای خالی برای دیسکهای GPT الزامی نیست، اما ایجاد آن ممکن است به نگهداری دیسک در آینده کمک کند.
گزینهها (OPTIONS)
برخی گزینهها هیچ آرگومانی دریافت نمیکنند، برخی دیگر یک آرگومان دریافت میکنند (معمولاً یک شماره پارتیشن)، و برخی دیگر آرگومانهای ترکیبی با جداکننده دونقطه دریافت میکنند. برای نمونه، گزینه -n (--new) یک شماره پارتیشن، شماره سکتور شروع و شماره سکتور پایان دریافت میکند، مانند sgdisk -n 2:2000:50000 /dev/sdc که پارتیشن جدیدی با شماره ۲ ایجاد میکند که از سکتور ۲۰۰۰ شروع شده و در سکتور ۵۰۰۰۰ روی /dev/sdc به پایان میرسد.
گزینههای غیرمرتبط را میتوان با یکدیگر ترکیب کرد؛ با این حال، برخی از چنین ترکیبهایی بیمعنی خواهند بود (مانند حذف یک پارتیشن و سپس تغییر کد نوع GUID آن). برنامه sgdisk گزینهها را به ترتیبی که وارد شدهاند تفسیر میکند، بنابراین اثرات میتوانند بسته به ترتیب متفاوت باشند. برای نمونه، دستور sgdisk -s -d 2 ابتدا ورودیهای جدول پارتیشن را مرتب میکند و سپس پارتیشن ۲ را از فهرست تازه مرتبشده حذف میکند؛ اما دستور sgdisk -d 2 -s پارتیشن ۲ اصلی را حذف میکند و سپس جدول پارتیشن تغییریافته را مرتب میسازد.
بررسی خطا و فرصتهای تصحیح اشتباهات در sgdisk حداقلی است. اگرچه برنامه تلاش میکند ساختارهای داده GPT را معتبر نگه دارد، اما قبل از انجام اقدامات خود از کاربر تاییدیه نمیخواهد. مگر اینکه حتماً به یک برنامه خط فرمانی نیاز داشته باشید، باید به جای sgdisk از برنامه تعاملی gdisk استفاده کنید، زیرا gdisk به شما امکان میدهد در صورت بروز اشتباه، بدون ذخیره تغییرات از برنامه خارج شوید.
اگرچه sgdisk بر پایه همان کد دستکاری پارتیشن در gdisk ساخته شده است، اما ویژگیهای کمتری نسبت به همتای تعاملی خود پیادهسازی میکند. گزینههای موجود در sgdisk عبارتند از:
- -a, --set-alignment=value
- تنظیم مضرب تراز سکتور. برنامه GPT fdisk شروع پارتیشنها را با سکتورهایی که مضربی از این مقدار هستند تراز میکند، که مقدار پیشفرض آن روی دیسکهای تازه فرمتشده ۱ مگابایت (۲۰۴۸ روی دیسکهایی با سکتورهای ۵۱۲ بایتی) است. این مقدار تراز برای دستیابی به عملکرد بهینه با درایوهای Western Digital Advanced Format و درایوهای مشابه که اندازه سکتور فیزیکی آنها بزرگتر از سکتور منطقی است، با برخی از انواع آرایههای RAID، و با دستگاههای SSD ضروری است. هنگامی که از گزینه -I استفاده شود، همین مقدار تراز برای تعیین نقاط پایان پارتیشن نیز استفاده میشود؛ اما پارتیشنها در یک واحد کمتر از مضرب این مقدار خاتمه مییابند تا طول پارتیشن مضربی از این مقدار باقی بماند.
- -A, --attributes=list|[partnum:show|or|nand|xor|=|set|clear|toggle|get[:bitnum|hexbitmask]]
- مشاهده یا تنظیم ویژگیهای پارتیشن. از list برای مشاهده مقادیر ویژگیهای تعریفشده (شناختهشده) استفاده کنید. هنگام استفاده از این گزینه، شماره پارتیشن (و حتی نام فایل دستگاه) را حذف کنید. سایر موارد نیازمند یک شماره پارتیشن هستند. گزینههای show و get تنظیمات فعلی ویژگی را نمایش میدهند (به ترتیب همه ویژگیها یا برای یک بیت خاص). گزینههای or، nand، xor، =، set، clear و toggle به شما امکان میدهند مقدار بیت ویژگی را تغییر دهید. گزینههای set، clear، toggle و get روی یک شماره بیت عمل میکنند؛ سایر موارد روی یک ماسک بیتی هگزادسیمال کار میکنند. برای مثال، دستور sgdisk -A 4:set:2 /dev/sdc را وارد کنید تا ویژگی بیت ۲ (قابل بوت در BIOS سنتی) را روی پارتیشن ۴ در /dev/sdc تنظیم کند.
- -b, --backup=file
- ذخیره دادههای پارتیشن در یک فایل پشتیبان. با استفاده از این گزینه میتوانید از جدول پارتیشن فعلی درون حافظه در یک فایل دیسک نسخه پشتیبان تهیه کنید. فایل حاصل یک فایل باینری شامل MBR محافظتی، هدر اصلی GPT، هدر پشتیبان GPT و یک نسخه از جدول پارتیشن به همین ترتیب خواهد بود. توجه داشته باشید که نسخه پشتیبان از ساختارهای داده فعلی درون حافظه گرفته میشود؛ بنابراین اگر برنامه را اجرا کنید، تغییراتی ایجاد نمایید و سپس از این گزینه استفاده کنید، نسخه پشتیبان بازتابدهنده تغییرات شما خواهد بود. اگر ساختارهای داده GPT آسیب دیده باشند، ممکن است نسخه پشتیبان وضعیت آسیبدیده را به درستی منعکس نکند؛ در عوض، بازتابدهنده تفسیر اولیه GPT fdisk از GPT خواهد بود.
- -B, --byte-swap-name=partnum
- جابهجایی ترتیب بایتها (byte order) برای نام پارتیشن مشخصشده. برخی از ابزارهای پارتیشنبندی، از جمله GPT fdisk نسخه 1.0.7 و نسخههای پیش از آن، ممکن است نام پارتیشن را با ترتیب بایت نادرست روی رایانههای big-endian (مانند مِینفریمهای IBM s390 و مکهای مبتنی بر PowerPC) بنویسند. این قابلیت این مشکل را برطرف میکند.
- -c, --change-name=partnum:name
- تغییر نام GPT یک پارتیشن. این نام به صورت رشته UTF-16 کدگذاری میشود، اما وارد کردن و نمایش مناسب هر کاراکتری فراتر از مقادیر پایهای ASCII نیازمند پشتیبانی مناسب از محلیسازی (locale) و قلم است. در بیشتر موارد، لینوکس نام پارتیشن را نادیده میگیرد، اما ممکن است در برخی سیستمعاملها مهم باشد. اگر میخواهید نامی را تعیین کنید که حاوی فاصله است، آن را درون علامت نقلقول قرار دهید، مانند sgdisk -c 1:"Sample Name" /dev/sdb. توجه داشته باشید که نام GPT یک پارتیشن از نام سیستمفایل که در ساختارهای داده سیستمفایل کدگذاری میشود، مجزا است.
- -C, --recompute-chs
- محاسبه مجدد مقادیر CHS در MBR محافظتی یا ترکیبی. این گزینه گاهی اوقات میتواند کمککننده باشد چنانچه ابزار دیسک، سیستمعامل یا BIOS مقادیر CHS استفادهشده توسط پارتیشنها در MBR محافظتی یا ترکیبی را نپذیرد. بهویژه، مشخصات GPT مقدار CHS برابر با 0xFFFFFF را برای پارتیشنهای بزرگتر از ۸ گیبیبایت الزامی میداند، اما این مقدار از نظر فنی بر اساس استانداردهای معمول غیرمجاز است. برخی از بایوسها در صورت مواجهه با این مقدار متوقف میشوند. این گزینه مقدار نرمالتری از CHS را مجدداً محاسبه میکند -- مقدار 0xFEFFFF برای پارتیشنهای بزرگتر از ۸ گیبیبایت، که امکان بوت شدن این بایوسها را فراهم میسازد.
- -d, --delete=partnum
- حذف یک پارتیشن. این اقدام ورودی را از جدول پارتیشن حذف میکند اما دادههای درون سکتورهایی که در اصل به آن پارتیشن روی دیسک تخصیص یافته بودند را دستکاری نمیکند. اگر پارتیشن MBR ترکیبی متناظری وجود داشته باشد، gdisk آن را نیز حذف میکند و هر پارتیشن محافظتی MBR مجاور از نوع 0xEE (EFI GPT) را برای پر کردن فضای خالی جدید گسترش میدهد.
- -D, --display-alignment
- نمایش مقدار فعلی تراز سکتور. پارتیشنها بر روی مضاربی از مقدار سکتور گزارششده توسط این گزینه ایجاد خواهند شد. میتوانید مقدار تراز را با گزینه -a تغییر دهید.
- -e, --move-second-header
- انتقال ساختارهای داده پشتیبان GPT به انتهای دیسک. از این گزینه استفاده کنید اگر دیسکهایی را به یک آرایه RAID اضافه کردهاید و در نتیجه یک دیسک مجازی با فضایی ایجاد شده است که پس از ساختارهای داده پشتیبان GPT قرار میگیرد. این دستور ساختارهای داده پشتیبان GPT را به انتهای دیسک، یعنی جایی که به آن تعلق دارند، منتقل میکند.
- -E, --end-of-largest
- نمایش شماره سکتور پایان بزرگترین بلوک سکتورهای در دسترس روی دیسک. یک اسکریپت میتواند این مقدار را ذخیره کرده و به عنوان بخشی از گزینه -n برای ایجاد یک پارتیشن بازگرداند. اگر هیچ سکتور تخصیصنیافتهای در دسترس نباشد، این تابع مقدار 0 را برمیگرداند.
- -f, --first-in-largest
- نمایش شماره سکتور شروع بزرگترین بلوک سکتورهای در دسترس روی دیسک. یک اسکریپت میتواند این مقدار را ذخیره کرده و به عنوان بخشی از گزینه -n برای ایجاد یک پارتیشن بازگرداند. اگر هیچ سکتور تخصیصنیافتهای در دسترس نباشد، این تابع مقدار 0 را برمیگرداند. توجه داشته باشید که این پارامتر نسبت به تراز پارتیشن کور است؛ زمانی که در عمل یک پارتیشن ایجاد میکنید، نقطه شروع آن ممکن است نسبت به این مقدار تغییر کند.
- -F, --first-aligned-in-largest
- مشابه با -f (--first-in-largest)، با این تفاوت که شماره سکتور را با اعمال اصلاحات تراز فعلی برمیگرداند. از این تابع استفاده کنید اگر نیاز دارید نقطه شروع واقعی پارتیشن را محاسبه کنید نه یک نقطه شروع تئوری، یا نقطه شروع واقعی را در حالتی که مقدار تراز را روی ۱ تنظیم کردهاید.
- -g, --mbrtogpt
- تبدیل یک دیسک دارای MBR یا دیسکلیبل BSD به دیسک GPT. به عنوان یک اقدام ایمنی، استفاده از این گزینه روی دیسکهای دارای MBR یا دیسکلیبل BSD در صورتی که قصد ذخیره تغییرات خود را دارید الزامی است تا از آسیب تصادفی به چنین دیسکهایی جلوگیری شود.
- -G, --randomize-guids
- تصادفیسازی GUID دیسک و GUIDهای یکتای تمام پارتیشنها (اما نه GUIDهای کد نوع پارتیشن آنها). این تابع ممکن است پس از شبیهسازی یک دیسک استفاده شود تا تمام GUIDها را بار دیگر یکتا سازد.
- -h, --hybrid
- ایجاد یک MBR ترکیبی. این گزینه از یک تا سه شماره پارتیشن را که با علامت دونقطه از هم جدا شدهاند، به عنوان آرگومان دریافت میکند. شما میتوانید به صورت اختیاری یک پارتیشن نهایی "EE" را تعیین کنید تا نشان دهد EFI GPT (نوع 0xEE) باید در انتهای جدول قرار گیرد، در غیر این صورت در ابتدای جدول قرار خواهد گرفت و به دنبال آن پارتیشن(های) تعیینشده توسط شما میآیند. کدهای نوع آنها بر اساس کدهای نوع GPT fdisk تقسیم بر 0x0100 تعیین میشوند، که معمولاً برای پارتیشنهای ویندوز صحیح است. اگر فلگ فعال/قابل بوت (active/bootable) باید تنظیم شود، باید این کار را در برنامه دیگری مانند fdisk انجام دهید. برنامه gdisk گزینههای بیشتری برای ایجاد MBR ترکیبی ارائه میدهد.
- -i, --info=partnum
- نمایش اطلاعات تفصیلی پارتیشن. اطلاعات خلاصهای که توسط دستور -p تولید میشود لزوماً بسیاری از جزئیات، مانند GUID یکتای پارتیشن و ترجمه کد نوع داخلی پارتیشن در sgdisk به یک نام ساده نوع را حذف میکند. گزینه -i این اطلاعات را برای یک پارتیشن منفرد نمایش میدهد.
- -I, --align-end
- در صورت امکان، نقاط پایانی پارتیشنها را در یک واحد کمتر از مضرب مقدار تراز، تراز میکند. هنگامی که هم نقاط شروع و هم نقاط پایان تراز باشند، اندازه پارتیشنها مضاربی از مقدار تراز خواهد بود، که این امر برای عملکرد صحیح برخی از ابزارهای رمزنگاری پارتیشن ضروری است. این گزینه برای تمام پارتیشنهایی که پس از این گزینه در خط فرمان ایجاد میشوند اعمال میگردد. توجه داشته باشید که این ترازسازی همیشه امکانپذیر نیست؛ برای مثال، اگر فضای خالی در انتهای دیسک کمتر از مقدار تراز باشد، در حالی که پارتیشن نهایی فعلی تراز شده باشد، و اگر از sgdisk خواسته شود در آن فضا پارتیشنی بسازد، انتهای آن تراز نخواهد شد.
- -j, --move-main-table=sector
- تنظیم سکتور شروع جدول پارتیشن اصلی. این مقدار معمولاً ۲ است، اما در برخی موارد ممکن است نیاز به افزایش داشته باشد، مثلاً زمانی که یک سیستم روی تراشه (SoC) برای خواندن کد بوت از سکتور ۲ کدنویسی سختافزاری (hard-code) شده باشد. توصیه میشود از تغییر این مقدار خودداری کنید مگر اینکه انجام آن کاملاً ضروری باشد.
- -k, --move-backup-table=sector
- تنظیم سکتور شروع جدول پارتیشن دوم/پشتیبان. جدول پشتیبان معمولاً درست قبل از آخرین سکتور قرار میگیرد که هدر پشتیبان را نگهداری میکند. مقدار پیشفرض بنابراین اندازه دیسک منهای یک، منهای اندازه کل جدول پارتیشن (به سکتور، معمولاً ۳۲) است. احتمالاً دلایل بسیار کمی برای تغییر این مقدار وجود دارد، و در حالی که استاندارد EFI الزامی در این مورد تعیین نمیکند، بیشتر ابزارها فرض میکنند که جدول پشتیبان در انتهای انتهایی دیسک قرار دارد.
- -l, --load-backup=file
- بارگذاری دادههای پارتیشن از یک فایل پشتیبان. این گزینه معکوس گزینه -b است. توجه داشته باشید که بازیابی دادههای پارتیشن از هر چیزی به جز دیسک اصلی توصیه نمیشود. این گزینه حتی اگر جدول پارتیشن اصلی دیسک خراب باشد نیز کار خواهد کرد؛ با این حال، بیشتر گزینههای دیگر در همان خط فرمان نادیده گرفته خواهند شد.
- -L, --list-types
- نمایش خلاصهای از انواع پارتیشن. سیستم GPT از یک GUID برای شناسایی انواع پارتیشن برای سیستمعاملها و اهداف خاص استفاده میکند. برای سهولت در ورود دادهها، sgdisk این مقادیر را در قالب مقادیر دو بایتی (چهار رقم هگزادسیمال) فشرده میکند که با کدهای معادل MBR آنها مرتبط است. به طور مشخص، کد MBR در مقدار هگزادسیمال 0x0100 ضرب میشود. برای مثال، کد فضای swap لینوکس در MBR برابر با 0x82 است و در gdisk برابر با 0x8200 است. البته تطابق یکبهیک غیرممکن است. بهویژه، کدهای تمام انواع پارتیشنهای FAT و NTFS با یک کد GPT منفرد (که در sgdisk به صورت 0x0700 وارد میشود) مطابقت دارند. برخی سیستمعاملها از یک کد MBR واحد استفاده میکنند اما در GPT کدهای بسیار بیشتری به کار میبرند. برای این موارد، sgdisk شماره کدهای متوالی اضافه میکند، مانند 0xa500 برای دیسکلیبل FreeBSD، کد 0xa501 برای بوت FreeBSD، کد 0xa502 برای swap در FreeBSD و غیره. توجه داشته باشید که این کدهای دو بایتی مختص gdisk و sgdisk هستند. این گزینه نیازی به تعیین یک نام فایل معتبر دستگاه دیسک ندارد.
- -m, --gpttombr
- تبدیل دیسک از فرمت GPT به فرمت MBR. این گزینه از یک تا چهار شماره پارتیشن را که با دونقطه از هم جدا شدهاند، به عنوان آرگومان دریافت میکند. کدهای نوع آنها بر اساس کدهای نوع GPT fdisk تقسیم بر 0x0100 تعیین میشوند. اگر فلگ فعال/قابل بوت باید تنظیم شود، باید این کار را در برنامه دیگری مانند fdisk انجام دهید. برنامه gdisk گزینههای بیشتری برای تبدیل MBR ارائه میدهد. تبدیل بیش از چهار پارتیشن از فرمت GPT به MBR یا تبدیل پارتیشنهایی که فراتر از مرز ۲ ترابایت (2TiB) شروع میشوند یا بزرگتر از ۲ ترابایت هستند، امکانپذیر نیست.
- -n, --new=partnum:start:end
- ایجاد یک پارتیشن جدید. شما یک شماره پارتیشن، سکتور شروع و یک سکتور پایان وارد میکنید. هر دو سکتور شروع و پایان را میتوان به صورت مقادیر مطلق بر حسب شماره سکتور یا موقعیتهایی اندازهگیریشده با کیبیبایت (K)، مبیبایت (M)، گیبیبایت (G)، تبیبایت (T) یا پبیبایت (P) مشخص کرد؛ برای نمونه، 40M موقعیتی با فاصله ۴۰ مگابایت از ابتدای دیسک را مشخص میکند. شما میتوانید موقعیتها را نسبت به شروع یا پایان محدوده پیشفرض مشخصشده با قرار دادن علامت '+' یا '-' قبل از عدد تعیین کنید، مانند +2G برای تعیین نقطهای با ۲ گیگابایت بعد از سکتور شروع پیشفرض، یا -200M برای تعیین نقطهای ۲۰۰ مگابایت قبل از آخرین سکتور در دسترس. مقدار 0 برای شروع یا پایان، مقدار پیشفرض را تعیین میکند که همان شروع بزرگترین بلوک در دسترس برای سکتور شروع و پایان همان بلوک برای سکتور پایان است. مقدار 0 برای partnum باعث میشود برنامه از اولین شماره پارتیشن در دسترس استفاده کند. استفادههای بعدی از گزینههای -A (--attributes)، -c (--change-name)، -t (--typecode) و -u (--partition-guid) نیز میتوانند از 0 برای ارجاع به همان پارتیشن استفاده کنند.
- -N, --largest-new=num
- ایجاد یک پارتیشن جدید که بزرگترین بلوک فضای در دسترس روی دیسک را پر میکند. در صورت تمایل میتوانید از گزینه -a (--set-alignment) برای تنظیم تراز استفاده کنید. مقدار 0 برای num باعث میشود برنامه از اولین شماره پارتیشن در دسترس استفاده کند. استفادههای بعدی از گزینههای -A (--attributes)، -c (--change-name)، -t (--typecode) و -u (--partition-guid) نیز میتوانند از 0 برای ارجاع به همان پارتیشن استفاده کنند.
- -o, --clear
- پاک کردن تمام دادههای پارتیشن. این شامل دادههای هدر GPT، تمام تعاریف پارتیشن و MBR محافظتی میشود. توجه داشته باشید که این عملیات، مانند بیشتر عملیاتهای دیگر، روی دیسک آسیبدیده با شکست مواجه خواهد شد. اگر میخواهید دیسکی را که میدانید آسیب دیده است برای استفاده GPT آماده کنید، ابتدا باید با گزینه -Z آن را پاکسازی کرده و سپس به طور عادی پارتیشنبندی کنید. این گزینه حتی اگر جدول پارتیشن اصلی دیسک خراب باشد نیز کار خواهد کرد؛ با این حال، بیشتر گزینههای دیگر در همان خط فرمان نادیده گرفته خواهند شد.
- -O, --print-mbr
- نمایش اطلاعات خلاصه پایه پارتیشن MBR. این شامل شماره پارتیشنها، شمارههای سکتور شروع و پایان، اندازههای پارتیشن، کدهای نوع پارتیشن MBR و نام پارتیشنها است. این گزینه عمدتاً برای عیبیابی مشکلات جدول پارتیشن، بهویژه روی دیسکهای دارای MBR ترکیبی مفید است.
- -p, --print
- نمایش اطلاعات خلاصه پایه پارتیشن GPT. این شامل شماره پارتیشنها، شمارههای سکتور شروع و پایان، اندازههای پارتیشن، کدهای نوع پارتیشن sgdisk و نام پارتیشنها است. برای اطلاعات بیشتر، از گزینه -i (--info) استفاده کنید.
- -P, --pretend
- وانمود کردن به اعمال تغییرات مشخصشده. ساختارهای داده GPT درون حافظه مطابق با پارامترهای دیگر تغییر میکنند، اما تغییرات روی دیسک نوشته نمیشوند.
- -r, --transpose
- جابهجا کردن ورودیهای دو پارتیشن در جدول پارتیشن. یک یا هر دو پارتیشن میتوانند خالی باشند، اگرچه جابهجا کردن دو پارتیشن خالی بیمعنی است. برای نمونه، اگر پارتیشنهای ۱ تا ۴ تعریف شده باشند، جابهجا کردن ۱ و ۵ منجر به جدولی با پارتیشنهای شمارهگذاریشده ۲ تا ۵ میشود. جابهجا کردن پارتیشنها به این روش هیچ تأثیری بر تخصیص فضای دیسک آنها ندارد؛ این کار فقط ترتیب آنها را در جدول پارتیشن تغییر میدهد.
- -R, --replicate=second_device_filename
- تکثیر جدول پارتیشن دستگاه اصلی روی دستگاه دوم مشخصشده. توجه داشته باشید که جدول پارتیشن تکثیرشده یک رونوشت دقیق است، شامل تمام GUIDها؛ اگر دستگاه باید GUIDهای یکتای خود را داشته باشد، باید از گزینه -G روی دیسک جدید استفاده کنید.
- -s, --sort
- مرتبسازی ورودیهای پارتیشن. شمارههای پارتیشن GPT لزوماً نیازی به مطابقت با ترتیب پارتیشنها روی دیسک ندارند. اگر میخواهید با هم مطابقت داشته باشند، میتوانید از این گزینه استفاده کنید. توجه داشته باشید که برخی از ابزارهای پارتیشنبندی هر زمان که تغییری ایجاد میکنند، پارتیشنها را مرتب میسازند. چنین تغییراتی در نام فایلهای دستگاه شما منعکس خواهد شد، بنابراین در صورت استفاده از این گزینه ممکن است لازم باشد /etc/fstab را ویرایش کنید.
- -t, --typecode=partnum:{hexcode|GUID}
- تغییر کد نوع یک پارتیشن منفرد. شما کد نوع را با استفاده از یک عدد هگزادسیمال دو بایتی، همانطور که پیشتر توضیح داده شد، یا یک مقدار GUID کاملاً مشخص، مانند EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 وارد میکنید.
- -T, --transform-bsd=partnum
- تبدیل پارتیشنهای BSD به پارتیشنهای GPT. این گزینه روی دیسکلیبلهای BSD نگهداریشده درون پارتیشنهای GPT (یا MBR تبدیلشده) کار میکند. کدهای نوع پارتیشنهای تبدیلشده احتمالاً به تنظیم دستی نیاز خواهند داشت. sgdisk هنگام اجرا تلاش میکند دیسکلیبلهای BSD ذخیرهشده روی دیسک اصلی را تبدیل کند، اما این تبدیل احتمالاً پارتیشنهای اول یا آخری تولید میکند که غیرقابل استفاده هستند. تنوع فراوان شاخههای BSD بدان معناست که احتمال ناتوانی sgdisk در تبدیل یک دیسکلیبل BSD در مقایسه با احتمال بروز مشکلات در تبدیل MBR بالا است.
- -u, --partition-guid=partnum:guid
- تنظیم GUID یکتای پارتیشن برای یک پارتیشن به صورت مجزا. مقدار GUID میتواند یک GUID کامل یا 'R' برای تنظیم یک GUID تصادفی باشد.
- -U, --disk-guid=guid
- تنظیم GUID برای کل دیسک. مقدار GUID میتواند یک GUID کامل یا 'R' برای تنظیم یک GUID تصادفی باشد.
- --usage
- چاپ خلاصهای کوتاه از گزینههای موجود.
- -v, --verify
- بررسی سلامت دیسک. این گزینه مشکلات مختلفی را بررسی میکند، مانند CRCهای نادرست و عدم تطابق دادههای اصلی و پشتیبان. البته این گزینه به طور خودکار بیشتر مشکلات را تصحیح نمیکند؛ برای این کار باید از گزینههای موجود در منوی بازیابی و تبدیل استفاده کنید. اگر مشکلی یافت نشود، این دستور خلاصهای از فضای تخصیصنیافته دیسک را نمایش میدهد. این گزینه حتی اگر جدول پارتیشن اصلی دیسک خراب باشد نیز کار خواهد کرد؛ با این حال، بیشتر گزینههای دیگر در همان خط فرمان نادیده گرفته خواهند شد.
- -V, --version
- نمایش اطلاعات نسخه برنامه. از این گزینه میتوان بدون تعیین نام فایل دستگاه استفاده کرد.
- -z, --zap
- پاکسازی (نابودی) ساختارهای داده GPT و سپس خروج. از این گزینه در صورتی استفاده کنید که میخواهید دیسک GPT را با استفاده از fdisk یا برنامه دیگری که از GPT ناآگاه است، دوباره پارتیشنبندی کنید. این گزینه فقط ساختارهای داده GPT را از بین میبرد؛ MBR دستنخورده باقی میماند. این امر آن را برای از بین بردن ساختارهای داده GPT پس از اینکه دیسک توسط یک ابزار ناآگاه از GPT برای MBR دوباره پارتیشنبندی شد، مفید میسازد؛ با این حال، خطر آسیب رسیدن به لودرهای بوت یا حتی ابتدای اولین پارتیشن یا انتهای آخرین پارتیشن MBR وجود دارد. اگر آن را روی یک دیسک GPT معتبر استفاده کنید، MBR با تعریف نامناسب پارتیشن EFI GPT (0xEE) باقی خواهد ماند که میتوانید با استفاده از ابزاری دیگر آن را حذف کنید.
- -Z, --zap-all
- پاکسازی (نابودی) ساختارهای داده GPT و MBR و سپس خروج. این گزینه عملکردی بسیار شبیه به -z دارد، اما از آنجا که MBR را نیز همانند GPT پاک میکند، در صورتی مناسبتر است که بخواهید پس از استفاده از این گزینه دیسک را دوباره پارتیشنبندی کنید، و اگر از قبل دیسک را دوباره پارتیشنبندی کردهاید، کاملاً نامناسب است.
- -?, --help
- چاپ خلاصهای از گزینهها.
مقادیر بازگشتی (RETURN VALUES)
برنامه sgdisk بسته به موفقیت یا شکست خود مقادیر مختلفی را برمیگرداند:
- 0
- اجرای عادی برنامه
- 1
- تعداد بسیار کم آرگومانها
- 2
- هنگام خواندن جدول پارتیشن خطایی رخ داده است
- 3
- دیسک غیر-GPT شناسایی شده و گزینه -g داده نشده است، اما عملیات نیازمند یک عمل نوشتن است
- 4
- یک خطا از ذخیره تغییرات جلوگیری کرد
- 5
- هنگام خواندن از ورودی استاندارد خطایی رخ داد (هرگز نباید با sgdisk رخ دهد، اما ممکن است با gdisk رخ دهد)
- 8
- عملیات تکثیر دیسک (-R) با شکست مواجه شد
ایرادات (BUGS)
ایرادات و محدودیتهای شناختهشده عبارتند از:
- *
- این برنامه تنها روی لینوکس، FreeBSD و Mac OS X به درستی کامپایل میشود. نسخههای لینوکس برای x86-64 (۶۴ بیتی)، x86 (۳۲ بیتی) و PowerPC (۳۲ بیتی) آزمایش شدهاند که نسخه x86-64 بیشترین آزمونها را پشت سر گذاشته است.
- *
- نسخه FreeBSD این برنامه نمیتواند تغییرات جدول پارتیشن را زمانی که پارتیشنهای موجود روی آن دیسک سوار (mount) شدهاند، بر روی دیسک بنویسد. (همین مشکل در بسیاری دیگر از ابزارهای FreeBSD مانند gpt، fdisk و dd نیز وجود دارد.) این محدودیت را میتوان با وارد کردن دستور sysctl kern.geom.debugflags=16 در خط فرمان پوسته برطرف کرد.
- *
- فیلدهای مورد استفاده برای نمایش شماره سکتورهای شروع و پایان برای پارتیشنها در گزینه -p دارای پهنای ۱۴ کاراکتر هستند. این مقدار به محدودیتی در حدود ۴۵ پبیبایت (PiB) ترجمه میشود. در دیسکهای بزرگتر، ستونهای نمایشدادهشده از حالت تراز خارج خواهند شد.
- *
- برنامه هنگام تبدیل از فرمت MBR تنها میتواند تا ۱۲۸ پارتیشن (۴ پارتیشن اصلی و ۱۲۴ پارتیشن منطقی) را بارگذاری کند. این محدودیت را میتوان با تغییر خط #define MAX_MBR_PARTS در فایل کد منبع basicmbr.h و کامپایل مجدد افزایش داد؛ با این حال، چنین تغییری مستلزم استفاده از یک جدول پارتیشن بزرگتر از حد معمول خواهد بود. (محدودیت ۱۲۸ پارتیشن به این دلیل انتخاب شد که این تعداد برابر با ۱۲۸ پارتیشنی است که توسط رایجترین اندازه جدول پارتیشن پشتیبانی میشود.)
- *
- تبدیل از فرمت MBR گاهی اوقات به دلیل فضای ناکافی در ابتدا یا (معمولاً) انتهای دیسک با شکست مواجه میشود. تغییر اندازه جدول پارتیشن (با استفاده از گزینه 's' در منوی کارشناسان) گاهی اوقات میتواند این مشکل را رفع کند؛ با این حال، در موارد حاد ممکن است لازم باشد قبل از تبدیل با gdisk، اندازه یک پارتیشن را با استفاده از GNU Parted یا ابزاری مشابه تغییر دهید.
- *
- تبدیلهای MBR تنها در صورتی کار میکنند که دیسک دارای توصیفکنندههای صحیح پارتیشن LBA باشد. این توصیفکنندهها باید روی هر دیسک با اندازه بیش از ۸ گیبیبایت یا روی دیسکهای کوچکتر پارتیشنبندیشده با هر نرمافزاری غیر از نرمافزارهای بسیار باستانی وجود داشته باشند.
- *
- پشتیبانی از دیسکلیبل BSD میتواند پارتیشنهای اول یا آخری ایجاد کند که با ساختارهای داده GPT همپوشانی دارند. این مشکل را گاهی میتوان با تنظیم اندازه جدول پارتیشن جبران کرد، اما در موارد حاد ممکن است لازم باشد پارتیشن(های) آسیبدیده حذف شوند.
- *
- به دلیل ماهیت بسیار متغیر ساختارهای دیسکلیبل BSD، تبدیل از این فرمت ممکن است غیرقابل اعتماد باشد -- پارتیشنها ممکن است حذف شوند، به نحوی تبدیل شوند که با سایر پارتیشنها همپوشانی ایجاد کنند، یا با مقادیر شروع یا پایان نادرست تبدیل گردند. از این قابلیت با احتیاط استفاده کنید!
- *
- بوت شدن پس از تبدیل دیسک MBR یا دیسکلیبل BSD احتمالاً مختل خواهد شد. گاهی اوقات نصب مجدد لودر بوت مشکل را برطرف میکند، اما در مواقع دیگر ممکن است لازم باشد لودر بوت را تغییر دهید. به جز روی پلتفرمهای مبتنی بر EFI، ویندوز حداقل تا Windows 7 RC از بوت شدن از دیسکهای GPT پشتیبانی نمیکند. ایجاد یک MBR ترکیبی (با استفاده از گزینه 'h' در منوی بازیابی و تبدیل) یا رها کردن GPT به نفع MBR ممکن است تنها گزینههای شما در این حالت باشد.
نویسندگان (AUTHORS)
نویسنده اصلی: Roderick W. Smith (rodsmith@rodsbooks.com)
مشارکتکنندگان:
* Yves Blusseau (1otnwmz02@sneakemail.com)
* David Hubbard (david.c.hubbard@gmail.com)
* Justin Maggard (justin.maggard@netgear.com)
* Dwight Schauer (das@teegra.net)
* Florian Zumbiehl (florz@florz.de)
همچنین ببینید (SEE ALSO)
cfdisk(8), cgdisk(8), fdisk(8), gdisk(8), mkfs(8), parted(8), sfdisk(8), fixparts(8).
https://en.wikipedia.org/wiki/GUID_Partition_Table
در دسترس بودن (AVAILABILITY)
دستور sgdisk بخشی از بسته GPT fdisk است و از سوی Rod Smith در دسترس قرار دارد.
| 1.0.10 | Roderick W. Smith |