小编Mat*_*ons的帖子

partprobe 是如何工作的?

我一直在寻找一种方法来刷新 scsi 总线(或任何其他总线,就此而言),这将允许我的内核(CentOS 5.5 上的 2.6.18-194-el5)了解驱动器上的分区,我不能没有办法。partprobe 立即做到了。如何?

由于这很重要,这就是我正在做的事情:

我想在特定于分区的事情上得到一些练习,比如调整大小、备份 MBR 和恢复它,等等。我在 /dev/sdb 上创建了一个 20GB 的分区,备份了 MBR:

dd if=/dev/sdb of=sdb.mbr bs=512 count=1

然后我进入fdisk,删除分区,写入,然后退出。

ls /dev/sdb*

显示没有分区,并且

fdisk -l /dev/sdb'

匹配,所以我认为我很好。

然后我颠倒了dd:

dd if=sdb.mbr of=/dev/sdb bs=512 count=1

当然,当时我什么也没做,所以

ls /dev/sdb*

没有列出任何分区,但是

fdisk -l

显示分区,大概是因为它读取磁盘上的前 512 个字节并且不依赖于内核。我知道我必须刷新总线,所以我进入/sys/class/scsi_host/host1,然后做了

回声“- - -” > 扫描

和做

ls /dev/sdb

没有显示任何新内容,所以我去了 /sys/bus/scsi/devices 并且对于列出的每个设备,我都做了

回声 1 > 重新扫描

那没有用。

然后我对该问题进行了更多研究,并遇到了parted 附带的'partprobe'。我运行了它,它立即生效。

如果我在这里没有得到可能的答案,我可能会去获取源代码并查找它,但我认为这里有超出我的巫师,所以我想我会吸引你们所有人。

partition fdisk parted

12
推荐指数
1
解决办法
9361
查看次数

标签 统计

fdisk ×1

parted ×1

partition ×1