quick C program to re-read a partition table on Linux:
#include <stdio.h> #include <sys/ioctl.h> #include <linux/fs.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> int main (int argc, char **argv) { int fd= open("/dev/hda",O_RDWR); ioctl (fd, BLKRRPART); ioctl (fd, BLKFLSBUF); close(fd); }