Made sure the mount target path exists before mounting.

This commit is contained in:
Anton Hvornum 2021-04-09 11:45:06 +02:00
parent 08cf788eaa
commit 05e848ce62
No known key found for this signature in database
GPG Key ID: F1234C5BA67C59DF
1 changed files with 10 additions and 8 deletions

View File

@ -366,14 +366,16 @@ class Partition():
if not fs:
if not self.filesystem: raise DiskError(f'Need to format (or define) the filesystem on {self} before mounting.')
fs = self.filesystem
## libc has some issues with loop devices, defaulting back to sys calls
# ret = libc.mount(self.path.encode(), target.encode(), fs.encode(), 0, options.encode())
# if ret < 0:
# errno = ctypes.get_errno()
# raise OSError(errno, f"Error mounting {self.path} ({fs}) on {target} with options '{options}': {os.strerror(errno)}")
if sys_command(f'/usr/bin/mount {self.path} {target}').exit_code == 0:
self.mountpoint = target
return True
pathlib.Path(self.path).mkdir(parents=True, exist_ok=True)
try:
sys_command(f'/usr/bin/mount {self.path} {target}')
except SysCallError as err:
raise err
self.mountpoint = target
return True
def unmount(self):
try: