Принудительное перечитывание таблицы разделов: разница между BLKRRPART и BLKPG ioctl? (Linux)

8

Когда я хочу, чтобы Linux рассматривал вновь созданные разделы без перезагрузки, у меня есть несколько доступных инструментов для принудительного обновления «кэша разделов» ядра:

  • partx -va /dev/sdX
  • kpartx -va /dev/sdX
  • hdparm -z /dev/sdX
  • sfdisk -R /dev/sdX
  • ...

Я не уверен в разнице между этими методами, но я думаю, что они не используют то же самое ioctl, как BLKRRPARTили BLKPG. Итак, в чем разница между ними ioctl?

Totor
источник
Наверное, нет вообще. kpartxявляется производным от partx, sfdiskявляется другой раздел редактирования инструмента. hdparmпредназначен для других целей, но также может читать таблицу разделов в ядре. Если вам действительно нужно знать, тогда посмотрите на исходный код.
Ctrl-Alt-Delor

Ответы:

5

BLKRRPART говорит ядру перечитать таблицу разделов. man 4 sd

С BLKPGего помощью вы можете создавать, добавлять, удалять разделы по своему усмотрению (из ядра, а не на диске, конечно). Вы должны сообщить ядру смещение и размер отдельного раздела, что означает, что вы должны были предварительно проанализировать таблицу разделов самостоятельно. Смотрите ядро Linux:/include/uapi/linux/blkpg.h

Я лично использую partprobe(часть parted) , который использует последний подход, вероятно, для поддержки таблиц разделов, не поддерживаемых ядром.

Rondom
источник