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

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

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

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

F3.png

گزینه Live CD را انتخاب کنید. سپس با کاربر root وارد سیستم شوید.

اگر قبلاً دیسک سخت خود را پارتیشن‌بندی کرده‌اید، به کمک دستور زیر می‌توانید اطلاعات مربوط به پارتیشن‌ها را مشاهده کنید. (نیازی به مشخص کردن /dev نیست)

gpart show ada0

که ada0 همان دیسک‌سخت شماست.

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

gpart destroy -F ada0

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

روش GPT

GPT یک استاندارد جدید برای پارتیشن‌بندی دیسک سخت است. پیشنهاد می‌کنیم همیشه از این روش برای پارتیشن‌بندی دیسک سخت استفاده کنید، مگر موقعی که قصد دارید FreeBSD را در کنار سیستم‌عامل‌های قدیمی مانند Microsoft Windows XP نصب کنید. (سیستم‌عامل‌های قدیمی با GPT سازگار نیستند)

در روش GPT، هر هارد‌دیسک می‌تواند ۱۲۸ پارتیشن داشته باشد که این پارتیشن‌ها به صورت ada0p1، ada0p2، ada0p3 و … در دسترس هستند.

ابتدا باید هارد‌دیسک را آماده پارتیشن بندی کنیم:

gpart create -s gpt ada0

دستور بالا جدول پارتیشن‌بندی از نوع GPT را در دیسک ada0 ایجاد می‌کند.

در مرحله بعد باید یک پارتیشن برای نگه‌داری بوت‌لودر FreeBSD ایجاد کنیم. این پارتیشن‌باید از نوع freebsd-boot باشد و اندازه‌ای کمتر از ۵۴۵ کیلوبایت داشته باشد. اندازه توصیه شده برای این پارتیشن ۶۴ کیلو‌بایت است.

gpart add -t freebsd-boot -s 64k ada0

در هنگام ایجاد پارتیشن‌ها، می‌تواند یک برچسب (label) برای آن‌ها در نظر گرفت تا دسترسی به آن‌ها راحت‌تر باشد. کافیست با گزینه ‎-l‎ این برچسب را مشخص کنید.

gpart add -t freebsd-boot -s 64k -l bootfs ada0

در مثال بالا برای پارتیشن بوت نام bootfs را انتخاب کردیم. می‌توان از طریق این نام به پارتیشن دسترسی داشت. مثلاً به جای اینکه بنویسیم /dev/ada0p0 می‌توانیم بنویسیم /dev/gpt/bootfs.

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

gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada0

دستور بالا کدهای موجود در فایل /boot/pmbr را در اولین سکتور دیسک‌سخت قرار می‌دهد. وظیفه این کد‌ها پیدا کردن پارتیشن freebsd-boot و اجرای کدهای موجود در آن است. همچنین کدهای موجود در فایل /boot/gptboot هم در پارتیشن ada0p1 قرار خواهند گرفت. در دستور بالا، از گزینه -i برای معرفی پارتیشن بوت استفاده شده است که همان ada0p1 است.

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

gpart add -t freebsd-ufs -s 3g -l rootfs ada0

گزینه ‎-s‎ اندازه این پارتیشن را مخشص می‌کند که در مثال بالا ۳ گیگابایت در نظر گرفته شده. گزینه ‎-l‎ هم برچسبی برای این پارتیشن در نظر می‌گیرد. این پارتیشن هم در مسیر /dev/ada0p2 و هم از طریق برچسب آن و در مسیر /dev/gpt/rootfs در دسترس است.

خب حالا نوبت ایجاد پارتیشن swap است. کافیست دستور زیر را اجرا کنید.

gpart add -t freebsd-swap -s 4g -l swapfs ada0

به همین ترتیب دیگر پارتیشن‌ها را هم ایجاد کنید:

gpart add -t freebsd-ufs -s 2g -l varfs ada0 # /var
gpart add -t freebsd-ufs -s 1g -l tmpfs ada0 # /tmp
gpart add -t freebsd-ufs -l usrfs ada0 # /usr

در آخرین دستور اندازه پارتیشن را مشخص نکردیم. اگر اندازه یک پارتیشن مشخص نشود، کلیه فضای باقیمانده در دیسک به آن پارتیشن اختصاص خواهد یافت.

خب حالا بیایید اطلاعات مربوط به پارتیشن‌های ایجاد شده را ببینیم:

Gpart-show.png

خب تا اینجا نحوه ایجاد یک پارتیشن را یاد گرفتیم، بد نیست نحوه پاک کردن آن‌ها را هم یاد بگیریم. در این مثال می‌خواهیم پارتیشن ada0p6 را پاک کنیم.

gpart delete -i 6 ada0

گزینه ‎-i‎ شماره پارتیشنی که قرار است پاک شود را مشخص می‌کند.

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

newfs -U /dev/ada0p2
newfs -U /dev/gpt/ada0p4

این کار را برای تمامی پارتیشن‌های نوی freebsd-ufs تکرار کنید. در خط دوم، از برچسب پارتیشن برای قالب‌بندی آن استفاده کردیم. گزینه ‎-U‎ قابلیت soft updates را فعال می‌کند.

روش MBR

روش MBR یک روش قدیمی‌تر برای پارتیشن‌بندی است که پیشنهاد می‌کنیم فقط در صورتی از آن استفاده کنید که قرار است FreeBSD در کنار سیستم‌عامل‌های قدیمی نصب شود.

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

gpart destory -F ada0

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

gpart create -s mbr ada0

دستور بالا یک جدول پارتیشن از نوع mbr در دیسک سخت ada0 ایجاد می‌کند.

سپس کدهای مربوط به بوت را در mbr قرار دهید. دو انتخاب در پیش دارید:

  • /boot/mbr: کدهای موجود در این فایل، دیسک‌سخت را برای پیدا کردن یک پارتیشن از نوع active جستجو کرده و سپس کد‌های موجود در آن پارتیشن را اجرا می‌کنند.
  • /boot/boot0: این فایل حاوی یک بوت لودر با قابلیت تعامل با کاربر است. بدین ترتیب کاربر می‌تواند به صورت دستی یک پارتیشن را برای بوت شدن انتخاب کند.

در این مثال ما از فایل /boot/mbr استفاده می‌کنیم:

gpart bootcode -b /boot/mbr ada0

در مرحله بعد باید یک slice ایجاد کنیم. Slice همان چیزیست که دیگر سیستم‌عامل‌ها به آن primary partition می‌گویند.

gpart add -t freebsd -s 40g ada0

دستور بالا یک slice به اندازه چهل گیگابایت ایجاد می‌کند. هر slice می‌تواند دربرگیرنده پارتیشن‌ها باشد. واژه پارتیشن در اینجا متفاوت با چیزیست که دیگر سیستم‌عامل‌ها به آن پارتیشن می‌گویند.

از آنجا که ما فایل /boot/mbr را در هارد دیسک نصب کردیم، باید این slice را در حالت active قرار دهیم تا بتوان FreeBSD را از روی آن بوت کرد:

gpart set -a active -i 1 ada0

حالا باید پارتیشن‌های مورد نظر خود را در این slice ایجاد کنیم. ابتدا یک جدول پارتیشن از نوع bsdlabel بر روی این slice ایجاد می‌کنیم:

gpart create -s bsd ada0s1

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

gpart bootcode -b /boot/boot ada0s1

حالا slice مورد نظر برای ایجاد پارتیشن‌ها آماده است. این پارتیشن‌ها را بدین ترتیب ایجاد کنید:

gpart add -t freebsd-ufs  -a 4k -s 2g ada0s1
gpart add -t freebsd-swap -a 4k -s 4g ada0s1
gpart add -t freebsd-ufs  -a 4k ada0s1

حالا باید این پارتیشن‌ها را قالب بندی کنیم تا قابل استفاده باشند. این کار از طریق دستور newfs امکانپذیر است.