ioctl(3, BLKRRPART) = -1 EINVAL (Invalid argument)
De fato, se a mensagem estava correta, o código de erro deve mostrar EBUSY
não EINVAL
.
Você tem um "argumento inválido" porque passou /dev/mmcblk0p1
. Esta é uma partição. sfdisk
edita a tabela que lista todas as partições. Você precisa passar todo o dispositivo, ou seja,
# sfdisk /dev/mmcblk0