در آموزش قبل نحوه ایجاد پارتیشن با استفاده از دستور 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 استانداردی است که در سیستم عامل های 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 کنید.
دیدگاهتان را بنویسید