Partprobe nasıl çalışır?


12

Bir sürücüdeki bölümler hakkında bilgi edinmek için çekirdeğimin (CentOS 5.5'te 2.6.18-194-el5) scsi veri yolunu (veya bu konudaki herhangi bir veri yolunu) yenilemenin bir yolunu arıyordum ve yapamadım bir yol bulamıyorum. partprobe anında yaptı. Nasıl?

Önemli olduğu için yaptığım şey şuydu:

Yeniden boyutlandırma, MBR'yi yedekleme ve geri yükleme gibi bölümlere özgü şeylerde biraz pratik yapmak istedim. MBR'yi yedekleyen / dev / sdb üzerinde 20GB'lık bir bölüm oluşturmuştum:

gg = = dev / sdb / sdb.mbr bs = 512 sayım = 1

sonra fdisk'e girdim, bölümü sildim, yazdım ve çıktım.

ls / dev / sdb *

bölüm olmadığını gösterdi ve

fdisk -l / dev / sdb '

Ben de iyi olduğumu düşündüm.

Sonra dd ters:

gg if = sdb.mbr / = / dev / sdb bs = 512 sayım = 1

Elbette, bu noktada hiçbir şey yapmadım, yani

ls / dev / sdb *

herhangi bir bölüm listelemedi, ancak

fdisk -l

diskteki ilk 512 baytı okuduğu ve çekirdeğe bağlı olmadığı için bölümü gösterdi. Otobüsü yenilemek zorunda olduğumu biliyordum, bu yüzden / sys / class / scsi_host / host1 içine girdim ve

echo "- - -"> tara

ve yapıyor

ls / dev / sdb

yeni bir şey göstermedim, o zaman / sys / bus / scsi / cihazlarına gittim ve listelenen cihazların her biri için

yankı 1> yeniden tarama

ve bu işe yaramadı.

Daha sonra sorun hakkında daha fazla araştırma yaptım ve ayrıldığımız 'partprobe' ile karşılaştım. Ben koştum ve anında çalıştı.

Burada olası bir cevap alamazsam, muhtemelen sadece kaynağı alıp bakacağım, ama burada arkamda sihirbazlar olduğunu anlıyorum, bu yüzden hepinize itiraz edeceğimi düşündüm.

Yanıtlar:


12

Partprobe , çekirdek kaynağında (et içeride) BLKRRPARTbelgelenmiş, err include/linux/fs.hve ötesinde ioctl'i çağırır rescan_partitions():

#define BLKRRPART  _IO(0x12,95) /* re-read partition table */

Bunu bulmanın en kolay yolu koşmaktır strace -e raw=ioctl -e open,ioctl partprobe /dev/sdb.

Bence /sys/*/*scandenedikleriniz çekirdeğe bir sürücü değişikliği olup olmadığını kontrol etmesini söyler. Sürücü değişmemişse (veya çekirdeğin algılamayacağı bir şekilde değiştirilmişse?), Ancak üzerindeki bölüm yapısı değiştiyse bu yardımcı olmaz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.