Fix geometry (ESP overlapped secondary GPT)

This commit is contained in:
Filip Stedronsky 2021-10-16 22:49:56 +02:00
parent 37f90009be
commit 9c45629ec2

View File

@ -97,7 +97,9 @@ def create_partitions(dev, *, efi=False):
device = parted.Device(str(dev)) device = parted.Device(str(dev))
if efi: if efi:
ptype = 'gpt' ptype = 'gpt'
extra_space = esp_sec = parted.sizeToSectors(ESP_SIZE, "MiB", device.sectorSize) esp_sec = parted.sizeToSectors(ESP_SIZE, "MiB", device.sectorSize)
end_pad = parted.sizeToSectors(1, "MiB", device.sectorSize) # leave space for secondary part table at the end
extra_space = esp_sec + end_pad
else: else:
ptype = 'msdos' ptype = 'msdos'
extra_space = 0 extra_space = 0
@ -117,7 +119,7 @@ def create_partitions(dev, *, efi=False):
partition.setFlag(parted.PARTITION_BOOT) partition.setFlag(parted.PARTITION_BOOT)
if efi: # create ESP if efi: # create ESP
geometry = parted.Geometry(device=device, start=device.getLength() - esp_sec, geometry = parted.Geometry(device=device, start=device.getLength() - esp_sec - end_pad,
length=esp_sec) length=esp_sec)
filesystem = parted.FileSystem(type='fat32', geometry=geometry) filesystem = parted.FileSystem(type='fat32', geometry=geometry)
partition = parted.Partition(disk=disk, type=parted.PARTITION_NORMAL, partition = parted.Partition(disk=disk, type=parted.PARTITION_NORMAL,
@ -155,6 +157,7 @@ def copy_boot_files(dir):
shutil.copy(Path(__file__).parent / 'BCD', ci_lookup(boot_dir, 'BCD', creating=True)) shutil.copy(Path(__file__).parent / 'BCD', ci_lookup(boot_dir, 'BCD', creating=True))
def setup_part(part, wim, image_name, *, unattend=None, postproc=None, postproc_only=False): def setup_part(part, wim, image_name, *, unattend=None, postproc=None, postproc_only=False):
if not postproc_only: if not postproc_only:
format_part(part) format_part(part)