Releitura forçada da tabela de partição: diferença entre BLKRRPART e BLKPG ioctl? (Linux)

8

Quando quero que o Linux considere as partições recém-criadas sem reiniciar, tenho várias ferramentas disponíveis para forçar uma atualização do "cache de partição" do kernel:

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

Não tenho certeza da diferença entre essas técnicas, mas acho que elas não usam a mesma coisa ioctl, como BLKRRPARTou BLKPG. Então, qual é a diferença entre eles ioctl?

Totor
fonte
Provavelmente nenhum. kpartxé derivado de partx, sfdiské outra ferramenta de edição de partição. hdparmé para outros usos, mas também tem uma maneira de ler a tabela de partição no kernel. Se você realmente precisa saber, consulte o código-fonte.
Ctrl-alt-delor

Respostas:

5

BLKRRPART diz ao kernel para reler a tabela de partição. man 4 sd

Com BLKPGvocê pode criar, adicionar, excluir partições como desejar (a partir do kernel, não no disco, é claro). Você precisa informar ao kernel o deslocamento e o tamanho da partição individual, o que implica que você deve ter analisado a tabela de partições anteriormente. Veja o kernel do Linux:/include/uapi/linux/blkpg.h

Eu pessoalmente uso partprobe(parte de parted) , que usa a última abordagem, provavelmente para suportar tabelas de partição não suportadas pelo kernel.

Rondom
fonte