Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/archinstall/lib
diff options
context:
space:
mode:
Diffstat (limited to 'archinstall/lib')
-rw-r--r--archinstall/lib/disk.py18
-rw-r--r--archinstall/lib/exceptions.py2
2 files changed, 17 insertions, 3 deletions
diff --git a/archinstall/lib/disk.py b/archinstall/lib/disk.py
index 93d24613..e23e354c 100644
--- a/archinstall/lib/disk.py
+++ b/archinstall/lib/disk.py
@@ -138,14 +138,26 @@ class Partition():
self.mountpoint = partition_info['target']
self.filesystem = partition_info['fstype']
+ # We perform a dummy format on /dev/null with the given filesystem-type
+ # in order to determain if we support it or not.
+ try:
+ self.format(self.filesystem, '/dev/null')
+ except DiskError:
+ pass # We supported it, but /dev/null is not formatable as expected
+ except UnknownFilesystemFormat as err:
+ raise err
+
def __repr__(self, *args, **kwargs):
if self.encrypted:
return f'Partition(path={self.path}, real_device={self.real_device}, fs={self.filesystem}, mounted={self.mountpoint})'
else:
return f'Partition(path={self.path}, fs={self.filesystem}, mounted={self.mountpoint})'
- def format(self, filesystem):
- log(f'Formatting {self} -> {filesystem}', level=LOG_LEVELS.Info)
+ def format(self, filesystem, path=None):
+ if not path:
+ path = self.path
+
+ log(f'Formatting {path} -> {filesystem}', level=LOG_LEVELS.Info)
if filesystem == 'btrfs':
o = b''.join(sys_command(f'/usr/bin/mkfs.btrfs -f {self.path}'))
if b'UUID' not in o:
@@ -169,7 +181,7 @@ class Partition():
raise DiskError(f'Could not format {self.path} with {filesystem} because: {b"".join(handle)}')
self.filesystem = 'f2fs'
else:
- raise DiskError(f'Fileformat {filesystem} is not yet implemented.')
+ raise UnknownFilesystemFormat(f'Fileformat '{filesystem}' is not yet implemented.')
return True
def find_parent_of(self, data, name, parent=None):
diff --git a/archinstall/lib/exceptions.py b/archinstall/lib/exceptions.py
index 84e6a766..a7864a23 100644
--- a/archinstall/lib/exceptions.py
+++ b/archinstall/lib/exceptions.py
@@ -2,6 +2,8 @@ class RequirementError(BaseException):
pass
class DiskError(BaseException):
pass
+class UnknownFilesystemFormat(BaseException):
+ pass
class ProfileError(BaseException):
pass
class SysCallError(BaseException):