وبلاگ سعید رسولی

بخور، بخواب، کد بزن

بخور، بخواب، کد بزن

گنو/لینوکس، پایتون، زندگی

مطالب پربحث‌تر

Partition Table Structure

شنبه, ۷ مرداد ۱۳۹۱، ۱۲:۴۸ ب.ظ

Partition Table Structure

سلام
با بسته شدن wordpress.com احساس کردم بهتره این مطلب رو که چند سال پیش گذاشته بودم، دوباره توی وبلاگ جدید پست کنم.

یه نموداری رو درست کردم که ساختار پارتیشن‌بندی هارد رو در حالت‌های مختلف نشون بده. مخصصوصاً برای کسایی که میخوان لینوکس نصب کنن(اونم رو یه هاردی که ویندوز یا دیتا روش هست) درک کردن ساختار partition table خیلی کمک میکنه. متأسفانه حتی خیلی از لینوکس‌کارهای نسبتاً باتجربه هم ساختار Partition Table هارد رو درست درک نکردن و فرق بین Primary و Logical و Extended رو نمیدونن(حتی بعضی‌ها فرق بین Extended با فرمت ext3 رو نمیدونن). توصیه می‌کنم به این نمودار حسابی دقت کنید و برید توی بهرش تا ساختار Partition Table هارد رو درک کنید، چون زیربنای پارتیشن‌بندی درست همین هست، اگه اینو یاد بگیرید با هر ابزاری که دم دستتون باشه می‌تونید پارتیشن‌بندی کنید.





این مستطیل‌های افقی که می‌بینید(یازده تا) که از هم جدا هستن، هر کدوم یه هارد هستن، در واقع چند مثال از حالت‌های مختلف پارتیشن‌بندی هستن.
پارتیشن Extended ظرفی برای پارتیشن‌های Logical هست. در واقع Extended یه پارتیشن مجازی هست یعنی ما نمی‌تونیم ازش مستقیماً برای ذخیره‌سازی دیتا استفاده کنیم. در واقع ما فقط از پارتیشن‌های Primary و Logical برای ذخیره‌سازی دیتا استفاده می‌کنیم.
هر هارد حداکثر یک پارتیشن Extended میتونه داشته باشه(یعنی یا یدونه یا هیچی). و حداکثر 3 پارتیشن Primary میتونه داشته باشه(و حداقل هم یکی). البته اگه Extended (و در نتیجه Logical) نداشته باشید می‌تونید 4 تا Primary هم داشته باشید. اما هر تعداد Logical ها محدودیت نداره، به شرطی که یدونه Extended داشته باشیم، اونوقت هر تعداد که خواستیم می‌تونیم داخلش Logical بذاریم.
اگه هارد رو به یه اداره یا شرکت تجاری تشبیه کنیم، پارتیشن(های) Primary مثل مدیر(های) شرکت هستن، و پارتیشن Extended رو میشه به محل کار کل کارمندان شرکت تشبیه کرد که هر پارتیشن Logical مثل یکی از کارمندان شرکت هستن.
فرمت‌های مختلف پارتیشن مثل fat و fat32 و ntfs و ext2 و ext3 و reiserfs و... ربطی به نوع پارتیشن(Primary و Logical و Extended) نداره، یعنی یه پارتیشن چه Logical باشه چه Primary میتونه هر فرمتی(مثل ext3 و ext4 و fat32) داشته باشه. این فرمت‌ها نحوهٔ ذخیره‌سازی دیتا روی پارتیشن رو مشخص می‌کنن(پارتیشن Extended هم که گفتم مجازی هست و مستقیماً برای ذخیره‌سازی دیتا استفاده نمیشه پس براش فرمت تعریف نمیشه)
به قول فلاسفه نوع پارتیشن، خاصیت ذاتی پارتیشن هست(نمی‌تونه تغییر پیدا کنه). اما فرمت پارتیشن خاصیت عرضی هست(می‌تونه تغییر کنه).
یه پارتیشن رو میشه به راحتی فرمت کرد و فرمتش رو تغییر داد، ولی یه پارتیشن Logical رو نمیشه به Primary تبدیل کرد! یا بالعکس!
نکتهٔ آخر اینکه در روش اسم‌گذاری لینوکس، اسامی sda1 و sda2 و sda3 برای پارتیشن‌های Primary رزرو شده، یعنی اگه یدونه Primary هم داشته باشید، پارتیشن بعدی(که باید Extended باشه) اسمش sda4 هست و Logical های داخلش اسامی sda5 و sda6 و... دارن.
دیگه بیشتر از این فکر نمی‌کنم نیاز به توضیح داشته باشه. ولی باز اگه جای مبهمی بود بگید.
موفق باشید

موافقین ۲ مخالفین ۰ ۹۱/۰۵/۰۷
سعید رسولی

نظرات  (۱۰)

با تشکر از مطلب خوبتون.
فقط یه اشکال توش دیدم:
یه پارتیشن Logical رو نمیشه به Primary تبدیل کرد! یا بالعکس!
این عملیات براحتی توسط نرم‌افزار acronis disk director sutie و paragon partition manager قابل انجام است.
موفق باشید.
پاسخ:
خیلی عجیبه. فکر نمی‌کنم امکان پذیر باشه چون اگه بخوای لاجیکال رو پرایمری کنه باید از داخل اکستندد بیرون ببره و این با حفظ دیتا خیلی زمان‌بر هست. و بالعکس. و چون اکستندد پیوسته هست ترتیبشون مهمه و کلا فکر نکنم عملی باشه. اگه مطمئنید یه اسکرین شات از اون نرم‌افزار با گزینه‌ای که برای این کار داره بذارید.
سلام مطلب خوبی بود، اما من نفهمیدم، چه فرقی بین منطقی و حقیقی است. کاش یکم از تفاوت ها میگفتین.
پاسخ:
تفاوتش مثل کسیه که خودش خونه داره (پرایمری) و کسی که خونهٔ والدینش زندگی می‌کنه یا اجاره‌نشین هست (لاجیکال)
 خسته نباشی !
چرا اینقدر دیر بدیر پست میذارید؟‌
پاسخ:
پست‌های مفصل زیاد حوصله نمی‌کنم بنویسم. نوت‌های کوتاه رو هم معمولاً توی گوگل‌پلاس می‌نویسم چون ارتباط برقرار کردن با آدما راحت‌تره اونجا.
سلام

عالی بود و در سطح کارشناسی ارشد

حالا به نظر شما کدام متد یا روش بهتره - کمترین دردسر رو در آینده داره و کمترین آسیب رو به هارد میزنه و حرفه ای تره و ...
پاسخ:
کاملاً بستگی به نیاز شما داره، از جمله حجم هارد و تعداد پارتیشن‌ها و سیستم‌عاملی (هایی) که استفاده می‌کنید.
من که ویندوز ندارم، و هاردم ۵۰۰ هست یک primary دارم و یک extended شامل ۴ تا logical
چطور میشه فهمید پارتیشن ها از چه نوعی هستند
پاسخ:
نوع و فرمت و اندازهٔ پارتیشن‌ها توی همون نرم‌افزار پارتیشن‌بندی باید نمایش داده بشه (مثلاً GParted توی لینوکس و parted و fdisk توی خط فرمان لینوکس، و Partition Magic توی ویندوز)
ولی مثلاً توی ویندوز قسمت Computer معلوم نمیشه.
شما فرمودید نوع پارتیشن رو نمیشه عوض کرد.ببینید یه بحث نرم افزاری داریم میکنیم نه سخت افزاری.به عنوان کسی که تجربه خوبی تو این زمینه داره میگم همه چی رو میشه عوض کرد.
شما راجع به طرح پارتیشن dos یا همون mbr صحبت کردید.از اونجایی که طرح پارتیشن mbr فقط روی سکتور 512 بایتی به اسم سکتور صفر مستقر میشه محدودیتهای زیادی داره.
446 بایت اول این سکتور به عنوان Bootstrap code area شناخته میشه که مربوط به فرآیند راه اندازی سیستمه و ربطی به پارتیشنها نداره.2بایت آخر هم بهش میگن boot signature.
پس میمونه 64 بایت که جدول پارتیشن در اون قرار میگیره.هر پارتیشن نیاز به 16 بایت برای توصیف خودش داره که به این ترتیب فقط 4 پارتیشن قابل تعریفه که بهش میگن پارتیشنهای primary.معمولا آخرین رو از نوع Extended تعریف میکنن.
پارتیشن Extended هم شامل تعریف و موقعیت پارتیشنهای logical بالقوه هست.
کامپیوترهایی جدید که از بوت امن UEFI استفاده میکنند معمولا از طرح پارتیشن GPT استفاده میکنند که محدودیت تعریف 4 پارتیشن برداشته میشه و همه پارتیشنها از نوع primary خواهند بود و میشه 128 پارتیشن و حتی بیشتر رو تعریف کرد.اگر هاردی با بیش از 2 ترابایت حجم داشته باشید قاعدتا باید از GPT به جای MBR استفاده کنید.مگر اینکه حجم فیزیکی سکتور های هارد رو از 512 به مقداری بالاتر با فرمت low level تغییر بدید.(که البته ممکنه خیلی از نرم افزارها مشکل پیدا کنند)
البته کامپیوترهای قدیمی هم میتونند از GPT برای طرح پارتیشن استفاده کنند و اختصاصی به UEFI نداره.(بماند که UEFI رو میشه به صورت نرم افزاری پیاده سازی کرد)
من مدتها قبل از ویندوز به لینوکس مهاجرت کردم و به طور متوالی دیستروهای متنوعی دانلود و نصب میکردم.اول از ماشین مجازی استفاده میکردم اما پس از کسب تجربه دیگه از ماشین مجازی استفاده نکردم.تو نصب لینوکس و bsd ها مجبور بودم پارتیشنهای هارد موجود و در حال استفاده رو مکررا تغییر بدم و بعضی سیستم عاملها فقط روی پارتیشن primary نصب میشن.
خلاصه MBR منو به تنگ آورد و نهییتا اونو بدون از دست دادن اطلاعات به Pure GPT تبدیل کردم(با gtp مایکروسافت اندکی فرق داره)
من در اون زمان لینوکس فدورا و لینوکس آرچ و FreeBSD رو نصب داشتم. و ویندوزی نداشتم.
به علتی نیاز به نصب ویندوز پیدا کردم.میدونستم که ویندوز xp روی gpt نصب نمیشه.با خیال راحت dvd ویندوز 8 رو بوت کردم اما با کمال تعجب دیدم نصب نمیشه.
پس از تحقیق زیاد متوجه شدم باید از MBR-Hybrid در طرح GPT استفاده کنم.(طرح پیشفرض MBR-Protective نام داره)
در اینحالت میتونید 3 تا از پارتیشنهای روی هارد رو به عنوان پارتیشن عادی Primary MBR تعریف کنید.بدین ترتیب به راحتی ویندوز xp و بالاتر روی هارد GPT Style نصب میشه.اما از داخل ویندوز دسترسی به پارتیشنهای GTP ندارید.و یه حالت عجیب و غریبی توی Disk Management ویندوز میبینید.
اگر کاربر ویندوز هستید با نصب ویندوز ویستا و بالاتر روی هارد خام به طور پیشفرض هارد شما به صورت GPT Style فرمت میشه.gpt مایکروسافت یه پارتیشن مخفی به حجم 200 مگابایت در ابتدای هارد ایجاد میکنه که عملا 200 مگابایت رو هدر میده.
اگر کاربر لینوکس هستید(و احتمالا از grub برای مدیریت بوت استفاده میکنید) باید به جای این 200 مگابایت یه پارتیشن بدون فرمت به حجم 2 مگابایت در اول هارد ایجاد کنید بدون فرمت که stage 1.5 گراب از اونجا اجرا میشه.
آقاس رسولی شما یه برنامه نویس هستید(که من نیستم) به قول یه برنامه نویس هیچ کاری نشد نداره.از شما بعید بود بگید نوع پارتیشن ذاتیه و غیر قابل تغییر.
پاسخ:
ممنون از اطلاعات
ولی من هنوز نفهمیدم چطور میشه یه primary رو به logical یا بالعکس تبدیل کرد
حتی اگه logical آخر extended باشه بازم فکر نکنم به این راحتی بشه بیرون کشیدش
و آیا میشه extended رو به یه primary معمولی تبدیل کرد؟ اگه هم بشه logical های داخلش از بین میره. حتی اگه یه logical داخلش باشه بازم نمیشه با حفظ دیتا به primary تبدیل کرد.
پس خیلی فرق داره با فرمت که به راحتی تغییر می‌کنه (گاهی وقتا حتی با حفظ اطلاعات).
هنوز هم به نظر من بیشتر خاصیت ذاتی پارتیشن و مهمترین مشخصه‌ش هست.
در ضمن من این مقاله رو برای کاربران نوشتم نه برنامه‌نویس‌ها.
دلیلی وجود نداره که بخوایم extended رو به primary معمولی تبدیل کنیم.فلسفه ایجاد extended رو یه باره دیگه مرور کنیم :

The extended partition is a holdover from earlier days, and was used when a drive had two or more partitions. It doesn’t actually hold data, it merely serves as a container for one or more logical drives.

Extended partitions and logical drives are more or less obsolete today (Vista’s Disk Management tool can’t even create them), but you may see them on older partitioned drives.

extended در واقع فقط یه جانگهداره.یه فضای معمولا بزرگ که به قطعات منطقی logical(حداکثر ۶۳ تا) تبدیل میشه.در واقع لفظ پارتیشن برای extended غلط اندازه(گرچه واقعا پارتیشنه)
ببینید من گفتم که یه محدودیت بزرگ داریم و اون تعداد پارتیشنهای primary که نمیتونه از ۴ تا بیشتر باشه یکی از این ۴ تا که معمولا extended هست.extended برای شکستن این محدودیت اومده و طبیعتا نیازی نیست اونو به یه primary معمولی تبدیل کنیم
پس عملا فقط میتونیم ۳ تا پارتیشن primary داشته باشیم. اگر کمتر از ۳ تا باشه میشه به همون تعداد پارتیشنهای logical رو به primary تبدیل کرد.نرم افزارهای third party معروفی تو ویندوز اینکارو انجام میدند.
تبدیل primary به logical هم میتونند انجام بدن اما دلیل خاصی برای انجام این کار نیست.
عمل تبدیل فرآیند مشخصی داره ۱۶ بایت اطلاعات پارتیشن توی mbr به عنوان primary ثبت میشه.اگر لازم باشه سکتور شروع و پایانی adjust میشه و کپی سکتور به سکتور صورت میگیره.محل شروع و پایان extended تو mbr تغییر میکنه و اطلاعات اون هم بروز میشه(پارتیشن logical ازش حذف میشه)
این فرآیند بدون از دست رفتن اطلاعاته گرچه پشتیبان گیری توصیه شده.
تبدیل style پارتیشن بندی از mbr به gpt بهترین راه حلیه که من بهش رسیدم.mbr قدیمیه و جوابگوی تغییرات توی تعداد و حجم پارتیشنها نیست.
فرض کنید ۴ تا primary دارید یکیش بزرگه که قبلا روش یه سیستم عامل داشتید اما الان دیگه ازش استفاده نمیکنید اگر بخواید تبدیلش کنید به ۲ تا پارتیشن کوچکتر عملا ممکنه(یکیش primary میمونه یکیش به عنوان logical اضافه میشه به extended) ولی ممکنه به ساعتها زمان نیاز باشه و احتمال از دست رفتن اطلاعات به علت رفتن برق یا کرش نرم افزار پارتیشن بندی(که تو ویندوز احتمالش بالاست) وجود داره.حتی بدتر از اون احتمال به هم ریختن جدول پارتیشن که چند تا از پارتیشنها از دست برند و دیگه سیستم بوت نشه هست(گرچه با دردسر فراوان قابل بازگشته)
تمام حالتهای بالا و حالتهای دیگری رو چندین سال قبل من تجربه کردم.من از paragon hard disk manager برای اعمال این تغییرات استفاده کردم.چندین سال قبل یکم unstable بود اما حالا کاملا stable و قابل اعتماده.acronis هم که خیلی پرآوازه هست.
پاسخ:
با دلیلش کاری ندارم(ممکنه یکی نیاز داشته باشه).
من یه کلمه گفتم ذاتی و عرضی، شما مخالفت کردید...
منظورم این بود که این سه نوع پارتیشن تفاوت منطقی و ذاتی دارن (گرچه یک نوعش حالت خاصی از دیگری هست) ولی به هر حال نوع چهارمی در کار نخواهد بود
ولی فرمت‌های مختلف، به سلیقه و نیاز توسعه‌دهنده و کاربر بستگی داره (هیچ‌کدوم مطلقاً بهتر نیست) و تعدادشون هم زیاده (عملاً نامحدوده).
فکر کنم تا همین حدش رو هم کاربرا بدونن خیلی خوبه. جزئیاتش به کنار (که شما واردتری).
داداش دمتگرم.واقعا ممنون
دوست عزیز من تعمیرکار لب تابم مشکلکی عجیبی با ی لب تاب packard bell خوردم که ندیدم فکر کنم شما بتونی کمک کنی
پاسخ:
همینجا مشکل رو مطرح کنید اگه تونستم کمک می‌کنم
(پیام خصوصی نفرستید)

ببخشید من ویندوزمو پاک کردم ولی وقتی خواستم ویندوز نصب کنم دیدم next خاموشه و پیامش هم اینه که هاردم GPT هست و به همین دلیل نمیشه روش ویندوز نصب کرد ... من ویندوزم 8.1 شصت و چهار بیت uefi ساپورت بود ولی این پیام رو داد ... بقیه ویندوزها رو هم امتحان کردم فایده نداشته ... میشه به زبون ساده واسم توضیح بدین چی کار کنم؟

با تشکر.

پاسخ:
به زبان ساده: توی فروم‌های تخصصی ویندوز بپرسید، مثلا:
http://forum.p30world.com/forumdisplay.php?f=441

ارسال نظر

کاربران بیان میتوانند بدون نیاز به تأیید، نظرات خود را ارسال کنند.
اگر قبلا در بیان ثبت نام کرده اید لطفا ابتدا وارد شوید، در غیر این صورت می توانید ثبت نام کنید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">