filesystem: add alignment data
This commit is contained in:
parent
a17bd659e2
commit
d0ccc98aad
|
@ -576,6 +576,10 @@ class Disk(_Device):
|
||||||
|
|
||||||
_info = attr.ib(default=None)
|
_info = attr.ib(default=None)
|
||||||
|
|
||||||
|
def alignment_data(self):
|
||||||
|
ptable = self.ptable_for_new_partition()
|
||||||
|
return self._m._partition_alignment_data[ptable]
|
||||||
|
|
||||||
def info_for_display(self):
|
def info_for_display(self):
|
||||||
bus = self._info.raw.get('ID_BUS', None)
|
bus = self._info.raw.get('ID_BUS', None)
|
||||||
major = self._info.raw.get('MAJOR', None)
|
major = self._info.raw.get('MAJOR', None)
|
||||||
|
@ -928,12 +932,44 @@ def align_down(size, block_size=1 << 20):
|
||||||
return size & ~(block_size - 1)
|
return size & ~(block_size - 1)
|
||||||
|
|
||||||
|
|
||||||
|
@attr.s(auto_attribs=True)
|
||||||
|
class PartitionAlignmentData:
|
||||||
|
part_align: int
|
||||||
|
min_gap_size: int
|
||||||
|
min_start_offset: int
|
||||||
|
min_end_offset: int
|
||||||
|
primary_part_limit: int
|
||||||
|
ebr_space: int = 0
|
||||||
|
|
||||||
|
|
||||||
class FilesystemModel(object):
|
class FilesystemModel(object):
|
||||||
|
|
||||||
lower_size_limit = 128 * (1 << 20)
|
|
||||||
|
|
||||||
target = None
|
target = None
|
||||||
|
|
||||||
|
_partition_alignment_data = {
|
||||||
|
'gpt': PartitionAlignmentData(
|
||||||
|
part_align=MiB,
|
||||||
|
min_gap_size=MiB,
|
||||||
|
min_start_offset=GPT_OVERHEAD//2,
|
||||||
|
min_end_offset=GPT_OVERHEAD//2,
|
||||||
|
primary_part_limit=128),
|
||||||
|
'msdos': PartitionAlignmentData(
|
||||||
|
part_align=MiB,
|
||||||
|
min_gap_size=MiB,
|
||||||
|
min_start_offset=GPT_OVERHEAD//2,
|
||||||
|
min_end_offset=0,
|
||||||
|
ebr_space=MiB,
|
||||||
|
primary_part_limit=4),
|
||||||
|
# XXX check this one!!
|
||||||
|
'vtoc': PartitionAlignmentData(
|
||||||
|
part_align=MiB,
|
||||||
|
min_gap_size=MiB,
|
||||||
|
min_start_offset=GPT_OVERHEAD//2,
|
||||||
|
min_end_offset=0,
|
||||||
|
ebr_space=MiB,
|
||||||
|
primary_part_limit=3),
|
||||||
|
}
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def is_mounted_filesystem(self, fstype):
|
def is_mounted_filesystem(self, fstype):
|
||||||
if fstype in [None, 'swap']:
|
if fstype in [None, 'swap']:
|
||||||
|
|
Loading…
Reference in New Issue