diff --git a/base/fs/partitionmaps/gpt.py b/base/fs/partitionmaps/gpt.py index a798cb4..2502288 100644 --- a/base/fs/partitionmaps/gpt.py +++ b/base/fs/partitionmaps/gpt.py @@ -18,6 +18,7 @@ class GPTPartitionMap(AbstractPartitionMap): if bootloader == 'grub': from ..partitions.unformatted import UnformattedPartition self.grub_boot = UnformattedPartition(Bytes('1007KiB'), last_partition()) + self.grub_boot.offset = gpt_offset self.grub_boot.flags.append('bios_grub') self.partitions.append(self.grub_boot) @@ -28,15 +29,16 @@ class GPTPartitionMap(AbstractPartitionMap): if 'swap' in data: self.swap = GPTSwapPartition(Bytes(data['swap']['size']), last_partition()) self.partitions.append(self.swap) - self.root = GPTPartition(Bytes(data['root']['size']), data['root']['filesystem'], 'root', last_partition()) + self.root = GPTPartition(Bytes(data['root']['size']), data['root']['filesystem'], + 'root', last_partition()) self.partitions.append(self.root) if hasattr(self, 'grub_boot'): + self.partitions[1].size -= gpt_offset self.partitions[1].size -= self.grub_boot.size - - # Offset for GPT partitioning table - self.partitions[0].offset = gpt_offset - self.partitions[0].size -= self.partitions[0].offset + else: + self.partitions[0].offset = gpt_offset + self.partitions[0].size -= gpt_offset super(GPTPartitionMap, self).__init__(bootloader)