Please consider the following patch to solve the issue. >From b86d53346776859b80e3709be7519d02cdd81936 Mon Sep 17 00:00:00 2001 From: Matthias Gehre <m.ge...@gmx.de> Date: Wed, 5 Sep 2012 21:04:40 +0200 Subject: [PATCH] libparted: fix ped_partition_get_path on loop disk labels
--- libparted/arch/linux.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c index e2c4139..9bd1acc 100644 --- a/libparted/arch/linux.c +++ b/libparted/arch/linux.c @@ -2231,6 +2231,12 @@ _device_get_part_path (PedDevice *dev, int num) size_t path_len = strlen (dev->path); char *result; + PedDisk* disk = ped_disk_new(dev); + + if( disk && !strcmp(disk->type->name, "loop") ) { + /* partition on loop disk label _is_ the device */ + result = strdup(dev->path); + } else /* Check for devfs-style /disc => /partN transformation unconditionally; the system might be using udev with devfs rules, and if not the test is harmless. */ @@ -2247,6 +2253,9 @@ _device_get_part_path (PedDevice *dev, int num) result = zasprintf ("%s%s%d", dev->path, p, num); } + if(disk) + ped_disk_destroy(disk); + return result; } -- 1.7.9.5