------- Comment on attachment From <email address hidden> 2015-07-13 14:13 EDT-------
strace -e open fdisk -l
strace -e open fdisk -l /dev/mapper/mpath0
Both commands gives same results (reading only /dev/sdx and /dev/hdx) and in unable to read multipath disk. And looking at code it seems it is meant to be so.
-----------------------
void try(char *device)
{
disk_device = device;
if (!setjmp(listingbuf)) {
if ((fd = open(disk_device, type_open)) >= 0) { close(fd); get_boot(); list_table(); if (partitions > 4) delete_partition(ext_index);
} else { /* Ignore other errors, since we try IDE and SCSI hard disks which may not be installed on the system. */ if(errno == EACCES) { fprintf(stderr, "Cannot open %s\n", device); exit(1);
}
}
}
}
void main(int argc, char **argv)
{
if (argc > 3) fatal(usage);
if (argc > 1 && *argv[1] == '-') { switch (*(argv[1] + 1)) { case 'v': printf("fdisk v" VERSION "\n"); exit(0); case 'l': listing = 1; type_open = O_RDONLY; try("/dev/hda"); try("/dev/hdb"); try("/dev/hdc"); try("/dev/hdd"); try("/dev/sda"); try("/dev/sdb"); try("/dev/sdc"); try("/dev/sdd"); try("/dev/sde"); try("/dev/sdf"); try("/dev/sdg"); try("/dev/sdh"); exit(0); case 's': {
------- Comment on attachment From <email address hidden> 2015-07-13 14:13 EDT-------
strace -e open fdisk -l
strace -e open fdisk -l /dev/mapper/mpath0
Both commands gives same results (reading only /dev/sdx and /dev/hdx) and in unable to read multipath disk. And looking at code it seems it is meant to be so.
root@dilllp1:/# ll /dev/mapper/
total 0
drwxr-xr-x 2 root root 400 Jul 12 21:03 ./
drwxr-xr-x 13 root root 6400 Jul 12 21:03 ../
crw------- 1 root root 10, 236 Jul 12 20:46 control
lrwxrwxrwx 1 root root 7 Jul 13 08:41 mpath0 -> ../dm-0
brw------- 1 root root 252, 6 Jul 12 20:46 mpath0-part1
brw------- 1 root root 252, 7 Jul 12 20:46 mpath0-part2
brw------- 1 root root 252, 8 Jul 12 20:46 mpath0-part3
lrwxrwxrwx 1 root root 7 Jul 12 20:47 mpath1 -> ../dm-1
brw------- 1 root root 252, 9 Jul 12 20:46 mpath1-part1
brw------- 1 root root 252, 11 Jul 12 20:46 mpath1-part2
lrwxrwxrwx 1 root root 7 Jul 12 20:54 mpath2 -> ../dm-2
brw-rw---- 1 root disk 252, 16 Jul 12 20:47 mpath2-part1
brw-rw---- 1 root disk 252, 17 Jul 12 20:47 mpath2-part2
lrwxrwxrwx 1 root root 7 Jul 12 21:03 mpath3 -> ../dm-3
brw-rw---- 1 root disk 252, 13 Jul 12 21:03 mpath3p1
brw-rw---- 1 root disk 252, 14 Jul 12 21:03 mpath3-part1
lrwxrwxrwx 1 root root 7 Jul 12 20:52 mpath4 -> ../dm-4
lrwxrwxrwx 1 root root 7 Jul 12 20:47 mpath5 -> ../dm-5
lrwxrwxrwx 1 root root 8 Jul 12 20:47 mpath6 -> ../dm-10
lrwxrwxrwx 1 root root 8 Jul 12 21:03 mpath7 -> ../dm-12
root@dilllp1:/#
root@dilllp1:/#
root@dilllp1:/# ls -l /dev/dm-0
brw-rw---- 1 root disk 252, 0 Jul 13 08:41 /dev/dm-0
root@dilllp1:/#
Looking at code : fdisk.c
------- ------- ------- -- listingbuf) ) {
close( fd);
get_ boot();
list_ table() ;
if (partitions > 4)
delete_ partition( ext_index) ;
/* Ignore other errors, since we try IDE
and SCSI hard disks which may not be
installed on the system. */
if(errno == EACCES) {
fprintf( stderr, "Cannot open %s\n", device);
exit( 1);
void try(char *device)
{
disk_device = device;
if (!setjmp(
if ((fd = open(disk_device, type_open)) >= 0) {
} else {
}
}
}
}
void main(int argc, char **argv)
fatal( usage);
switch (*(argv[1] + 1)) {
case 'v':
printf( "fdisk v" VERSION "\n");
exit( 0);
case 'l':
listing = 1;
type_ open = O_RDONLY;
try( "/dev/hda" );
try( "/dev/hdb" );
try( "/dev/hdc" );
try( "/dev/hdd" );
try( "/dev/sda" );
try( "/dev/sdb" );
try( "/dev/sdc" );
try( "/dev/sdd" );
try( "/dev/sde" );
try( "/dev/sdf" );
try( "/dev/sdg" );
try( "/dev/sdh" );
exit( 0);
case 's': {
{
if (argc > 3)
if (argc > 1 && *argv[1] == '-') {
------- ------- ------- ------- ------- ------- ------- ------- ----