Ich suchte nach einer Möglichkeit, den SCSI-Bus (oder jeden anderen Bus) zu aktualisieren, damit mein Kernel (2.6.18-194-el5 unter CentOS 5.5) über die Partitionen auf einem Laufwerk Bescheid weiß, und ich konnte nicht finde keinen Weg. partprobe hat es sofort geschafft. Wie?
Da es wichtig ist, habe ich Folgendes getan:
Ich wollte etwas Übung in partitionsspezifischen Dingen wie Größenänderung, Sicherung und Wiederherstellung des MBR und so weiter. Ich hatte eine 20 GB Partition auf / dev / sdb erstellt und den MBR gesichert:
dd if = / dev / sdb von = sdb.mbr bs = 512 count = 1
Dann ging ich zu fdisk, löschte die Partition, schrieb sie und verließ sie.
ls / dev / sdb *
zeigte, dass es keine Partition gab, und
fdisk -l / dev / sdb '
abgestimmt, also dachte ich, ich sei gut.
Ich habe dann die dd umgekehrt:
dd if = sdb.mbr von = / dev / sdb bs = 512 count = 1
Natürlich habe ich zu diesem Zeitpunkt nichts getan
ls / dev / sdb *
hat keine Partitionen aufgelistet, aber
fdisk -l
hat die Partition angezeigt, vermutlich, weil sie die ersten 512 Bytes auf der Festplatte liest und nicht auf den Kernel angewiesen ist. Ich wusste, dass ich den Bus auffrischen musste, also ging ich in / sys / class / scsi_host / host1 und tat es
Echo "- - -"> Scan
und zu tun
ls / dev / sdb
habe nichts Neues angezeigt, also bin ich zu / sys / bus / scsi / devices gegangen und habe dies für jedes der aufgelisteten Geräte getan
echo 1> rescan
und das hat nicht funktioniert.
Ich habe dann mehr über das Problem geforscht und bin auf partprobe gestoßen, das mit parted geliefert wird. Ich habe es ausgeführt und es hat sofort funktioniert.
Wenn ich hier keine wahrscheinliche Antwort bekomme, gehe ich wahrscheinlich einfach zur Quelle und schaue nach, aber ich schätze, es gibt Zauberer hier außerhalb von mir, also dachte ich, ich würde Sie alle ansprechen.