partprobe - باخبرسازی سیستم‌عامل از تغییرات در جدول پارتیشن‌ها

اگر با دستوراتی مثل 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-: ورژن برنامه رو نشون میده.