Я искал способ обновить шину scsi (или любую другую, в этом отношении, шину), которая позволила бы моему ядру (2.6.18-194-el5 на CentOS 5.5) узнать о разделах на диске, и я не мог не найти способ. partprobe сделал это мгновенно. Как?
Поскольку это важно, вот что я делал:
Я хотел немного попрактиковаться в таких вещах, как изменение размера, резервное копирование MBR и его восстановление и так далее. Я создал раздел на 20 ГБ в / dev / sdb, сделал резервную копию MBR:
дд если = / dev / sdb из = sdb.mbr bs = 512 кол = 1
затем я вошел в fdisk, удалил раздел, написал его и вышел.
ls / dev / sdb *
показал, что не было раздела, и
fdisk -l / dev / sdb '
совпал, так что я решил, что я был хорош.
Затем я перевернул дд:
dd if = sdb.mbr из = / dev / sdb bs = 512 count = 1
Конечно, я ничего не делал в тот момент, поэтому
ls / dev / sdb *
не перечислил никаких разделов, но
fdisk -l
показал раздел, предположительно потому, что он читает первые 512 байт на диске и не полагается на ядро. Я знал, что мне нужно обновить шину, поэтому я вошел в / sys / class / scsi_host / host1 и сделал
echo "- - -"> scan
и делать
ls / dev / sdb
ничего нового не показывалось, поэтому я зашел в / sys / bus / scsi / devices и для каждого из перечисленных устройств сделал
эхо 1> повторное сканирование
и это не сработало.
Затем я провел больше исследований по этой проблеме и наткнулся на «partprobe», который идет с parted. Я запустил его, и он заработал мгновенно.
Если я не получу вероятного ответа здесь, я, вероятно, просто пойду за источником и посмотрю его, но я полагаю, что за мной есть волшебники, поэтому я решил обратиться ко всем вам.