Added option to skip autodetection of filesystem. This is so for instance luks2() can override any auto-detection that revers back to the parent device of the mapped device, which would be crypto_LUKS instead of None for the inner partition.
This commit is contained in:
parent
585e0f4b86
commit
8f42a9f4ff
|
|
@ -130,7 +130,7 @@ class BlockDevice():
|
||||||
return False
|
return False
|
||||||
|
|
||||||
class Partition():
|
class Partition():
|
||||||
def __init__(self, path, part_id=None, size=-1, filesystem=None, mountpoint=None, encrypted=False):
|
def __init__(self, path, part_id=None, size=-1, filesystem=None, mountpoint=None, encrypted=False, autodetect_filesystem=True):
|
||||||
if not part_id:
|
if not part_id:
|
||||||
part_id = os.path.basename(path)
|
part_id = os.path.basename(path)
|
||||||
self.path = path
|
self.path = path
|
||||||
|
|
@ -152,8 +152,10 @@ class Partition():
|
||||||
|
|
||||||
if (target := mount_information.get('target', None)):
|
if (target := mount_information.get('target', None)):
|
||||||
self.mountpoint = target
|
self.mountpoint = target
|
||||||
if not self.filesystem and (fstype := mount_information.get('fstype', get_filesystem_type(self.real_device))):
|
|
||||||
self.filesystem = fstype
|
if not self.filesystem and autodetect_filesystem:
|
||||||
|
if (fstype := mount_information.get('fstype', get_filesystem_type(self.real_device))):
|
||||||
|
self.filesystem = fstype
|
||||||
|
|
||||||
if self.filesystem == 'crypto_LUKS':
|
if self.filesystem == 'crypto_LUKS':
|
||||||
self.encrypted = True
|
self.encrypted = True
|
||||||
|
|
|
||||||
|
|
@ -83,10 +83,7 @@ class luks2():
|
||||||
os.path.basename(mountpoint) # TODO: Raise exception instead?
|
os.path.basename(mountpoint) # TODO: Raise exception instead?
|
||||||
sys_command(f'/usr/bin/cryptsetup open {partition.path} {mountpoint} --key-file {os.path.abspath(key_file)} --type luks2')
|
sys_command(f'/usr/bin/cryptsetup open {partition.path} {mountpoint} --key-file {os.path.abspath(key_file)} --type luks2')
|
||||||
if os.path.islink(f'/dev/mapper/{mountpoint}'):
|
if os.path.islink(f'/dev/mapper/{mountpoint}'):
|
||||||
self.mapdev = f'/dev/mapper/{mountpoint}'
|
return Partition(self.mapdev, encrypted=True, filesystem=get_filesystem_type(self.mapdev), autodetect_filesystem=False)
|
||||||
inner_fs = get_filesystem_type(self.mapdev)
|
|
||||||
print('Inner FS:', inner_fs)
|
|
||||||
return Partition(self.mapdev, encrypted=True, filesystem=inner_fs)
|
|
||||||
|
|
||||||
def close(self, mountpoint=None):
|
def close(self, mountpoint=None):
|
||||||
if not mountpoint:
|
if not mountpoint:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue