From 81a4ec78eb27b74f9266d017bff3d50073de8486 Mon Sep 17 00:00:00 2001 From: Anders Ingemann Date: Sat, 18 Jan 2014 23:31:40 +0100 Subject: [PATCH] Post-MBR size increased to 2. Also, move the size addition into the volume model --- base/fs/partitionmaps/msdos.py | 3 --- base/fs/partitions/msdos.py | 2 +- base/fs/volume.py | 3 +++ manifests/ec2-ebs-partitioned.manifest.json | 2 +- manifests/virtualbox-vagrant.manifest.json | 2 +- manifests/virtualbox.manifest.json | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/base/fs/partitionmaps/msdos.py b/base/fs/partitionmaps/msdos.py index 3416447..1ddc2f9 100644 --- a/base/fs/partitionmaps/msdos.py +++ b/base/fs/partitionmaps/msdos.py @@ -22,9 +22,6 @@ class MSDOSPartitionMap(AbstractPartitionMap): super(MSDOSPartitionMap, self).__init__() - def get_total_size(self): - return sum(p.size for p in self.partitions) + 1 # Post-MBR gap for embedding grub - def _before_create(self, event): volume = event.volume log_check_call(['/sbin/parted', '--script', '--align', 'none', volume.device_path, diff --git a/base/fs/partitions/msdos.py b/base/fs/partitions/msdos.py index 19dc46d..e2018a5 100644 --- a/base/fs/partitions/msdos.py +++ b/base/fs/partitions/msdos.py @@ -6,7 +6,7 @@ class MSDOSPartition(BasePartition): def get_start(self): if self.previous is None: - return 1 # Post-MBR gap for embedding grub + return 2 # Post-MBR gap for embedding grub else: return self.previous.get_start() + self.previous.size diff --git a/base/fs/volume.py b/base/fs/volume.py index cf3353b..c56a4a9 100644 --- a/base/fs/volume.py +++ b/base/fs/volume.py @@ -3,6 +3,7 @@ from common.fsm_proxy import FSMProxy from common.tools import log_check_call from exceptions import VolumeError from partitionmaps.none import NoPartitions +from partitionmaps.mbr import MSDOSPartitionMap class Volume(FSMProxy): @@ -22,6 +23,8 @@ class Volume(FSMProxy): self.real_device_path = None self.partition_map = partition_map self.size = self.partition_map.get_total_size() + if isinstance(self.partition_map, MSDOSPartitionMap): + self.size += 2 # Post-MBR gap for embedding bootloader callbacks = {'onbeforedetach': self._check_blocking} if isinstance(self.partition_map, NoPartitions): diff --git a/manifests/ec2-ebs-partitioned.manifest.json b/manifests/ec2-ebs-partitioned.manifest.json index 423f75d..2871e63 100644 --- a/manifests/ec2-ebs-partitioned.manifest.json +++ b/manifests/ec2-ebs-partitioned.manifest.json @@ -29,7 +29,7 @@ "partitions": { "type": "msdos", "root": { - "size": 1023, + "size": 1022, "filesystem": "ext4" } } diff --git a/manifests/virtualbox-vagrant.manifest.json b/manifests/virtualbox-vagrant.manifest.json index a4a7476..19cc549 100644 --- a/manifests/virtualbox-vagrant.manifest.json +++ b/manifests/virtualbox-vagrant.manifest.json @@ -26,7 +26,7 @@ "filesystem": "ext2" }, "root": { - "size": 1855, + "size": 1854, "filesystem": "ext4" }, "swap": {"size": 128} diff --git a/manifests/virtualbox.manifest.json b/manifests/virtualbox.manifest.json index 335547c..75091e1 100644 --- a/manifests/virtualbox.manifest.json +++ b/manifests/virtualbox.manifest.json @@ -26,7 +26,7 @@ "filesystem": "ext2" }, "root": { - "size": 991, + "size": 990, "filesystem": "ext4" }, "swap": {"size": 128}