پرش به محتویات

102.1 - طراحی پارتیشن‌بندی هارد دیسک

اهداف یادگیری

در این فصل با موارد زیر آشنا می‌شوید:

  • تخصیص فایل‌سیستم‌ها و فضای swap به پارتیشن‌ها یا دیسک‌های جداگانه
  • طراحی پارتیشن‌بندی متناسب با کاربرد سیستم
  • اطمینان از سازگاری پارتیشن /boot با معماری سخت‌افزار برای بوت
  • آشنایی با ویژگی‌های پایه‌ای LVM

کلیدواژه‌ها

/ (root), /var, /home, /boot, EFI System Partition (ESP), swap, mount points, partitions, fdisk, parted, gparted, LVM


پارتیشن‌ها

در دنیای لینوکس، دستگاه‌ها در /dev/ تعریف می‌شوند و برای انواع مختلف دیسک‌ها، قراردادهای نام‌گذاری مختلفی وجود دارد:

  • PATA (منسوخ): /dev/hdc
  • SATA (Serial ATA) و دیسک‌های SCSI: /dev/sda
  • SD/emmc و دستگاه‌های bare NAND/NOR: /dev/mmcblk0 و پارتیشن‌های آنها به عنوان /dev/mmcblk0p0 در دسترس هستند
  • درایوهای NVME: /dev/nvme0 و پارتیشن‌های آنها به عنوان /dev/nvme0n1

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

  • /dev/sda1 (اولین پارتیشن اولین دیسک SCSI)
  • /dev/hdb3 (پارتیشن سوم روی دومین دیسک)

شناسایی می‌کنیم.

سیستم‌های BIOS از MBR استفاده می‌کردند و می‌توانستند تا 4 پارتیشن روی هر دیسک داشته باشند، اگرچه به جای ایجاد 4 پارتیشن Primary، می‌توانستید یک پارتیشن Extended ایجاد کنید و پارتیشن‌های Logical بیشتری داخل آن تعریف کنید.

نکته

یک پارتیشن Extended در عمل یک کانتینر برای پارتیشن‌های منطقی است و خود به‌تنهایی داده ذخیره نمی‌کند؛ این موضوع در درک نام‌گذاری پارتیشن‌ها و ساختار آن‌ها مهم است.

بنابراین:

  • /dev/sda3 پارتیشن Primary سوم روی اولین دیسک است
  • /dev/sdb5 اولین پارتیشن Logical روی دومین دیسک است
  • /dev/sda7 پارتیشن Logical سوم اولین دیسک فیزیکی است

سیستم‌های UEFI از GUID Partition Table (GPT) استفاده می‌کنند که 128 پارتیشن روی هر دستگاه پشتیبانی می‌کند.

نکته

اگر یک پارتیشن extended روی سیستم BIOS تعریف کنید، شمارهٔ اولین پارتیشن منطقی‌ی درون آن از /dev/sdx5 شروع می‌شود (پارتیشن‌های Primary شماره‌های 1–4 را اشغال می‌کنند).

سیستم‌های لینوکس می‌توانند این پارتیشن‌ها را روی مسیرهای مختلف mount کنند. مثلاً می‌توانید یک دیسک جداگانه با یک پارتیشن بزرگ برای /home خود داشته باشید و دیگری برای /var/logs/.

fdisk

# fdisk /dev/sda
Welcome to fdisk (util-linux 2.25.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): p
Disk /dev/sda: 298.1 GiB, 320072933376 bytes, 625142448 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x000beca1

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1  *         2048  43094015  43091968  20.6G 83 Linux
/dev/sda2        43094016  92078390  48984375  23.4G 83 Linux
/dev/sda3        92080126 625141759 533061634 254.2G  5 Extended
/dev/sda5        92080128 107702271  15622144   7.5G 82 Linux swap / Solaris
/dev/sda6       107704320 625141759 517437440 246.8G 83 Linux

parted

jadi@funlife:~$ sudo parted /dev/sda p
Model: ATA ST320LT000-9VL14 (scsi)
Disk /dev/sda: 320GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type      File system     Flags
 1      1049kB  22.1GB  22.1GB  primary   ext4            boot
 2      22.1GB  47.1GB  25.1GB  primary   ext4
 3      47.1GB  320GB   273GB   extended
 5      47.1GB  55.1GB  7999MB  logical   linux-swap(v1)
 6      55.1GB  320GB   265GB   logical

هشدار

در برخی نسخه‌ها، parted به‌طور پیش‌فرض رفتار متفاوتی در برابر GPT دارد؛ هنگام کار با دیسک‌های GPT از ابزار مناسب (gdisk) یا گزینه‌های صحیح parted استفاده کنید و قبل از اعمال تغییرات، از داده‌ها پشتیبان بگیرید.

gparted

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

LVM

در بسیاری موارد، نیاز به تغییر اندازه پارتیشن‌ها یا حتی نصب دیسک‌های جدید و اضافه کردن آنها به نقاط mount فعلی دارید؛ افزایش اندازه کل. LVM برای این طراحی شده است.

LVM به شما کمک می‌کند یک پارتیشن از دیسک‌های مختلف ایجاد کنید و فضا را اضافه یا حذف کنید. مفاهیم اصلی عبارتند از:

  • Physical Volume (PV): یک درایو کامل یا یک پارتیشن. بهتر است پارتیشن‌ها را تعریف کنید و از دیسک‌های کامل - بدون پارتیشن‌بندی - استفاده نکنید.
  • Volume Groups (VG): مجموعه یک یا چند PV. OS vg را به عنوان یک دیسک بزرگ می‌بیند. PVها در یک VG می‌توانند اندازه‌های مختلف داشته باشند یا حتی روی دیسک‌های فیزیکی مختلف باشند.
  • Logical Volumes (LV): OS lvها را به عنوان پارتیشن‌ها می‌بیند. می‌توانید یک LV را با OS خود فرمت کنید و استفاده کنید.

طراحی چیدمان هارد دیسک

چیدمان دیسک و تخصیص پارتیشن‌ها به دایرکتوری‌ها بسته به کاربرد شما دارد. ابتدا، swap و boot را بحث خواهیم کرد و سپس سه مورد مختلف را خواهیم دید.

swap

Swap در لینوکس مانند حافظه توسعه‌یافته کار می‌کند. Kernel حافظه را به این پارتیشن/فایل page می‌کند. کافی است یک پارتیشن را با فایل‌سیستم swap فرمت کنید و آن را در /etc/fstab تعریف کنید (این را بعداً در ماژول 104 خواهید دید).

نکته

فرمول واحدی برای اندازه‌ی swap وجود ندارد؛ بسته به نیاز (مثلاً hibernation، میزان RAM، نوع بار کاری) می‌توان از قواعد مختلفی استفاده کرد (مثلاً "RAM + 2" یا "دو برابر RAM" در نمونه‌های قدیمی). همیشه بر اساس نیاز سیستم تصمیم‌گیری کنید.

/boot

پارتیشن /boot فایل‌های بوت‌لودر را نگه می‌دارد. در سیستم‌های BIOS، باید روی دیسک اول باشد و حداکثر 2TB اندازه داشته باشد. در سیستم‌های UEFI، EFI System Partition (ESP) باید FAT32 باشد و معمولاً 512MB است.

سناریوهای مختلف

سناریوی 1: سرور وب

برای یک سرور وب، /var باید بزرگ باشد زیرا لاگ‌ها و فایل‌های وب‌سایت در آنجا هستند. /home می‌تواند کوچک باشد.

سناریوی 2: دسکتاپ

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

سناریوی 3: سرور دیتابیس

برای سرور دیتابیس، /var/lib/mysql یا مشابه باید روی یک پارتیشن جداگانه باشد برای پشتیبان‌گیری آسان.

EFI System Partition (ESP)

در سیستم‌های UEFI، ESP یک پارتیشن FAT32 است که فایل‌های بوت را نگه می‌دارد. معمولاً /boot/efi mount می‌شود.

نکات نهایی

  • همیشه از پارتیشن‌بندی استفاده کنید، حتی اگر یک دیسک داشته باشید.
  • از LVM برای انعطاف‌پذیری استفاده کنید.
  • پشتیبان‌گیری قبل از تغییر پارتیشن‌ها.
  • از ابزارهای گرافیکی مانند gparted برای راحتی استفاده کنید.

نکات کلیدی برای آزمون

  • تفاوت MBR و GPT و محدودیت ۴ پارتیشن در MBR
  • نام‌گذاری دستگاه‌ها: /dev/sda, /dev/nvme0n1, /dev/mmcblk0p1
  • کاربردهای رایج پارتیشن‌ها: /boot, /home, /var و اهمیت جدا کردن /var در سرور
  • مفاهیم LVM: PV, VG, LV
  • موارد احتیاط هنگام تغییر پارتیشن: همیشه پشتیبان‌گیری انجام دهید