Stavo cercando un modo per aggiornare il bus scsi (o qualsiasi altro bus, per quella materia) che avrebbe permesso al mio kernel (2.6.18-194-el5 su CentOS 5.5) di conoscere le partizioni su un disco, e non potevo trovare un modo. partprobe l'ha fatto all'istante. Come?
Dal momento che è importante, ecco cosa stavo facendo:
Volevo esercitarmi in cose specifiche della partizione come il ridimensionamento, il backup dell'MBR e il ripristino, e così via. Avevo creato una partizione da 20 GB su / dev / sdb, con il backup dell'MBR:
dd if = / dev / sdb of = sdb.mbr bs = 512 count = 1
poi sono entrato in fdisk, ho cancellato la partizione, l'ho scritto e sono uscito.
ls / dev / sdb *
ha mostrato che non c'era partizione e
fdisk -l / dev / sdb '
abbinato, quindi ho pensato di essere bravo.
Ho quindi invertito il dd:
dd if = sdb.mbr di = / dev / sdb bs = 512 count = 1
Certo, a quel punto non ho fatto nulla
ls / dev / sdb *
non ha elencato alcuna partizione, ma
fdisk -l
ha mostrato la partizione, presumibilmente perché legge i primi 512 byte sul disco e non si basa sul kernel. Sapevo che avrei dovuto aggiornare il bus, quindi sono entrato in / sys / class / scsi_host / host1 e l'ho fatto
echo "- - -"> scan
e facendo
ls / dev / sdb
non ho mostrato nulla di nuovo, quindi sono passato a / sys / bus / scsi / devices e per ciascuno dei dispositivi elencati ho fatto
echo 1> rescan
e quello non ha funzionato.
Ho quindi fatto ulteriori ricerche sul problema e mi sono imbattuto in "partprobe", che viene fornito con parted. L'ho eseguito e ha funzionato all'istante.
Se non avrò una probabile risposta qui, probabilmente andrò semplicemente a cercare la fonte e a cercarla, ma immagino che ci siano maghi qui oltre a me, quindi ho pensato di fare appello a tutti voi.