2 * Copyright (C) 2009 Karel Zak <kzak@redhat.com>
4 * This file may be redistributed under the terms of the
5 * GNU Lesser General Public License.
10 #include <sys/types.h>
18 int main(int argc
, char *argv
[])
24 blkid_parttable root_tab
;
27 fprintf(stderr
, "usage: %s <device|file> "
28 "-- prints partitions\n",
29 program_invocation_short_name
);
34 pr
= blkid_new_probe_from_filename(devname
);
36 err(EXIT_FAILURE
, "%s: faild to create a new libblkid probe",
38 /* Binary interface */
39 ls
= blkid_probe_get_partitions(pr
);
41 errx(EXIT_FAILURE
, "%s: failed to read partitions\n", devname
);
44 * Print info about the primary (root) partition table
46 root_tab
= blkid_partlist_get_table(ls
);
48 errx(EXIT_FAILURE
, "%s: does not contains any "
49 "known partition table\n", devname
);
51 printf("size: %jd, sector size: %u, PT: %s, offset: %jd, id=%s\n---\n",
52 blkid_probe_get_size(pr
),
53 blkid_probe_get_sectorsize(pr
),
54 blkid_parttable_get_type(root_tab
),
55 blkid_parttable_get_offset(root_tab
),
56 blkid_parttable_get_id(root_tab
));
61 nparts
= blkid_partlist_numof_partitions(ls
);
65 for (i
= 0; i
< nparts
; i
++) {
67 blkid_partition par
= blkid_partlist_get_partition(ls
, i
);
68 blkid_parttable tab
= blkid_partition_get_table(par
);
70 printf("#%d: %10llu %10llu 0x%x",
71 blkid_partition_get_partno(par
),
72 (unsigned long long) blkid_partition_get_start(par
),
73 (unsigned long long) blkid_partition_get_size(par
),
74 blkid_partition_get_type(par
));
77 /* subpartition (BSD, Minix, ...) */
78 printf(" (%s)", blkid_parttable_get_type(tab
));
80 p
= blkid_partition_get_name(par
);
82 printf(" name='%s'", p
);
83 p
= blkid_partition_get_uuid(par
);
85 printf(" uuid='%s'", p
);
86 p
= blkid_partition_get_type_string(par
);
88 printf(" type='%s'", p
);