ابزار کاربر

ابزار سایت


دستور_parted_پارتیشن_بندی_دیسک

دستور parted (پارتیشن بندی دیسک)

ابزاری برای پارتیشن بندی و تغییر اندازه پارتیشن ها در لینوکس می باشد. در این آموزش قصد داریم چگونگی استفاده از این ابزار برای ایجاد پارتیشن ها را توضیح دهیم. در فایل سیستم MBR حداکثر میتواند ۴ پارتیشن از نوع Primary وجود داشته باشد. چهارمین پارتیشن Primary تبدیل به یک Extended Partition شده و سپس این پارتیشن به تعدادی (دلخواه) Logical Partition تبدیل میشوند. با فرض اینکه در حال حاضر روی سیستم دیسکی وجود دارد می خواهیم دیسک دیگری را متصل کنیم و آن را پارتیشن بندی کنیم. اگر دیسک ها از نوع SATA باشند اولین دیسک متصل به سیستم sda و دومین دیسک متصل به سیستم sdb است. همچنین اولین پارتیشن دیسک اول sda1 و دومین پارتیشن دیسک اول sda2 و الی آخر.

پیشنهاد میکنم برای اطلاعات تکمیلی آموزش آشنایی با نام گذاری دیسک ها در لینوکس را مطالعه کنید

نصب ابزار parted

در اکثر توزیع های لینوکس ابزار parted بصورت پیش فرض نصب میباشد اما در صورتیکه به هر دلیلی این ابزار بر روی توزیع گنو/لینوکسی شما موجود نیست می توانید از دستورات زیر جهت نصب آن استفاده نمایید.

توزیع های مبتی بر Debian, Ubuntu, mint

sudo apt install parted

توزیع های مبتنی بر RHEL, CentOS و Fedora

yum install parted
dnf install parted

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

parted -l

خروجی دستور را ببینید

Model: ATA Samsung SSD 850 (scsi)
Disk /dev/sda: 250GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 
 
Number  Start   End     Size    Type     File system  Flags
 1      1049kB  1075MB  1074MB  primary  ext4         boot
 2      1075MB  250GB   249GB   primary
 
 
Model: PHD 3.0 Silicon-Power (scsi)
Disk /dev/sdb: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Disk Flags: 
 
Number  Start   End     Size    Type     File system  Flags
 1      1049kB  1000GB  1000GB  primary  ntfs         boot

همانطور که مشاهده میکنید. دو دیسک به سیستم متصل هستند اولی با حجم ۲۵۰ گیگ و دارای ۲پارتیشن و دومی با حجم ۱۰۰۰ گیگ و یک پارتیشن است.

چک کردن نسخه ابزار parted

با استفاده از دستور زیر می توانید نسخه ابزار parted نصب شده بر روی توزیع لینوکس خود را مشاهده نمایید. در صورتیکه نسخه ابزار شما متفاوت از نسخه نمایش داده شده است نگران نباشید ابزار parted از درایو primary شما استفاده خواهد کرد که در اکثر مواقع در مسیر /dev/sda قرار دارد.

parted

خروجی دستور بالا

GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)

در صورتی که قصد دارید از محیط ابزار parted خارج شوید. فقط کافی است quit را بنویسید و ENTER بزنید

در صورت مشاهده عبارت (parted) شما در محیط ابزار parted قرار دارید به عبارت دیگر (parted) در واقع prompt یا اعلان محیط ابزار parted است.

لیست کردن پارتیشن های دیسک

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

(parted) print

خروجی دستور بالا

Model: ATA Samsung SSD 850 (scsi)
Disk /dev/sda: 250GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 
 
Number  Start   End     Size    Type     File system  Flags
 1      1049kB  1075MB  1074MB  primary  ext4         boot
 2      1075MB  250GB   249GB   primary

زمانیکه از دستور print استفاده میکنید اطلاعات هارددیسک و مدل آن نیز نمایش داده می شود.

لیست کردن یا سويیچ بین دیسک های مختلف

در صورتیکه شما بیش از یک دیسک بر روی سیستم خود دارید می توانید با استفاده از دستور select به آسانی بین دیسک های خود سويیچ کنید. در مثال زیر من از dev/sda/ به dev/sdb/ که دومین درایو روی سیستم من هست سويیچ می کنم.

(parted) select /dev/sdb

و بعد دستور print را اجرا کردم تا ببینم دیسک درست انتخاب شده است خروجی دستور را ببینید

(parted) print                                                            
Model: PHD 3.0 Silicon-Power (scsi)
Disk /dev/sdb: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Disk Flags: 
 
Number  Start   End     Size    Type     File system  Flags
 1      1049kB  1000GB  1000GB  primary  ntfs         boot

ایجاد پارتیشن Primary یا Logical

از ابزار parted میتوانید جهت ایجاد پارتیشن Primary یا Logical استفاده نمایید. در این مثال به شما نشان خواهیم داد که چگونه از ابزار parted جهت ایجاد پارتیشن Primary استفاده نمایید امام گام های ایجاد پارتیشن primary برای ایجاد پارتیشن Logical نیز یکسان هستند. جهت ایجاد پارتیشن جدید توسط ابزار parted از دستور mkpart استفاده نمایید شما همچنین می توانید پارامترهای اضافه تری همچون primary یا logical بسته به نوع پارتیشنی که قصد ایجاد آن را دارید نیز تایپ کنید. قبل از اینکه شما شروع به ایجاد پارتیشن ها نمایید. مهم است که بدانید که دیسک مورد نظر برای پارتیشن بندی را درست انتخاب کرده باشید. برای این منظور ابتدا از دستور print استفاده نمایید.

(parted) print                                                            
Model: ADATA USB Flash Drive (scsi)
Disk /dev/sdc: 15.9GB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags: 
 
Number  Start  End     Size    File system  Flags
 1      0.00B  15.9GB  15.9GB  ntfs

همانطور که در خروجی بالا مشاهده میکنید ما از یک فلش مموری به حجم ۱۶ گیگ استفاده میکنیم ابتدا به دیسک جدید یک label اختصاص داده و سپس اقدام به ایجاد یک پارتیشن و تنظیم فایل سیستم آن میکنیم. حال به عنوان اولین گام با استفاده از دستور زیر اقدام به دادن یک label به دیسک جدید میکنیم:

(parted) mklabel msdos

حال پارتیشن جدید را با استفاده از دستور mkpart ایجاد میکنیم. برای مثال قصد داریم یک پارتیشن 5GB را ایجاد نماییم بنابراین در جلوی عبارت ?start عدد ۱ و در جلوی عبارت ?end عدد ۵۰۰۰ را وارد میکنیم که شروع و انتهای پارتیشن را مشخص کنند

توجه کنید که واحدها بر حسب MB هستند بنابراین برای ایجاد پارتیشنی به حجم 5GB داریم ۵*۱۰۰۰ = ۵۰۰۰ در واقع جهت راحتی کار هر 1GB را برابر 1000MB به جای 1024MB در نظر میگیریم

سپس با استفاده از دستور quit از محیط parted خارج شوید.برای راهنمایی به دستورات زیر دقت کتید

(parted) mkpart
Partition type?  primary/extended? primary                                
File system type?  [ext2]?                                                
Start? 1                                                                  
End? 5000                                                                 
(parted) print                                                            
Model: ADATA USB Flash Drive (scsi)
Disk /dev/sdc: 15.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 
 
Number  Start   End     Size    Type     File system  Flags
 1      1049kB  5000MB  4999MB  primary  ext2         lba

حال میخواهیم پارتیشن جدیدمان را با استفاده از فایل سیستم ext4 فرمت کنیم برای این منظور از دستور mkfs استفاده میکنیم

برای توضیحات تکمیلی در ارتباط با دستور mkfs (ایجاد سیستم فایل) را ببینید

توجه نمایید هنگامیکه از دستور زیر استفاده میکنیم حتما مطمئن شوید که دیسک و پارتیشن را به درستی انتخاب کرده باشید!

mkfs.ext4 /dev/sdc1

حال اجازه دهید با چاپ کردن partition table روی دیسک دوم خود نتایجمان را بررسی نماییم. همانطور که در خروجی زیر میبینید می بایست در زیر ستون file system عبارت ext4 به عنوان فایل سیستمی که برای پارتیشن خود استفاده کرده اید مشاهده نمایید.

(parted) print                                                            
Model: ADATA USB Flash Drive (scsi)
Disk /dev/sdc: 15.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 
 
Number  Start   End     Size    Type     File system  Flags
 1      1049kB  5000MB  4999MB  primary  ext4         lba

Resize کردن پارتیشن دیسک

ابزار parted شامل چندین تابع مفید است و یکی از آنها resizepart می باشد. این تابع به شما کمک میکند تا سایز یک پارتیشن را تغییر دهید. در مثال زیر شما مشاهده خواهید کرد که اندازه یک پارتیشن موجود را تغییر خواهیم داد. برای این منظور از پارتیشنی که در بخش قبل ایجاد کرده بودیم استفاده خواهیم کرد توجه نمایید که جهت تغییر سایز یک پارتیشن نیاز دارید که شماره پارتیشن مورد نظر را بدانید. بنابراین از دستور print جهت مشاهده شماره پارتیشن مورد نظر استفاده نمایید.

(parted) print                                                            
Model: ADATA USB Flash Drive (scsi)
Disk /dev/sdc: 15.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 
 
Number  Start   End     Size    Type     File system  Flags
 1      1049kB  5000MB  4999MB  primary  ext4         lba

همانطور که در دستورات بالا مشاهده میکنید در مثال ما پارتیشن مورد نظر (پارتیشنی که اخیرا ایجاده کرده ایم) برابر ۱ است. حال جهت تغییر سایز آن از دستور زیر استفاده میکنیم:

(parted) resizepart

پس از وارد کردن دستور فوق سیستم از شما شماره پارتیشنی که قصد تغییر سایز آن را دارید سوال خواهد کرد شماره پارتیشن مورد نظر را وارد کنید ( در این مثال عدد ۱) پس از آن سیستم از شما درباره تنظیم نقطه خاتمه ending point برای پارتیشن جدید سوال خواهد کرد. به یاد داشته باشید که بصورت پیش فرض واحد ها برحسب MB هستند بنابراین در این مثال سایز پارتیشن جدید را 8000 GB وارد میکنیم

(parted) resizepart
Partition number? 1                                                       
End?  [5000MB]? 8000

حال جهت بررسی نتایج از دستور print یکبار دیگر استفاده میکنیم.

(parted) print                                                            
Model: ADATA USB Flash Drive (scsi)
Disk /dev/sdc: 15.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 
 
Number  Start   End     Size    Type     File system  Flags
 1      1049kB  8000MB  7999MB  primary  ext4         lba

حذف پارتیشن

در این بخش یاد خواهید گرفت که چگونه یک پارتیشن را از روی درایو خود حذف کنید. برای این منظور شما نیاز دارید از دستور rm در محیط ابزار parted استفاده نمایید توجه کنید که جهت حذف یک پارتیشن نیز به شماره پارتیشن یا partition number نیاز خواهید داشت بنابرانی همانطور که بیشتر نیز اشاره شد شما می توانید به سادگی از دستور print جهت مشاهده شماره پارتیشن مورد نظر استفاده نمایید در این مثال ما قصد داریم تا پارتیشنی با partition number=1 را از روی درایو دوم سیستم خود یا dev/sdc1/ حذف کنیم بنابراین:

(parted) rm 1

همچنین جهت بررسی نتیجه دستور فوق از دستور print یکبار دیگر کمک میگیریم.

(parted) print                                                            
Model: ADATA USB Flash Drive (scsi)
Disk /dev/sdc: 15.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 
 
Number  Start  End  Size  Type  File system  Flags

Rescue (Recover) کردن پارتیشن دیسک

ابزار parted از ابزار کمکی rescue که به شما جهت Recover کردن یک پارتیشن بین نقاط ابتدای (strating point) و انتهای (ending point) کمک میکند پشتیبانی می نماید برای این منظور از دستور زیر rescue استفاده نموده و نقاط ابتدایی و انتهایی را برای آن جهت جستجوی پارتیشن حذف شده و recovery آن وارد نمایید.

(parted) rescue
Start? 1                                                                  
End? 8000 

تغییر Flag پارتیشن

با استفاده از ابزار parted شما میتوانید حالت flag را برای پارتیشن های دیسک تغییر دهید. Flag های پشتیبانی شده عبارتند از:

  • boot
  • root
  • swap
  • hidden
  • raid
  • lvm
  • lba
  • legacy_boot
  • irst
  • esp
  • palo

حالت (stat) مربوط به flag می تواند on یا off باشد. جهت تغییر یک flag میتوانید از دستور set در parted به سادگی استفاده نمایید.

(parted) set 2 lba on

دستور فوق lba flag را برای پارتیشن دوم بصورت on تنظیم میکند.

دستورهای مورد استفاده برای ایجاد پارتیشن

دستور mklabel

اگر برای اولین بار هست که میخواهید دیسک را پارتیشن بندی کنید از دستور mklabel برای ایجاد جدول پارتیشن استفاده کنید. دستور help mklabel را جلوی اعلان parted اجرا کرده تا لیستی از موارد مجاز را مشاهده کنید.

(parted) help mklabel                                                    
  mklabel,mktable LABEL-TYPE               create a new disklabel (partition
        table)
 
	LABEL-TYPE is one of: aix, amiga, bsd, dvh, gpt, mac, msdos, pc98, sun,
        loop

دستور mkpart

برای ایجاد پارتیشن استفاده میشود دو مقدار start و end آغاز و انتهای پارتیشن و همچنین نوع پارتیشن را اختیار میکند دستور help mkpart را اجرا کنید تا راهنمای دستور نشان داده شود.

(parted) help mkpart
  mkpart PART-TYPE [FS-TYPE] START END     make a partition
 
	PART-TYPE is one of: primary, logical, extended
        FS-TYPE is one of: btrfs, nilfs2, ext4, ext3, ext2, fat32, fat16, hfsx,
        hfs+, hfs, jfs, swsusp, linux-swap(v1), linux-swap(v0), ntfs, reiserfs,
        hp-ufs, sun-ufs, xfs, apfs2, apfs1, asfs, amufs5, amufs4, amufs3,
        amufs2, amufs1, amufs0, amufs, affs7, affs6, affs5, affs4, affs3, affs2,
        affs1, affs0, linux-swap, linux-swap(new), linux-swap(old)
        START and END are disk locations, such as 4GB or 10%.  Negative values
        count from the end of the disk.  For example, -1s specifies exactly the
        last sector.
 
        'mkpart' makes a partition without creating a new file system on the
        partition.  FS-TYPE may be specified to set an appropriate partition
        ID.

میتوانید دستور mkpart را نوشته و سپس ENTER کنید تا دوباره اعلان هایی مبنی بر ورود نوع سیستم فایل (که بطور پیش فرض ext2 است. یعنی اگر جلوی این اعلان چیزی ننویسید و فقط ENTER بزنید نوع سیستم فایل ext2 در نظر گرفته میشود) یا اینکه تمامی ورودی ها را در یک خط بنویسید و ENTER کنید.

mkpart PART-TYPE [FS-TYPE] START END

دستور rm

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

rm NUMBER

از دستور help rm استفاده کنید تا راهنمای دستور نشان داده شود این دستور و تمامی دستورهای دیگر (mklabel و …) مانند دستور mkpart می توانند با تمامی آرگومان های لازمشان در یک خط نوشته شوند یا اینکه دستور به تنهایی نوشته شود و در جلوی اعلان ها مربوطه مقادیر وارد شوند

دستور print

جدول پارتیشن ها را نشان می دهد.اگر آن را بی هیچ پارامتری اجرا کنید فهرستی از پارتیشن های موجود و ایجاد شده را نشان می دهد و اگر print free را اجرا کنید فهرست پارتیشن ها فضای خالی موجود بر روی دیسک را نیز نشان می دهد از دستور help print برای مشاهده راهنمای آن استفاده کنید

دستور select

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

select /dev/sdb

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

parted select /dev/sdb

دستور unit

برای تنظیم واحد پیش فرض مقادیر start و end استفاده میشود بطور مثال اگر آن را به MB یعنی مگابایت وارد کرده باشید و میخواهید پارتیشنی به اندازه ۵ گیگابایت ایجاد کنید باید مقدار 5000MB را استفاده کنید. برای تغییر مقدار پیش فرض از دستور زیر و برای خواندن راهنمای آن از دستور help unit استفاده کنید.

دستور quit

برای خروج از محیط parted استفاده میشود.

دستور_parted_پارتیشن_بندی_دیسک.txt · آخرین ویرایش: 2018/06/23 19:26 توسط phoenix