diff options
author | Pascal Rigaux <pixel@mandriva.com> | 2000-07-11 20:24:21 +0000 |
---|---|---|
committer | Pascal Rigaux <pixel@mandriva.com> | 2000-07-11 20:24:21 +0000 |
commit | 64e3af6a229bbadbee8b64ede2f8bf7f44bd5c05 (patch) | |
tree | 312f11c979a9a0e7119c3f1ff98cfc4a5149ce5a /rescue/kernel_read_part.c | |
parent | b54d78676ac459c8fb94bc6b43caa29d5764e9bd (diff) | |
download | drakx-64e3af6a229bbadbee8b64ede2f8bf7f44bd5c05.tar drakx-64e3af6a229bbadbee8b64ede2f8bf7f44bd5c05.tar.gz drakx-64e3af6a229bbadbee8b64ede2f8bf7f44bd5c05.tar.bz2 drakx-64e3af6a229bbadbee8b64ede2f8bf7f44bd5c05.tar.xz drakx-64e3af6a229bbadbee8b64ede2f8bf7f44bd5c05.zip |
no_comment
Diffstat (limited to 'rescue/kernel_read_part.c')
-rw-r--r-- | rescue/kernel_read_part.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/rescue/kernel_read_part.c b/rescue/kernel_read_part.c new file mode 100644 index 000000000..4b9d16d65 --- /dev/null +++ b/rescue/kernel_read_part.c @@ -0,0 +1,39 @@ +#include <unistd.h> +#include <stdlib.h> +#include <stdio.h> +#include <sys/types.h> +#include <sys/ioctl.h> +#include <sys/stat.h> +#include <sys/wait.h> +#include <sys/mount.h> +#include <fcntl.h> + + +void die(char *msg) +{ + perror(msg); + exit(1); +} + +void kernel_read(char *dev) +{ + int fd; + + sync(); + if ((fd = open(dev, O_RDONLY)) == -1) die("can't open device"); + sync(); + sleep(1); + ioctl(fd, BLKRRPART, 0); + sync(); + close(fd); + sync(); +} + +int main(int argc, char **argv) +{ + if (argc != 2) { + fprintf(stderr, "usage: kernel_read_part <hard drive device>\n"); + exit(1); + } + kernel_read(argv[1]); +} |