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 BLKRRPART
ou BLKPG
. Então, qual é a diferença entre eles ioctl
?
kpartx
é derivado departx
,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.Respostas:
BLKRRPART
diz ao kernel para reler a tabela de partição.man 4 sd
Com
BLKPG
você 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.fonte