پارتیشن بندی

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

Tango-preferences-desktop-locale.pngاین مقاله یا بخش نیازمند این است که ترجمه شود.Tango-preferences-desktop-locale.png

یادداشت: این صفحه حاوی متن های ترجمه نشده است. (در بحث:پارتیشن بندی# در این مورد تبادل نظر کنید.)

پارتیشن بندی یک هارد درایو حافظه ی موجود را به قسمت هایی تبدیل می کند که جداگانه قابل دسترسی هستند. یک درایو کامل، می تواند به عنوان یک پارتیشن یا چندین پارتیشن برای dual-booting، نگهداری یک پارتیشن swap یا حتی برای جداسازی داده هایی مانند صدا و ویدئو مورد استفاده قرار بگیرد.

اطلاعات مورد نیاز در طرح #جدول پارتیشن مانند MBR یا GPT موجود است.

جدول ها باید توسط یک #ابزار پارتیشن بندی که با طرح جدول پارتیشن سازگار باشد، پیراسته شوند. ابزار های موجود شامل fdisk و parted می شوند.

پس از ساختن پارتیشن باید آنرا با یک file system مناسب فرمت کرد(به جز swap).

جدول پارتیشن

توجه: برای نمایش جداول یک درایو مخصوص از ‎parted /dev/sda print‎ یا ‎fdisk -l /dev/sda, استفاده کنید. توجه کنید که /dev/sda اسم یک قطعه است.

انتخاب بین GPT و MBR

(GUID Partition Table (GPT یک سبک پارتیشن بندی معاصر است؛ انتظار می رود به زودی جایگزین سیستم قدیمی (Master Boot Record (MBR شود. GPT بسیاری مزیت نسبت به MBR دارد که خصلت هایی شبیه به زمان MS-DOS دارد. به دلیل توسعه های اخیر در ابزار های (fdisk (MBR و (gdisk (GPT هردو مسیر بسیار آسان قابلیت اعتماد و کارایی را فراهم می کنند.

چند نکته برای انتخاب:

  • برای dual-boot با ویندوز (۳۲ و ۶۴ بیت) با استفاده از Legacy BIOS طرح MBR لازم است.
  • برای dual-boot با ویندوز ۶۴ بیت با استفاده از UEFI طرح GPT لازم است.
  • اگر بر روی سخت افزار های قدیمی کار می کنید ترجیحاً از MBR استفاده کنید چون BIOS آن ممکن است از GPT پشتیبانی نکند.
  • اگر یک هارد ۲ ترابایتی یا بیشتر را پارتیشن بندی می کنید نیاز دارید که از GPT استفاده کنید.
  • توصیه می شود که همیشه از GPT برای بوت کردن با UEFI استفاده کنید چون بعضی از پیاده سازی های UEFI از بوت کردن MBR پشتیبانی نمی کنند.
  • اگر هیچکدام از موارد بالا صدق نمی کند، آزادانه بین دو روش انتخاب کنید، چون GPT مدرن تر است، توصیه می شود.
توجه: برای بوت کردن GPT بر روی سیستم مبتنی بر BIOS با استفاده از GRUB یک BIOS boot partition لازم است.توجه داشته باشید که این پارتیشن با ‎/boot‎ متفاوت است و مستقیماً به وسیله ی GRUB استفاده می شود. file system بر روی آن نسازید و آنرا mount نکنید.

Master Boot Record

MBR اولین ۵۱۲ بایت یک دستگاه ذخیره سازی می باشد که حاوی bootloader و جدول پارتیشن دستگاه است و در سیستم های مبتنی بر BIOS نقش مهمی در پروسه ی بوت دارد. Wikipedia:Master boot record#Disk partitioning را برای اطلاعات بیشتر در مورد ساختار آن ببینید.

توجه: The MBR is not located in a partition; it is located at the first sector of the device (physical offset 0), preceding the first partition. (The boot sector present on a partitionless device or within an individual partition is called a Volume boot record instead.)

Master Boot Record (partition table)

There are 3 types of partitions in the MBR scheme:

  • Primary
  • Extended
    • Logical

Primary partitions can be bootable and are limited to four partitions per disk or RAID volume. If the MBR partition table requires more than four partitions, then one of the primary partitions needs to be replaced by an extended partition containing logical partitions within it.

Extended partitions can be thought of as containers for logical partitions. A hard disk can contain no more than one extended partition. The extended partition is also counted as a primary partition so if the disk has an extended partition, only three additional primary partitions are possible (i.e. three primary partitions and one extended partition). The number of logical partitions residing in an extended partition is unlimited. A system that dual boots with Windows will require for Windows to reside in a primary partition.

The customary numbering scheme is to create primary partitions sda1 through sda3 followed by an extended partition sda4. The logical partitions on sda4 are numbered sda5, sda6, etc.

Master Boot Record (bootstrap code)

The first 446 bytes of MBR are bootstrap code area. On BIOS systems it usually contains the first stage of the boot loader.

جدول پارتیشن GUID

GUID Partition Table (GPT) is a partitioning scheme that is part of the Unified Extensible Firmware Interface specification; it uses globally unique identifiers (GUIDs), or UUIDs in linux world, to define partitions and partition types. It is designed to succeed the #Master Boot Record partitioning scheme method.

مزیتهای GPT

Tango-two-arrows.pngThis article or section is a candidate for merging with Partitioning#Choosing between GPT and MBR.Tango-two-arrows.png

Notes: Keep advantages/disadvantages in one place. (Discuss in بحث:پارتیشن بندی#)
  • Provides a unique disk GUID and unique partition GUID (‎PARTUUID‎) for each partition - A good filesystem-independent way of referencing partitions and disks.
  • Provides a filesystem-independent partition name (‎PARTLABEL‎).
  • Arbitrary number of partitions - depends on space allocated for the partition table - No need for extended and logical partitions. By default the GPT table contains space for defining 128 partitions. However if you want to define more partitions, you can allocate more space to the partition table (currently only gdisk is known to support this feature).
  • Uses 64-bit LBA for storing Sector numbers - maximum addressable disk size is 2 ZiB. MBR is limited to addressing 2 TiB of space per drive.
  • Stores a backup header and partition table at the end of the disk that aids in recovery in case the primary ones are damaged.
  • CRC32 checksums to detect errors and corruption of the header and partition table.

پشتیبانی کرنل

The ‎CONFIG_EFI_PARTITION‎ option in the kernel config enables GPT support in the kernel (despite the name, EFI PARTITION). This option must be built in the kernel and not compiled as a loadable module. This option is required even if GPT disks are used only for data storage and not for booting. This option is enabled by default in Arch's linux and linux-lts kernels in the [core] repo. In case of a custom kernel, enable this option by doing ‎CONFIG_EFI_PARTITION=y‎.

دیسک، بدون پارتیشن‌بندی

Partitionless disk (a.k.a. superfloppy) refers to using a storage device without using a partition table, having one file system volume occupying the whole storage device.

پارتیش‌بندی Btrfs

Btrfs can occupy an entire data storage device and replace the MBR or GPT partitioning schemes. See the Btrfs#Partitionless Btrfs disk instructions for details.

See also Wikipedia:Btrfs.

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

See fdisk#Backup and restore and File recovery#Testdisk and PhotoRec.

طرح‌بندی پارتیشنها

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: It would be nice to have tables for each scenario (Discuss in بحث:پارتیشن بندی#Example_tables)

قانونی کلی برای پارتیشن‌بندی یک هارد درایو وجود ندارد، هرچند دنبال کردن راهنمای زیر سودمند خواهد بود. طرح‌بندی(scheme) ساختار پارتیشن‌ها بر اساس چندین پارامتر مثل انعطاف پذیری، سرعت، امنیت و محدودیت حجم در دسترس انجام میپذیرد. پارتیشن‌بندی اصولا یک ترکیب‌چینی شخصی است. اگر قصد دارید آرچ لینوکس را با ویندوز را به صورت Dual-boot داشته باشید صفحه dual-boot با ویندوز را ببینید.

توجه:
  • سیستمهایی که مادربوردشان از UEFI استفاده میکند نیاز به پارتیشن EFI دارند.
  • اگر سیستمهای BIOS که با GPT پارتیشن‌بندی شده‌اند در صورتی که از GRUB استفاده میکنند نیاز به پارتیشن BIOS دارند.

سیستم‌فایل فقط با یک پارتیشن root

این طرح‌بندی (scheme) ساده‌ترین نوع پارتیشن‌بندی است که برای اکثر مواقع کافیست. یک فایل swap نیز با استفاده از resize کردن پارتیشن به آسانی قابل ساختن است. عاقلانه است که ابتدا پارتیشن‌بندی را از یک پارتیشن / و سپس دیگر پارتیشن‌ها را نسبت به نیاز مثلا RAID، رمزنگار و غیره ایجاد کرد.

پارتیشنهای گسسته

جدا کردن یک پارتیشن به عنوان یک مسیر به شما اجازه‌ی انتخاب بین سیستم‌فایلها و mount pointهای متفاوتی میدهد.

Mount pointها

برا اساس نیاز و تصمیمتان میتوانید بین mount pointهای زیر انتخاب کنید.

پارتیشن ریشه

پارتیشن ریشه(root) بالاترین مسیر و سطح در یک سیستم‌فایل است. مکانی که دیگر ساقه‌های فایل‌سیستم به آن متصل است. تمامی فایلها و مسیرها زیر مسیر ریشه ‎/‎ قرار دارند، حتی اگر دستگاه فیزیکیِ دیگری به سیستم وصل کنید. محتوای فایل‌سیتم ریشه برای انجام عملیات بوت، بازگرداندن و ترتمیم سیستم کافیست. پس ضرورتا تمامی مسیرهای زیر ‎/‎ نیاز به پارتیشن جداگانه ندارند. وجود پارتیشن ریشه یا ‎/‎ ضروری و مهم است.

هشدار: مسیرهای ضروری برای بوت (بغیر از ‎/boot‎) باید در همان پارتیشن ‎/‎ باشند یا اینکه به آن mount بشوند.

/boot

مسیر ‎/boot‎ حاوی کرنل، ایمیجهای ramdisk، فایلهای پیکربندی و بوت‌لودر میشود. همچنین، ‎/boot‎ فضاییست که کرنل شروع به اجرای برنامه‌های کاربر میکند. مسیر ‎/boot‎ برای استفاده عادی از سیستم ضروری نیست و برای مواقع آپدیت کرنل و بوت کاربرد دارد.

پارتیشن ‎/boot‎ برای مواقعی که نیاز به نصب RAID نرم‌افزاری است ضروری است.

/home

مسیر ‎/home‎ مسیری است که حاوی فایلهای پیکربندی کاربر، کش‌ها، داده‌های نرم‌افزاری و فایلهای رسانه‌ای کاربر میشود. جداسازی مسیر ‎/home‎ به ‎/‎ اجازه میدهد تا ‎/‎ دوباره پارتیشن بندی شود، به این معنی که میتوانید آرچ را بدون اینکه فایلی از مسیر ‎/home‎ از دست برود دوباره آرچ را نصب کنید.

پیشنهاد میشود که مسیر ‎/home‎ را همزمان بین چندین کاربر در چندین توزیع لینوکسی به اشتراک نگذارید چون توزیعهای مختلف پیکربندی‌های متفاوتی نسبت به همدیگر دارند و این مسئله باعث بوجود آمدن تداخل و مشکل خواهد شد. Instead, consider sharing a media partition or at least using different home directories on the same ‎/home‎ partition.

/var

مسیر ‎/var‎ متغیرهای داده‌ای مثل مسیرهای spool و فایلهای گزارشی، کش پکمن، درخت ABS و غیره را در خود ذخیره میکند. این مسیر برای مثال برای مواقعی که cashing و logging زیادی عملیات نوشتن و خواند انجام میدهد به کار میرود. جداکردن این مسیر از پرشدن دیسک از فایلهای گزارشی جلوگیری میکند.

It exists to make it possible to mount ‎/usr‎ as read-only. Everything that historically went into ‎/usr‎ that is written to during system operation (as opposed to installation and software maintenance) must reside under ‎/var‎.

توجه: ‎/var‎ contains many small files. The choice of file system type should consider this fact if a separate partition is used.

/tmp

به صورت پیشفرض این مسیر یک پارتیشن‌ جداگانه در نظر گرفته شده است که توسط systemd به نام tmpfs به حالت mount درمیآید.

پارتیشن Swap

پارتیشن Swap حافظه‌ای محیا میکند که میتوان آنرا به عنوان حافظه مجازی RAM استفاده کرد. همچنین درنظر گرفتن یک فایل swap نیز پیشنهاد میشود چون نسبت به یک پارتیشن از منابع زیادی استفاده نمیکد و در صورت نیاز به آسانی قابل resize شدن است. پارتیشن swap در صورتی که حالت hibernation روشن نباشد ممکن است بین چندین سیستم‌عامل به اشتراک گذاشته شود.

پارتیشنهای من تا چه حد باید بزرگ باشند؟

توجه:
  • عددهای زیر صرفا پیشنهادی هستند; در سایزبندی پارتیشنها قانون خاصی وجود ندارد.
  • برای تغییرات(کم یا زیاد کردن حجم) پارتیشنها در صورت امکان ۲۵٪ بیش از سایز انتخابی‌تان برای پارتیشنها انتخاب کنید.

اندازه و حجم پارتیشنها انتخاب شخصیست، اما اطلاعات زیر ممکن است به شما در یک دید کلی کمک کند:

پارتیشن boot/ - بین ۲۰۰ تا ۳۰۰ مگابایت
 
تنها نیاز به فضایی نزدیک به ۱۰۰ مگابایت دارد، اما اگر چندین کرنل/ایمیج بوت قرار است که مورد استفاده قرار بگیرند، ۲۰۰ یا ۳۰۰مگابایت انتخاب بهتری است.
پارتیشن / - ۱۵ تا ۲۰گیگ
 
از قبل مسیر ‎/usr‎ را دربر میگیرد، که احتمال بزرگ شدن آن نسبت به تعداد به نرم‌افزارهایی که قرار است نصب شوند بالا میرود. ۱۵ تا ۲۰گیگابایت برای اکثر هارددیسکهای جدید فضای زیادی به نظر نمیرسد که همینقدر برای این پارتیشن در اکثر مواقع کافیست. اگر قرار است که فایل swap را در اینجا ذخیره کنید بهتر است اندازه پارتیشن را بیشتر در نظر بگیرید.


پارتیشن var/ - بین ۸ تا ۱۲گیگابایت
 
دربرگینده داده‌ها مختلف، درخت ABS و کش pacman است که در خصوص کش pacman برای بازگردانی و استفاده دوباره از پکیجهایی که باعث بی ثباتی در سیستم شده‌اند و نیاز به downgrade از بسته‌های آرشیو‌شده دارند کاربرد زیادی دارد. کش pacman در طول اینکه سیستم بزرگتر میشود و آپدیتهایی در آن صورت میگیرد بزرگتر میشود. که در صورت کمبود فضا میتوان کش pacman را خالی کرد. فضایی بین ۸ تا ۱۲ گیگ به نسبت اینکه چه مقدار نرم‌افزار احتمالی قرار است نصب شود کافی است.


پارتیشن home/ - بستگی‌دارد
 
این پارتیشن اصولا مکانی است که داده‌های کاربر مثل دریافتی‌ها و فایلهای رسانه‌ای در آن ذخیره میشوند. در یک سیستم دسکتاپ مسیر ‎/home‎ بزرگترین مسیر خواهد بود.


پارتیشن swap - بستگی‌دارد
 
در گذشته قانون کلی برای استفاده از حافظه swap قرار دادن فضایی معادل دوبرابر RAM بود. ولی به مرور زمان و بالاتر رفتن حافظه‌ها، این قانونی کاربرد آنچنانی ندارد. اما برای مثال، بر روی یک کامپیوتر سطح متوسطی که نزدیک به ۵۱۲مگابایت رم وجود دارد قانون دو برابر بودن سودمند ست; اما اگر بر روی سیستمی بیش از ۱۰۲۴مگابایت رم وجود داشته باشد، درنظر گرفتن حجمی کمتر از حجم رم برای swap عادیست.


پارتیشن data/ - بستگی‌دارد
 
از این پارتیشن برای اشتراک‌گذاری فایل بین تمام کاربران میتوان استفاده. همچنین از پارتیشن ‎/home‎ برای این منظور نیز میتوان استفاده کرد.

ابزارهای پارتیشن‌بندی

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

هشدار: برای پارتیشن‌بندی از ابزاری استفاده کنید که با جدول پارتیشنی که میخواهید بسازید همخوانی داشته باشد. ابزاری که با جدول پارتیشن مورد نظر شما همخوانی نداشته باشد باعث تخریب آن جدول به همراه پارتیشن و داده‌های موجود در آن میشود.

fdisk

  • fdisk — نرم‌افزاری مبتنی بر Dialog که عمل ساخت و تغییر جداول پارتیشنها را انجام میدهد.
https://www.kernel.org/ || util-linux
  • cfdisk — ورژن مبتنی بر Curses از fdisk.
https://www.kernel.org/ || util-linux
  • sfdisk — نسخه‌ای از fdisk که قابلیت نوشتن اسکریپت در آن وجود دارد.
https://www.kernel.org/ || util-linux

gdisk

  • gdisk — نسخه‌ای از fdisk که از پارتیشن GPT پشتیبانی میکند.
http://www.rodsbooks.com/gdisk/ || gptfdisk
  • cgdisk — ورژن مبتنی بر Curses از gdisk.
http://www.rodsbooks.com/gdisk/ || gptfdisk
  • sgdisk — نسخه‌ای از gdisk که قابلیت نوشتن اسکریپت در آن وجود دارد.
http://www.rodsbooks.com/gdisk/sgdisk-walkthrough.html || gptfdisk

parted

  • GNU Parted — ابزار پارتیشن‌بندی که در محیط ترمینال اجرا میشود.
https://www.gnu.org/software/parted/parted.html || parted
  • GParted — ابزار گرافیکی برای پارتیشن‌بندی که با GTK نوشته شده است.
http://gparted.sourceforge.net/ || gparted

partitionmanager

  • Partitionmanager — ابزار گرافیکی پارتیشن بندی که در Qt نوشته شده.
http://sourceforge.net/projects/partitionman/ || partitionmanager

این جدول نسبت به نیازتان به شما در راستای انتخاب ابزار پارتیشن‌بندی کمک میکند:

تعامل کاربر MBR GPT
مبتنی بر Dialog fdisk
parted
fdisk
gdisk
parted
شبه‌گرافیکی cfdisk cfdisk
cgdisk
غیر-تعاملی sfdisk
parted
sfdisk
sgdisk
parted
گرافیکی GParted
partitionmanager
GParted
partitionmanager

Partition alignment

Proper partition alignment is essential for optimal performance and longevity. This is due to the block nature of every I/O operation on the hardware level as well as file system level. The key to alignment is partitioning to (at least) the given block size, which depends on the used hardware. If the partitions are not aligned to begin at multiples of the block size, aligning the file system is a pointless exercise because everything is skewed by the start offset of the partition.

هاردهای معمول HDD

Historically, hard drives were addressed by indicating the cylinder, the head, and the sector at which data was to be read or written (also known as CHS addressing). These represented the radial position (cylinder), the axial position (drive head: platter and side), and the azimuth (sector) of the data respectively. Nowadays, with logical block addressing, the entire hard drive is addressed as one continuous stream of data and the term sector designates the smallest addressable unit.

The standard sector size is 512B, but modern high-capacity hard drives use greater value, commonly 4KiB. Using values greater than 512B is referred to as the Advanced Format.

هاردهای SSD

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: The EBS should be the same as the value reported by ‎/sys/class/block/sdX/queue/discard_granularity‎. (Discuss in بحث:پارتیشن بندی#)

Solid state drives are based on flash memory, and thus differ significantly from hard drives. While reading remains possible in a random access fashion, erasure (hence rewriting and random writing) is possible only by whole blocks. Additionally, the erase block size (EBS) are significantly greater than regular block size, for example 128KiB vs. 4KiB, so it is necessary to align to multiples of EBS. Some NVMe drives should be aligned to 4KiB, but not all. To find the sector size of your SSD, see Advanced Format#How to determine if HDD employ a 4k sector.

ابزارهای پارتیشن‌بندی

In the past, proper alignment required manual calculation and intervention when partitioning. Many of the common partition tools now handle partition alignment automatically:

  • fdisk
  • gdisk
  • gparted
  • parted

On an already partitioned disk, you can use parted to verify the alignment of a partition on a device. For instance, to verify alignment of partition 1 on ‎/dev/sda‎:

# parted /dev/sda
(parted) align-check optimal 1
1 aligned
هشدار: Using ‎/usr/bin/blockdev‎ with option ‎--getalignoff‎ to check if a the partition is aligned has been reported to be unreliable.

پیوستها و منابع