Index: parted-1.9.0/libparted/arch/linux.c =================================================================== --- parted-1.9.0.orig/libparted/arch/linux.c 2010-01-25 16:24:54.000000000 +0100 +++ parted-1.9.0/libparted/arch/linux.c 2010-01-25 16:26:35.000000000 +0100 @@ -2360,8 +2360,17 @@ _disk_sync_part_table (PedDisk* disk) int i; for (i = 1; i <= lpn; i++) { + /* try to BLKPG_REMOVE the partition + * retry once more after short sleep if EBUSY + */ rets[i - 1] = _blkpg_remove_partition (disk, i); errnums[i - 1] = errno; + + if ( !rets[i - 1] && errnums[i - 1] == EBUSY ) { + sleep(1); + rets[i - 1] = _blkpg_remove_partition (disk, i); + errnums[i - 1] = errno; + } } for (i = 1; i <= lpn; i++) {