دستور fdisk برای ساخت پارتیشن بندی در هارد دیسک

fdisk چه ابزاری است و چگونه پارتیشن با آن بسازیم؟

اگر کاربر لینوکس باشید و از دسته کاربران قدیمی با دستور fdisk برخورد کرده اید. این دستور برای پارتیشن بندی هارد SSD یا HDD شما به کار می رود.

اگر یک کاربر تازه کار ( آینده دار) لینوکس باشید و جدا از استفاده های روزمره از توزیع گنو/لینوکس دنبال یادگیری آن نیز هستید خواندن این مطلب به شما پیشنهاد میشود.

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

معرفی دستور fdisk

اولین کار بعد از خرید و نصب یک هارد SSD یا HDD پارتیشن بندی آن جهت نصب سیستم عامل مانند لینوکس مک و ویندوز و همچنین ساخت یک فضا برای ذخیره سازی اطلاعات است.

fdisk یک ابزار در لینوکس است که به اصطلاح به آن menu-driven command می گویند یعنی دارای یکسری آپشن است که برای استفاده فقط کاربران sudo میتوانند Table های بر روی دیسک سخت را پارتیشن بندی (Partitioning) کنند.

مشاهده لیست پارتیشن ها با fdisk

برای لیست کردن پارتیشن های یک هارد دیسک ابزار fdisk را با آپشن l- همراه با نام هارد دیسک خود وارد نمایید. برای مثال برای فهرست کردن پارتیشن های dev/sda به این صورت عمل کنید :

fdisk -l /dev/sda

نتیجه به شکل زیر :

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

همچنین با وارد کردن دستور fdisk -l تمام پارتیشن های موجود شناخته شده را فهرست میکند.

همچنین دقت داشته باشید که دستگاهایی با رابط SATA به شکل الگوی زیر نامگذاری میشوند :
/dev/sd[a-z] البته این به این معنی نیست که شما به تعداد حروف انگلیسی هارد دیسک به دستگاه خود متصل کنید فلسفه نامگذاری در لینوکس مقداری متفاوت است که بعدها به آن اشاره میکنم.

این نامگذاری در دیوایس های NVMe نیز متفاوت است و از الگوی زیر استفاده میکند :

/dev/nvme[1-9]n[1-9]

ساخت پارتیشن تیبل

ترمینال خود را باز کنید و دستور fdisk -l را تایپ کنید برای مثال میخواهیم یک هارد دیسک را مجددا پارتیشن بندی کنیم پس دستور زیر را برای ساخت یک پارتیشن تیبل وارد کنید :

fdisk  dev/sdb

dev/sdb میتواند یک فلش مموری یا یک دیسک سخت باشد پس ممکن خروجی ذکر شده در اینجا برای شما متفاوت باشد. همچنین تاکید میکنم این کار را بر روی ماشین مجازی انجام دهید

خروجی به شکل زیر :

اجرای ابزار fdisk و نمایش یک پیغام اولیه

نکته : تغییرات در هنگام ساخت پارتیشن تیبل که ایجاد کرده اید تا زمانی که دستور w را نداده باشید اجرا نمیشوند. همچنین برای خروج از این پیغام کلید q را فشار دهید, و با دستور m راهنمای آن را مشاهده کنید.

راهنمای دستور fdisk در لینوکس برای پارتیشن بندی

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

fdisk از چندین طرح تقسیم بندی پشتیبانی می کند. MBR و GPT دو استاندارد طرح بندی پارتیشن هستند که اطلاعات پارتیشن بندی را به روشی متفاوت در درایو ذخیره می کنند. GPT یک استاندارد جدیدتر است که دارای مزایای بسیاری نسبت به MBR است.

نکات اصلی که باید در هنگام انتخاب استاندارد پارتیشن بندی استفاده کنید ، باید در نظر بگیرید:

  • استفاده از MBR برای بوت شدن دیسک هایی که بایوس در حالت legacy است.
  • استفاده از GPT برای بوت شدن دیسک هایی که از UEFI mode برخوردار هستند.
  • استاندارد GPT از پارتیشن های 2 ترابایتی پشتیبانی میکند درحالی میخواهید یک پارتیشن بیش از ۲ ترابایتی داشته باشید از GPT استفاده کنید.
  • MBR از 4 پارتیشن primary پشتیبانی میکند؛ اگر به پارتیشن های بیشتری احتیاج دارید میتوانید یکی از پارتیشن های اصلی را به عنوان extand در نظر بگیرید پارتیشن های logical دیگری در آن نگه داشت. در GPT حداکثر میتوانید 128 پارتیشن داشته باشید و همچنین از extand و logical پشتیبانی نمیکند.

در این مثال ما فرض بر ساخت پارتیشن با استاندارد GPT را داریم.

کلمه g را تایپ و اینتر بزنید؛ پیغام زیر نمایان میشود :

Command (m for help): g
Created a new GPT disklabel (GUID: C0C67574-EE70-D849-A450-B90A1BF41A9F).

قدم بعدی ایجاد پارتیشن های جدید است.

دو پارتیشن ایجاد خواهیم کرد. مورد اول با اندازه Gib 100 و دوم باقیمانده فضای دیسک را می گیرد.

دستور n را اجرا کنید تا یک پارتیشن جدید ایجاد کنید:

Command (m for help): n

از شما خواسته می شود شماره پارتیشن را وارد کنید. برای استفاده از مقدار پیش فرض (1) “را وارد کنید”:

: Partition number (1-128, default 1)

در مرحله بعد ، دستور از شما می خواهد که بخش اول را مشخص کنید. به طور کلی آن است که همیشه توصیه می شود به استفاده از مقادیر پیش فرض برای ارزش برای اولین بار. برای استفاده از مقدار پیش فرض (2048) “Enter” را بزنید:

: First sector (2048-500118158, default 2048)

در صورت درخواست بعدی ، باید وارد آخرین بخش شوید. با استفاده از نماد + که در زیر اندازه پارتیشن قرار دارد ، می توانید برای آخرین بخش یا مقدار نسبی نسبت به بخش شروع ، از مقدار مطلق استفاده کنید. اندازه را می توان در kibibytes (K) ، mebibytes (M) ، gibibytes (G) ، tebibytes (T) یا pebibytes (P) مشخص کرد.

برای تنظیم اندازه پارتیشن 100G را وارد کنید:

Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-500118158, default 500118158): +100G

خروجی :

Created a new partition 1 of type 'Linux filesystem' and of size 100 GiB

به طور پیش فرض ، نوع پارتیشن جدید روی “Linux filesystem” تنظیم شده است ، که برای اکثر موارد باید خوب باشد. اگر می خواهید نوع را تغییر دهید ، l را فشار دهید تا لیستی از انواع پارتیشن ها بدست آید و سپس t را فشار دهید تا نوع تغییر یابد.

بیایید دومین بخش را ایجاد کنیم که بقیه فضای دیسک را به خود اختصاص دهد:

Command (m for help): n

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

Partition number (2-128, default 2): 
First sector (209717248-625142414, default 209717248): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (209717248-625142414, default 625142414): 

پس از اتمام ایجاد پارتیشن ها ، از دستور p برای نمایش جدول پارتیشن جدید استفاده کنید:

Disk /dev/sdb: 298.9 GiB, 320072933376 bytes, 625142448 sectors
Disk model: nal USB 3.0     
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: F8365250-AF58-F74E-B592-D56E3A5DEED1

Device         Start       End   Sectors   Size Type
/dev/sdb1       2048 209717247 209715200   100G Linux filesystem
/dev/sdb2  209717248 625142414 415425167 198.1G Linux filesystem

نکته :اگر می خواهید یک پارتیشن تیبل را حذف کنید ، از دستور d استفاده کنید.

با اجرای دستور w ، تغییرات را ذخیره کنید:

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

kernel بدون نیاز به راه اندازی مجدد سیستم پارتیشن بندی دستگاه را می خواند.

فعال سازی پارتیشن های ساخته شده

اکنون که پارتیشن ها ایجاد شده اند ، مرحله بعدی فرمت بندی پارتیشن ها و mount کردن آنها به فهرست درختی (tree) سیستم است.

sudo mkfs.ext4 -F /dev/sdb1
sudo mkfs.ext4 -F /dev/sdb2
mke2fs 1.45.5 (07-Jan-2020)
Creating filesystem with 51928145 4k blocks and 12984320 inodes
Filesystem UUID: 63a3457e-c3a1-43f4-a0e6-01a7dbe7dfed
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624, 11239424, 20480000, 23887872

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done   

در ادامه mount point شدن را مشخص میکنیم :

sudo mkdir -p /mnt/audio /mnt/video 

mount کردن پارتیشن جدید :

sudo mount /dev/sdb1 /mnt/audio
sudo mount /dev/sdb2 /mnt/video

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

خودشه! حالا می توانید از پارتیشن های جدید برای ذخیره پرونده های خود استفاده کنید.

نتیجه

fdisk یک ابزار خط فرمان برای ایجاد طرح های پارتیشن است. برای کسب اطلاعات بیشتر در مورد دستور fdisk ، fdisk man را در ترمینال خود تایپ کنید.

درباره نویسنده: AfshinBalakar

افشین بالاکار دانشجوی مهندسی تکنولوژی نرم افزار، مدت 5 سال است با لینوکس رابطه افلاطونی دارم.

مطالب زیر را حتما بخوانید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *