آموزش ساخت پارتیشن های GPT در لینوکس

در آموزش قبل نحوه ایجاد پارتیشن با استفاده از دستور fdisk به صورت خلاصه و گذرا توضیح داده شد. اما این دستور دارای محدودیت در ساخت پارتیشن با حجم بیشتر از 2 ترابایت  می باشد. در این آموزش قصد داریم تا نحوه ایجاد پارتیشن های بیشتر از دو ترابایت یا Guid Partition Table یا GPT آشنا شویم.

برای رفع این محدودیت از دستور Parted با ساختار GPT استفاده خواهیم کرد. این دستور از Partition Table  های Intel EFI/GPT نیز پشتیبانی می کند.  Guid Partition Table  یا GPT فرمتی استاندارد در لایه بندی پارتیشن ها در دیسک فیزیکی می باشد که به همراه استاندارد EFI  (Extensible Firmware Interface) معرفی گردید. EFI   استانداری است که توسط اینتل به عنوان جایگزینی برای PC BIOS طراحی گردیده است. از آنجایی که MBR  از آدرس دهی 32 بیتی برای بلاک ها استفاده می کند، در نهایت برای هارد دیسکی که درای سکتور های 512 بایتی میباشد، نهایت فضای آدرس دهی شده می تواند تا دو ترابایت باشد (232 × 512 bytes) اما در GPT با استفاده از آدرس دهی 64 بیتی، امکان ایجاد دیسک هایی با ظرفیت 9.4ZB ایجاد نمود.

در شکل زیر نمایی از ساختار و لایه های  GPT را مشاهده می کنید. هر Logical Block  دارای فضایی برابر با 512 بایت می باشد.

GPT Schema

GPT استانداردی است که در  سیستم عامل های 32 بیت و 64 بیت قابل استفاده می باشد. اما باید توجه داشت که کرنل سیستم عامل شما از این استاندارد پشتیبانی کند. البته اکثر توزیع هایی که اخیرا منتشر شده اند GPT را پشتیانی می کنند.

File Systems
   Partition Types
     [*] Advanced partition selection
     [*] EFI GUID Partition support (NEW)
....

 

ابتدا از طریق دستور زیر دیسک مورد نظر را نمایش خواهیم داد.

# fdisk -l /dev/sdb

 

خروجی دستور بالا مشابه زیر خواهد بود.

Disk /dev/sdb: 3000.6 GB, 3000592982016 bytes
255 heads, 63 sectors/track, 364801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdb doesn't contain a valid partition table

 

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

# parted /dev/sdb

 

خروجی به شکل زیر خواهد بود.

GNU Parted 2.3

Using /dev/sdb

Welcome to GNU Parted! Type 'help' to view a list of commands.

(parted)

 

در محیط GNU  از طریق دستور زیر به دیسک لیبیل gpt  خواهیم زد.

 

 (parted) mklabel gpt

 

در ادامه هشداری مشاهده خواهید کرد مبنی بر این که با ادامه این کار لیبیل فعلی دیسک از بین خواهد رفت وتمامی داده های دیسک نیز حذف خواهد شد. پس در صورتی که از ادامه عملیات مطمئن هستید yes  را وارد کنید و عملیات را ادامه دهید.

Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue?

Yes/No? yes

(parted)

 

در ادامه واحد مبنا را بر حسب ترابایت تنظیم خواهیم کرد.

(parted) unit TB

 

و در نهایت با دستور زیر دیسکی با ظرفیت سه ترابایت ایجاد خواهیم کرد.

(parted) mkpart primary 0 3

 

یا

(parted) mkpart primary 0.00TB 3.00TB

 

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

(parted) print

 

که خروجی به شکل زیر را به همراه خواهد داشت.

Model: ATA ST33000651AS (scsi)

Disk /dev/sdb: 3.00TB

Sector size (logical/physical): 512B/512B

Partition Table: gpt
Number  Start   End     Size    File system  Name     Flags
 1      0.00TB  3.00TB  3.00TB  ext4         primary

با دستور quit  از محیط GNU تنظیمات را ذخیره کرده و از محیط خارج خواهیم شد.

(parted) quit

 

خروجی باید مشابه زیر باشد.

Information: You may need to update /etc/fstab.

 

حال که پارتیشن را ایجاد کردیم می بایست آن را فرمت نمائیم.

 

# mkfs.ext3 /dev/sdb1

 

یا

# mkfs.ext4 /dev/sdb1

 

خروجی می باسیت مشابه زیر باشد.

mkfs.ext4 /dev/sdb1

mke2fs 1.41.12 (17-May-2010)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

183148544 inodes, 732566272 blocks

36628313 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=4294967296

22357 block groups

32768 blocks per group, 32768 fragments per group

8192 inodes per group

Superblock backups stored on blocks:

        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,

        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,

        102400000, 214990848, 512000000, 550731776, 644972544



Writing inode tables: done

Creating journal (32768 blocks): done

Writing superblocks and filesystem accounting information: done



This filesystem will be automatically checked every 31 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.

 

حال میتوانید از طریق دستور زیر پارتیشن را به مسیر مورد نظر Mount  نمائید.

 

# mkdir /data
# mount /dev/sdb1 /data
# df -H

 

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

Filesystem             Size   Used  Avail Use% Mounted on

/dev/sdc1               16G   819M    14G   6% /

tmpfs                  1.6G      0   1.6G   0% /lib/init/rw

udev                   1.6G   123k   1.6G   1% /dev

tmpfs                  1.6G      0   1.6G   0% /dev/shm

/dev/sdb1              3.0T   211M   2.9T   1% /data

نکته :

  • فراموش نکنید که نیاز است پارتیشن جدید را در فایل fstab نیز اضافه نمائید تا در بوت های بعدی سیستم به صورت خودکار Mount  گردد.
  • پارتیشن ایجاد شده را نیز میتوانید به صورت LVM به کار بگیرید.
  • برای بوت شدن از یک دیسک GPT نیاز است که BIOS یا Firmware از این قابلیت پشتیبانی کند. پیشنهاد می شود برای بوت کردن از دیسک دیگری مانند IDE/SATA و یا SSD استفاده نمائید.
  • بر اساس مستندات fdisk آخرین نسخه های آن از GPT پشتیبانی می کند.

fdisk is able to optimize the disk layout for a 4K-sector size and use an alignment offset on modern devices for MBR and GPT. GPT is modern standard for the layout of the partition table. GPT uses 64-bit logical block addresses, checksums, UUIDs and names for partitions and an unlimited number of partitions (although the number of partitions is usually restricted to 128 in many partitioning tools). Note that the first sector is still reserved for a protective MBR in the GPT specification. It prevents MBR-only partitioning tools from mis-recognizing and overwriting GPT disks.

 

استفاده از gdisk

دستور gdisk  نیز میتواند به عنوان جایگزینی برای دستور fdisk  استفاده شود. ساختار این دستور همانند fdisk  می باشد. به نمونه های زیر توجه نمائید.

 

$ sudo fdisk /dev/sdb

 

یا

$ sudo gdisk /dev/sdb

 

خروجی نمونه:

GPT fdisk (gdisk) version 1.0.1



Partition table scan:

  MBR: not present

  BSD: not present

  APM: not present

  GPT: not present



Creating new GPT entries.



Command (? for help):

 

برای ساخت پارتیشن جدید n  را وارد کنید.

Command (? for help): n

Partition number (1-128, default 1): 1

First sector (34-XXXXXXX, default = 2048) or {+-}size{KMGTP}:

Last sector (2048-XXXXXXX, default = XXXXXXX) or {+-}size{KMGTP}:

Current type is 'Linux filesystem'

Hex code or GUID (L to show codes, Enter = 8300)

 

برای ذخیره تغییرات W  را وارد کنید.

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING

PARTITIONS!!



Do you want to proceed? (Y/N): y

OK; writing new GUID partition table (GPT) to hdd.img.

Warning: The kernel is still using the old partition table.

The new table will be used at the next reboot or after you

run partprobe(8) or kpartx(8)

The operation has completed successfully.

 

حال میتوان دیک را فرمت کرد و به راحتی و به روش معمول آن را Mount  کنید.

 

 

حامد
اشتراک دانش رو دوست دارم برای همین سعی میکنم مطالب آموزشی ای تهیه شده دارای جزئیات خوب و به صورت کامل تهیه بشوند.استفاده از مطالب این سایت در هر جایی بلا مانع می باشد. اما ذکر منبع رفتاری حرفه ای و اخلاقی خواهد بود. من را از نظرات خود مطلع سازید. و اگر میخواهید در مورد من بیشتر بدانید سری به صفحه "در باره من" بزنید.