اگر با دستوراتی مثل fdisk تغییری در پاتیشنهاتون ایجاد کنین تا زمانی که سیستمتون رو ریستارت نکنین سیستم پارتیشنتون رو نمیشناسه و از پارتیشنبندی جدیدتون نمیتونین استفاده کنین. خوب برای ریستارت نکردن میتونیم از این دستور استفاه کنیم که خودش قسمتی از دستور parted هست که یک دستور برای ساخت پارتیشن، فرمت کردن و .... است.
شاید این سوال پیش بیاد که: چرا بعد از ریستارت کردن پارتیشنها شناسایی میشودند؟
دلیلش این هست که موقع بالا آمدن، کرنل سکتور اول دیوایس رو که حاوی جدول پارتیشنها هست رو میخونه و به حافظه رم میبرد (proc/partitions/)، حالا وقتی شما تغییراتی رو ایجاد میکنین باید به روشی به کرنل بگین که دوباره سکتور اول رو بخونه که با یکبار ریستارت شدن این کار رو میشه انجام داد.
مثلا خروجی proc/partitions/ رو در نظر بگیرین:
بعد انجام تغییرات (هنوز partprobe رو نزدیم یا ریستارت نکردیم)
قسمتی از خروجی رو حذف کردم
aliabry@ali:~$ cat /proc/partitions major minor #blocks name 11 0 1048575 sr0 8 0 12582912 sda 8 1 12057600 sda1 8 2 1 sda2 8 5 522240 sda5 . . . 9 1 41909248 md1 259 0 204800 md1p1 259 1 512000 md1p2 259 2 102400 md1p3
حالا بعد از زدن دستور partprobe یا ریستارت کردن میبینیم که md1p3 اضافه شده.
aliabry@ali:~$ cat /proc/partitions major minor #blocks name 11 0 1048575 sr0 8 0 12582912 sda 8 1 12057600 sda1 8 2 1 sda2 8 5 522240 sda5 . . . 9 1 41909248 md1 259 0 204800 md1p1 259 1 512000 md1p2 259 2 102400 md1p3 259 2 102400 md1p3
نصب parted
برای نصب parted در سیستم های دبیان بیس مثل اوبونتو دستور زیر رو بزنین:
# apt-get install parted
آپشنها
این دستور آپشنهای زیادی نداره، کلا ۵ تاست که ۲ تاش بیمصرفه.
با زدن این دستور به تنهایی شروع به اسکن کردن همه دیوایسها برای پیدا کردن تغییرات میکند و کرنل رو از تغییرات با خبر میسازد (چیزی تو خروجی نشون نمیده).
aliabry@lp:~$ partprobe
میتونین آدرس اون دیوایسی که تغییرات داشته رو هم بدین، مثلا:
aliabry@ali:~$ partprobe -d /dev/sdg
d-
: این آپشن میگه که سیستم رو از تغییرات با خبر نکن (باز هم چیزی در خروجی نشون نمیده).
s-
: یک خلاصهای از پارتیشنبندی سیستم شما نشون میده.
alieblice@ali:~$ sudo partprobe -s /dev/sda: msdos partitions 1 2 <5> /dev/sdf: msdos partitions 1 2 <5 6 7> 3 4 /dev/sdg: msdos partitions 1 <5> 4 /dev/md1: msdos partitions 1 2
توضیح dev/sdf/
قسمتهایی که داخل <>
هستن نشوندهنده پارتیشنهای logical هستش (۵، ۶ و ۷) و اولین عددی که قبل از >
میاد نشاندهنده شماره پارتیشن extended هستش (۲) و دیگر عددها پارتیشنهای primary هستش (۱، ۳ و ۴).
به این شکل هم میشه استفاده کرد:
aliabry@ali:~$ sudo partprobe -s /dev/sdg /dev/sdg: msdos partitions 1 <5> 4
h-
: خلاصهای از آپشنها رو نشون میدهد.
v-
: ورژن برنامه رو نشون میده.