Today I had to implement a check to see if a disk contains a UEFI ESP partition.
Here it is, it also works on disk image files instead of devices:
def get_uefi_partition(self, disk_dev): """ Return the partition device of the UEFI ESP partition for the device in disk_dev. Returns None if disk_dev contains no UEFI ESP partition. """ import parted pdev = parted.getDevice(disk_dev) pdisk = parted.newDisk(pdev) if pdisk.type != "gpt": log.error("device %s has partition table type %s instead of gpt", disk_dev, pdisk.type) return None for part in pdisk.partitions: if part.getFlag(18): log.info("Found ESP partition in %s", part.path) return part.path log.info("No ESP partition found in %s", disk_dev) return None