Когда я хочу, чтобы Linux рассматривал вновь созданные разделы без перезагрузки, у меня есть несколько доступных инструментов для принудительного обновления «кэша разделов» ядра:
partx -va /dev/sdX
kpartx -va /dev/sdX
hdparm -z /dev/sdX
sfdisk -R /dev/sdX
- ...
Я не уверен в разнице между этими методами, но я думаю, что они не используют то же самое ioctl
, как BLKRRPART
или BLKPG
. Итак, в чем разница между ними ioctl
?
kpartx
является производным отpartx
,sfdisk
является другой раздел редактирования инструмента.hdparm
предназначен для других целей, но также может читать таблицу разделов в ядре. Если вам действительно нужно знать, тогда посмотрите на исходный код.Ответы:
BLKRRPART
говорит ядру перечитать таблицу разделов.man 4 sd
С
BLKPG
его помощью вы можете создавать, добавлять, удалять разделы по своему усмотрению (из ядра, а не на диске, конечно). Вы должны сообщить ядру смещение и размер отдельного раздела, что означает, что вы должны были предварительно проанализировать таблицу разделов самостоятельно. Смотрите ядро Linux:/include/uapi/linux/blkpg.h
Я лично использую
partprobe
(часть parted) , который использует последний подход, вероятно, для поддержки таблиц разделов, не поддерживаемых ядром.источник